Developers are not good testers. What you say?

This can be a big debate. Developers testing their own code – what will be the testing output? All happy endings! Yes, the person who develops the code generally sees only happy paths of the product and don’t want to go in much details.

The main concern of developer testing is – misunderstanding of requirements. If requirements are misunderstood by developer then no matter at what depth developer test the application, he will never find the error. The first place where the bug gets introduced will remain till end, as developer will see it as functionality.

Optimistic developers – Yes, I wrote the code and I am confident it’s working properly. No need to test this path, no need to test that path, as I know it’s working properly. And right here developers skip the bugs.

Developer vs Tester: Developer always wants to see his code working properly. So he will test it to check if it’s working correctly. But you know why tester will test the application? To make it fail in any way, and tester surely will test how application is not working correctly. This is the main difference in developer testing and tester testing.

Should developers test their own work?

Test in progressI personally don’t mind developers testing their own code. After all it’s there baby ;-) They know their code very well. They know what are the traps in their codes. Where it can fail, where to concentrate more, which is important path of the application. Developer can do unit testing very well and can effectively identify boundary cases. (Image credit)

This is all applicable to a developer who is a good tester! But most of the developers consider testing as painful job, even they know the system well, due to their negligence they tend to skip many testing  paths, as it’s a very painful experience for them. If developers find any errors in their code in unit testing then it’s comparatively easier to fix, as the code is fresh to them, rather than getting the bug from testers after two-three days. But this only possible if the developer is interested in doing that much testing.

------------

It’s testers responsibility to make sure each and every path is tested or not. Testers should ideally give importance to all small possible details to verify application is not breaking anywhere.

Developers, please don’t review your own code. Generally you will overlook the issues in your code. So give it to others for review.

Everyone is having specialization in particular subject. Developers generally think how to develop the application on the other hand testers think how the end user is going to use the application.

Conclusion

So in short there is no problem if developers are doing the basic unit testing and basic verification testing. Developers can test few exceptional conditions they know are critical and should not be missed. But there are some great testers out there. Through the build to test team. Don’t waste your time as well. For success of any project there should be independent testing team validating your applications. After all it’s our (testers) responsibility to make the ‘baby’ smarter!!

What you say? 



The Best Software Testing Training You'll Ever Get!

software testing QA training

72 comments ↓

#1 Justine on 08.07.08 at 5:17 pm

I Agree.
I don’t mind if developers are giving me the build after initial unit testing, after all it should be testable for testing teams.
In my agile team though the time pressure I don’t even ask developers about when they r releasing the build.
Let take them their own time. I know most of the developers are sloppy at doing testing ..

#2 Jens on 08.07.08 at 7:58 pm

Hey!

One of the basic messages I get from your article is that you don’t want developers to spend much time for testing. I for one hate it to get a piece of software which is nothing but a big bunch of defects. What’s the purpose of writing 20 bug reports within 10 minutes? It wasts my time as much as it wastes the developer’s time. A better approach to me is to train the developer in testing so that you can spend your time finding the bugs which will cause real troubles. Instead of saying “I can test better than you”, explain to him what he’s doing wrong and what he has to consider the next time when he’s programming. Give them some background of what you are doing. You will see, his tests will improve, the quality will improve and in the end you will also improve the communication. Next time they will come to you and ask you about your opinion before they start developing. Thus you learn about what they are doing and they learn how to do better tests.
Give them some credit for developer’s are not meant to test everything. They are supposed to test the straight path through the software and a bit to the left and a bit to the right. You are the tester, it’s yuor job to take care that the rest of the branches can keep up. And of course they are optimistic about (or let me call it proud of) their software… as much as you are proud if you can break it ;o)

#3 Param on 08.08.08 at 4:25 am

its true some times not always hu ha

#4 Guna on 08.08.08 at 4:29 am

Though we can accpet the maxim that developers do not want to fail their code themselves, they will be more hurt when bugs are unearthed by the independant testers. We can not eliminate or under estimate the importance of unit testing as it brings out considerable percentage of the issues in the system and saves much time in the test life cycle.

But, many a times, due importance and systematic process is not attached to the unit testing. No plans or test cases and results do not get recorded. The developer have wear the ‘other’ cap when he tests the system developed by him.

But, we have come a long way in the journey, it is impossible to elimiante the independant testers as their value add to the application in end-user perspective have been recognized by the owners of the system.

#5 Arun kumar on 08.08.08 at 4:33 am

Hi .
It is a Good article to know the work difference between Developer and Tester

#6 Sampath on 08.08.08 at 5:19 am

It is really good that this article clearly explained the thin line difference between the psychology of a developer and that of a tester.

#7 Pradeep Kumar Sharma on 08.08.08 at 5:37 am

Hi All,
Me too agree with above statements. Normally due to shortage of time, unit testing is not done properly due to which many bugs are missed. So we need some good tester to build a quality product.

Pradeep

#8 Vijay on 08.08.08 at 5:51 am

@Jens –
yes I don’t want developers to spend much time on testing unless they are good testers as well.

“A better approach to me is to train the developer in testing so that you can spend your time finding the bugs which will cause real troubles.”

The same approach. Developers do the basic unit testing and some straight paths and hand over the application to testing team.

I like the idea to praise the developer for doing testing ;-) Testing what, praise for what? Finding the bugs from their own coding?

Again I don’t mind if developers are doing the basic and smoke testing. Finally it’s testers responsibility to make sure all branches are covered in testing or not. Then why to waste time in doing repetitive tasks?

#9 Vijay on 08.08.08 at 6:01 am

@ Guna -
“Though we can accpet the maxim that developers do not want to fail their code themselves, they will be more hurt when bugs are unearthed by the independant testers.”

Why developer should get hurt if any important bug gets caught in testing cycle. What if the same bug gets reported by stakeholders? It’s far better to let the testers catch the error in first place only. Give test team enough time for testing.

Though I agree that if the testing team is not that skilled or trained or don’t know the product in detail then there is a huge RISK blindly handing over the application to such team. If you know testers don’t know in depth about the AUT, then it’s worth spending some developer testing time.

#10 Suhas on 08.08.08 at 6:20 am

Nice analysis, there are few more things about developers and testers,

1. Developer says at the time when bug is found: ” This is not my work, this is not because of my code”
2. Developer says at the time when bug is found: ” This is how the requirement is from the client”
3. Developer says at the time when bug is found: ” This is not a bug (error) ”
4. Some Developer fix the bug then come to you and will ask how are you reporting this even if the bug does not exists.

Its really hard to tackle with developers with attitude.

What do you say??

Regards,
Suhas
http://www.adccindia.com

#11 Sibi Mathews on 08.08.08 at 6:34 am

Hi All,
This is an interesting blog which explains the boundary between a developer and tester from their respective perspective. It’s true that time constraint makes testing from the developer’s side bit straight forward. But proper training of testing related activities to the developer can eliminate the defects at the initial stage
during the phase of development.

Sibi

#12 Satyajit Deshmukh on 08.08.08 at 6:40 am

No its totally wrong. I being a devoper since 3 years got a nice apprisal while being a TESTER on a project. This never happened when i was acting as a developer. So i don’t agree with the statement, “Developers cannot be good testers.

#13 Namrata on 08.08.08 at 6:45 am

Hi, I found this document very good as it clearly depicts that it is very tough for a Developer to criticize or find errors in his programming , its like a mother who could not find faults in her own baby. Developers and Testers must work hand in hand to make their project a big success and error less product.
Regards,
NC

#14 VISHAL on 08.08.08 at 6:57 am

Hello! all
It’s really good article ,i am very excited to know diff. between DEVELOPER AND TESTER frm no of days but after reading this article i am fully happy.

#15 Jignesh patel on 08.08.08 at 7:12 am

Good, It talks about what developer needs to do, In order to cut down the bug counts and testers to rivet more….

#16 Jens on 08.08.08 at 7:56 am

@Vijay
Like I said, explain the developer how to be a better tester. Give him some insight of your way of thinking so that he can avoid to do the mistakes that he’s doing. It works well for me.

Besides, I never said “Praise the developer for doing testing”. I said that it’s not their job to test everything, so don’t blame them for that. And this is for exactly the reasons you stated in your article. Developers are blind against their own software. Like Namrata said, “its like a mother who could not find faults in her own baby.” In the end, we testers are the ones who have to guarantee for the quality. If your boss gives you 2 days for a specific test, do you really want to spend time on finding out that the click on a certain button doesn’t work or that 2+2 is actually not 4 as the software wants to make you believe? Well, I don’t. That’s the job of the developer.

#17 Karthik on 08.08.08 at 10:45 am

Nice, I Agree

#18 Satyajit Rane(Dhule-9922521434) on 08.08.08 at 11:12 am

Hi,
I am not agree with all of u,developers are always young,cleaver and dynamic he has also ability to test whole software testing.

#19 Vaibhav on 08.08.08 at 11:21 am

Hi,this is a very good article.Nobody in this world is enough to find its mistake in depth and nobody like to find its mistake.Thats why developers are not good tester.I read the article of Satyajit rane from this i feel that satyajit has very less knowledge about testing.

#20 Yogesh Nagle on 08.08.08 at 12:05 pm

Dear All,
No doubt ,All developers wants to skip the testing of application,but its all becuase of time & work assigned to them.but every developer wish to be good unit tester.That’s why they dont seem to be good tester.

#21 Durai on 08.08.08 at 2:04 pm

It is a fact, but it doesn’t apply to all the developers. It also depends on testers, how they are testing. Even testers should be able to understand the requirements thoroughly, so that they can test the module perfectly.

#22 jassy on 08.08.08 at 3:56 pm

Actually. i agree that no body can find his mistakes or not all of them. i am a tester in a team and usually if another tester continue working in same project tested by another member he’ll find a new bugs that were not seen by the previous responsible tester.

#23 Uma Shanker Yadav on 08.09.08 at 4:27 am

Hi,
This is fact that developers are allways looking into
positive testings.As I am a tester developed some
peojects too but I tested all functionalities in
positive ways.I also validated them too.
As Developers approches to develope the programme fisrt thats why he/she allways looking for required functionalities.

#24 kokila on 08.09.08 at 9:23 am

Hi,
Nice Article….
i agree with this…

#25 kishore on 08.09.08 at 11:21 am

Good point, but as per my experience developers must perform unit testing throughly. By doing so some of the loopholes will be solved and the code will be free from the cosmatic bugs. If unit testing has been performed properly chances are rare that there would be any functionality error.
But, developers develop pre-notion of having tester to test an application. Its not my job to do any kind of testing. when such attitude or thoughts develop in one’s mind, there you find the things going tough and often your bug will be rejected or blah blah
So at this node, I request fellow member to answer my (general) question:
If developer rejects your bug or says this bug is not reproducible. what will you do?
1) will discuss with him show him the screenshots etc
2) will forward the problem to TL,QA etc
3) will fight it out (hahahhah,rare case)
4) simply reopen the bug

Hope for the suitable answer
Thanks

#26 Jens on 08.09.08 at 1:02 pm

@kishore
I will see if I can still reproduce it myself. If so then I will show the developer on his PC how to do it and reopen the bug. In this way he will be able to work with it and debug it right away.

#27 Beena on 08.11.08 at 7:08 am

Nice article……….

#28 jhenz on 08.12.08 at 9:08 am

Developers miss some of the important bugs when they do the testing because they would assume that they’ve done a good work after an initial testing went off smoothly. As you’ve (Vijay) said, they won’t delve into the detailed testing. That’s why, developers must be thankful that testers are here to do the dirty job of delving into the depth of their work. ;)

#29 ExpertQTP on 08.13.08 at 5:26 am

This article is an excellent one. Developers can test their own code but due to lack of time and moreover, since its their own code, its better to have some different guy to test that code even if its a different developer.

ExpertQTP
http://quicktesthp.blogspot.com

#30 Ankit on 08.14.08 at 7:10 am

Hi,

From my experience I would say developers are worst testers. They just are simply too lazy to test their own application.

Regards,

#31 MAW on 08.21.08 at 5:49 am

Nice article, I am a developer, I test my own product and I think the above article is written about me.

Regards
MAW
http://www.loadtracer.com

#32 Roby on 08.21.08 at 9:11 am

A nice article about developer’s testing. I do agree with the fact that the developers shouldn’t spend much time on testing unless if they are good testers. Some of the comments I get from my developers when I found one bug in the products are
It was working fine in the previous build and I didn’t change anything… then how it happened? (How do I know? It is not working in the latest build. That’s all. U need to correct it :) )
I am confident it is working fine… (But I am not confident.. :) )
Why u test in user’s perceptive? U see the requirement? (The requirement too may want the things in another way :) )

#33 Lakshmi on 09.04.08 at 9:31 am

As a developer, I learnt many new statements about testing from this great website. Well done!

Relationship between a developer and tester must be always in many to many ratio.

Share, Share, Share and Build Better Product.

#34 Ahamed Jameel on 09.05.08 at 4:44 am

Hi Testers,

I Agree With This Article.

Ahamed………..

#35 Prasad on 09.06.08 at 4:16 am

Very Nice Article,
# well the Develp are not b a gud Testers, bcz they cant spend more time on Testing.
# As per Human physiology one person can not find Defects/Mistakes on himself ., so another person is needed to point out the exact Defects/Mistakes, that should be a quality one..

#36 sudha on 09.24.08 at 12:28 pm

I never accept this words.
y because developers analyzing everything about the software. But they can see their work they are not keep any concentration on testing so they are keep concentration on that they also do good testing. This is my assumption
thank you

#37 prashanth on 09.25.08 at 4:02 am

Hai Every1!

No Matter how much coding the Developers write for an application,Some where or the other part of the Program , they are tend to make some mistakes.
Itz always taken granted and that is why they are not good some times when they write coding for any complex application.The testers need Analyse and Read the whole application and get that into the mind and start doing testing .All in all , a testers job is to locate more no of bugs in an application, no matter how perfect the application is.

#38 shanti on 10.02.08 at 1:36 pm

Hi Testers,

I Agree With This Article.

shanti………..

#39 srilaxmi on 10.07.08 at 2:38 am

Hi friends
what are the uses of the scripting windows when we use in testing (purpose of the scripting windows )
and Data table integration and data driven test give some explanation and some examples

#40 Hariprasad.MS on 11.07.08 at 12:47 pm

I Agree.

I don’t mind if developers are giving me the build after initial unit testing, after all it should be testable for testing teams.

In my agile team though the time pressure I don’t even ask developers about when they r releasing the build.
Let take them their own time. I know most of the developers are sloppy at doing testing.
As number of releases goes on developers won’t concentrate on dependency area of the modules where issues are logged, here will be more chances of introducing the more and more new issues

My solutions:
A better approach to me is to train the developer in testing so that you can spend your time finding the bugs which will cause real troubles.
It is a Good article to know the work difference between Developer and Tester.

Thanks
HP
prasadm25ster@gmail.com

#41 keshav Kamat on 11.18.08 at 11:34 am

Hello Vijay,

A nice way to explain the difference between a developer testing a piece of software and a tester doing the same.

There are 3 levels of independent testing

1) A second developer testing a piece of software written by another developer. However a developer’s perspective will not help in effective testing. Hence this does not attain the necessary freedom for independent testing

2) A separate testing team within the organization
This will definitely help in attaining a higher degree of freedom as the views of the testers are not binded by the same thoughts as that of the developers. However, being from the same organization, there are issues of mutual well being. It is equally likely that a developer and a tester from the same team are the closest of pals and this will (if not a lot) affect the overall testing.

3) A separate team from outside the organization:
Such a team of consultants attain the highest degree of independence in terms of testing. However a disadvantage would be communication leading to misunderstandings. It is also possible depending on the kind of software under test that the domain or the environment might not be familiar to these testers and might take some time for them to get adjusted to this.

- Keshav (keshav.kamat@gmail.com)

#42 BlueNguyen on 11.21.08 at 3:51 am

Hello my friend !
I agree with you . “Developers, please don’t review your own code. Generally you will overlook the issues in your code” . I’m used to being developer and always say that my own codes are well :-). Now i change to test what i did :-( . And have no experience in this field . Found out your website when i ‘m developer and now i see, your web is so useful for me. Thanks :)

#43 FERRY on 12.30.08 at 2:26 pm

May be u are right..

#44 Elga on 01.05.09 at 12:13 am

As a developer, I can say you are right.
When I (developer) am working in a project, I am in love for it. And you know, it´s hard to see any defect in your loved subject (no matter if it is a humen being or a piece of code !).
Simply, you can’t ever think that such defects exist !

#45 D.Sahoo on 01.05.09 at 4:31 am

Hello Friends,

Tester and Developers having different role as part of the job in SDLC. Everything is possible for a human being. For a developer can do testing but the expectation level would not match as the tester can do. Better loves your work and make more scene the type of work and level of work you are doing.

Thanks,
SkyTECH

#46 PK Mashile on 01.27.09 at 2:50 pm

Hi Testers,
I absolutely agree with the article, look myself I am both a developer and a tester by profession…but in practice I am a tester and with years of experience I come to agree with this article because I have seen it in practice

#47 Raghav on 01.29.09 at 10:50 am

Hi all,

Nice Article this one.

#48 Suganthi on 02.17.09 at 11:51 am

Hi all,

Yes,the article is very informative regarding the difference between testing and developing.Anyways if the developers learn to do testing also ,they will tend to make mistakes.They will be seeing their work in a positive approach,but testers are new to application and will test regardless of developers…

So Testers can do testing much better than developers.

#49 Venkatesh on 04.06.09 at 9:06 am

Hi all..
I agree to the above article..
Developers are not good testers., though they cant find mistakes themselves., so testing a product or project, tester is very very important to produce good quality of the project.

Venkatesh

#50 Shade on 04.13.09 at 11:40 am

Well, let’s see…
1st – Developers should do entity tests
- Each developer should test their own code before releasing it
- Each build, usually containing the code from several modules made by different developers should pass a series of entity tests in order to guarantee minimum quality for testing.
- Note that if the general test cases are available before coding, it should be easy to develop an automation test set that can be run with every delivery. System test can then focus on Customer use cases.

2nd – Developer / Tester communications
- There must be a clear report procedure.
- Note for developers: Not every bug is easy to reproduce so if it doesn’t happen on your environment, it doesn’t mean it doesn’t exist.
- Note to Testers: You must know the system architecture, provide logs and clear descriptions of bugs and ANALYZE them.

3rd – In the end, it’s a matter of perspective.
- System Testers see customer applications
- Developers see feature implementation

#51 Pramod Ranpariya on 06.13.09 at 9:04 am

I am not tester
I am web developer
So I do not need tester engineer

#52 Suganthi on 06.13.09 at 10:56 am

Testers are the bug finders…. :)

#53 Suganthi on 06.13.09 at 10:56 am

Developers are the defect rejectors

#54 kangna on 07.14.09 at 6:27 pm

i hav jst two questions ,plz answer them,

1.is it necessary to be an engineer to be a tester?

2.why are testers given low priority compared to developers?

plz reply

#55 Nisha on 09.09.09 at 7:31 am

100% I agree with Suhas’s comment.. Bcoz am a testing Engr who’s got the same experience :-)

#56 Nisha on 09.09.09 at 7:34 am

And am truly disagree with #2 Jens..
Bcoz whatever u say will be true hardly.. its not practically possible man…

#57 Nisha on 09.09.09 at 7:38 am

Hey Suhas.. its true… i agree with u for the following comments.100%..even some times they’ll slowly go and change the code and will say that its working… :-P

1. Developer says at the time when bug is found: ” This is not my work, this is not because of my code”
2. Developer says at the time when bug is found: ” This is how the requirement is from the client”
3. Developer says at the time when bug is found: ” This is not a bug (error) ”
4. Some Developer fix the bug then come to you and will ask how are you reporting this even if the bug does not exists.

Its really hard to tackle with developers with attitude.

#58 Nivedita on 10.26.09 at 12:34 pm

I need to know one very important thing!!!

I heard from many people at time of rescission the company tend to drop Testing Team and make Dev team test their application.

Is it real then how safe is the Testing Jobs?

#59 Kaustubh on 05.20.10 at 5:33 am

Hi
I am not agreeing with some comments, I am working as a Test engineer but also have an experience as developer. It’s always good to have testing knowledge to developer which eliminates the no. of bugs. I received award for best performance when I was acting as a developer as well as in testing also. So I don’t agree with the statement, “Developers cannot be good testers.

Kaustubh

#60 Mayasen on 05.27.10 at 10:49 am

Developer be the good TeStEr.. but only in some path of testing. Mainly no one can find fault in their own work, even if it has some bug. For that purpose only we need third eye. Testers are just the third eye to make your (developer’s) product more quality.

Developer can also test his/her own application, but unfortunately they missed/dont want to negative test or break his/her own application.

In this case only, “Developers are not good testers.”

#61 hariprasad on 07.17.10 at 11:18 am

what ever you said is absolutely cortrect,no one is accept to defect in there developed project a tester can identify

#62 yangma on 08.19.10 at 4:31 pm

it’s obvious that developers don’t like someone else pointing out their mistakes..
during my exam before submitting my paper i used to calculate my marks..and when the results would come out my calculated marks and teachers given marks would always differ by vast margin :D

that means even if developers themselves test their code they would never find out what real testers can trace out the odds..it’s their baby..their hard work ;)

#63 Shakti on 10.08.10 at 9:39 am

hi i just want to say that there is no comparison of tester and developers. Developer are the person who put their mind and all for developing an application and ther person(tester) who can not develop at least a single line of code in his whole life, judge that peice of code.
I think there must be improvement when organization going to recruit testers. They should hire only the person who are having sound knwoldege of programming, developing application, and if organiztion shift them in devleoping so than they would be able to work in development also.

#64 shakti on 10.08.10 at 9:48 am

I would say that a software developer can be a tester, but I must say software tester cant be a good software developer. There is no comparison between software tester and developer. Software Tester are nothing before software developer. A developer uses whole of the mind, techniques, effort to write a piece of code to develop a software or application, and what a tester does, just test that and find bugs, if this work is assigned to another developer, he can easily do testing because a developer can be a good tester, but a tester cant be a good developer.

#65 vaishali on 02.08.11 at 10:12 am

yes,I agreed developer is not a good tester because nobody detect own mistakes,developer is developer and tester is tester

#66 Engineer Akhter on 03.07.11 at 12:19 pm

The main cons of developers to introduce in testing part are that, developers feel extra burden, pressure, self value and respest of being dveloper and many more. The other main factor is, if testers are allowed to test separately after each release then certainly there will be fast tracks to develop any software. it saves time, enhances security and quick availability to end users. it may be also noted that, if developers are ready to do all tests of their portions, then definitely they are worth to get double salary, i.e one for as a developer and another is of testing job. therefore it can be concluded from example, if any program is run by the developer and it executes successfully. it means coder has done good job by removing errors of one’s code. But, on other hand one does not guarantee that this sort of code will be supported by all sort of browsers or servers or not. therefore, here testers are key role players who can test all bugs, made by developers and from others. Thus, testers should be taken as individual members of any team to perform their important role to develop any product.

#67 Engineer on 03.07.11 at 12:21 pm

Greetings to all interested persons,

The main cons of developers to introduce in testing part are that, developers feel extra burden, pressure, self value and respest of being dveloper and many more. The other main factor is, if testers are allowed to test separately after each release then certainly there will be fast tracks to develop any software. it saves time, enhances security and quick availability to end users. it may be also noted that, if developers are ready to do all tests of their portions, then definitely they are worth to get double salary, i.e one for as a developer and another is of testing job. therefore it can be concluded from example, if any program is run by the developer and it executes successfully. it means coder has done good job by removing errors of one’s code. But, on other hand one does not guarantee that this sort of code will be supported by all sort of browsers or servers or not. therefore, here testers are key role players who can test all bugs, made by developers and from others. Thus, testers should be taken as individual members of any team to perform their important role to develop any product.

#68 Engineer on 03.07.11 at 12:27 pm

Developer can make surety of code to function well, but one cannot guarantee of the product with qualitative features. Quality can only be resembled with better efforts taken by testers like Agile Testers to satisfy customer needs and their satisfactions.

#69 Jitendra Bhande on 07.19.11 at 9:35 am

ya…..True alright…
we(QA ‘s) are essential to make Product…AQuality one.

#70 sidh on 07.20.11 at 12:17 pm

hi.. I have a doubt regarding the unit testing!!! if unit testing is done by “Developers” then which type of testing would we call when a “Tester” done testing on each individual modules..?? plz reply as soon as possible..

#71 Mohammed Vaseem on 03.05.12 at 9:31 am

Hi… Nice article..
I agree that there should be an independent testing team for a project…
I think testers should be those who have a 2 or 3 years experience in development. Simply pointing out defects in the code is an easy job comparative to provide solution for the defect. So a Tester is the best tester who was the best developer.

#72 Eugenia Yakhnin on 05.20.12 at 12:40 am

Why developers are not good tester? Because software testing and software developments are two different occupations required two completely different types of skills and way of thinking.