Developers are not Good Testers. What you say?

By Vijay

By Vijay

I'm Vijay, and I've been working on this blog for the past 20+ years! I’ve been in the IT industry for more than 20 years now. I completed my graduation in B.E. Computer Science from a reputed Pune university and then started my career in…

Learn about our editorial policies.
Updated May 30, 2024
Edited by Kamila

Edited by Kamila

Kamila is an AI-based technical expert, author, and trainer with a Master’s degree in CRM. She has over 15 years of work experience in several top-notch IT companies. She has published more than 500 articles on various Software Testing Related Topics, Programming Languages, AI Concepts,…

Learn about our editorial policies.

The title of the post can indeed be a big debate. If Developers are testing their code – what will be the testing output? All happy endings! Yes, the person who develops the code generally sees only the Happy Paths of the product and doesn’t want to go into much detail.

The main concern with Developer Testing is – misunderstanding of requirements. If the developer misunderstands the requirements then no matter at what depth the developer tests the application, he will never find the error.

Are Developers Not Good Testers?

Developers are not Good Testers. What you say

The first place where the bug gets introduced will remain till the end, as a developer will see it as the functionality.

Optimistic Developers – Yes, I wrote the code and I am confident it’s working properly. There is no need to test any path, as I know it’s working properly. This is where the developers skip the Bugs.

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

Should Developers Test Their Own Work?

Developer Testing

I don’t mind developers testing their code. After all, it’s their baby 🙂 They know their code much better than others. They know what the traps are in their codes.

Where it can fail, where to concentrate more, which is the important path of the application, etc. The developer can do unit testing very well and can effectively identify boundary cases.

This is all applicable to a developer who is a Good Tester! But most of the developers consider testing as a painful job, even though 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 new to them, rather than getting the bug from the testers after 2-3 days. However, this is only possible if the developer is interested in doing that much testing.

It’s the Tester’s responsibility to make sure that each path is tested or not. Testers should ideally give importance to all the small possible details to verify if the application is not breaking anywhere.

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

Everyone specializes in a particular subject. Developers generally think how to develop the application, on the other hand, testers think about how the end-user is going to use the application.

Conclusion

In short, there is no problem if the developers do basic Unit Testing and basic verification testing. Developers can test for a few exceptional conditions which they know are critical and should not be missed. But there are some great testers out there.

Recommended Reading =>> Software Engineer vs Developer

Through the build to test team. Don’t waste your time either. For the success of any project, there should be an independent testing team validating your applications. After all, it’s our (testers) responsibility to make the ‘baby’ smarter!!

What did you say? 

Feel free to disclose your thoughts in the comments section below!

Was this helpful?

Thanks for your feedback!

Recommended Reading

78 thoughts on “Developers are not Good Testers. What you say?”

  1. I think the problem is in the question.
    Are developers good testers? Yes, developers can make excellent testers.
    Are developers good testers of their own work? Sometimes. They have a unique point of contact that makes them great at testing at the unit level.
    Are developers good testers of their own work, on their own? No. If developers were great testers of all their own work then why would they write bugs in the first place? The problem is that the assumptions that developers have, in that they have written the code to work, and that they’ve understood the design and the needs of the customer, are heuristics that can fail. Those assumptions make them efficient coders, but challenging those assumptions, and those of the design and needs of customers, is where the value lies in expert testing.

    Reply
  2. 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

    Reply
  3. 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

    Reply
  4. 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 🙂 )

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

    Reply
  6. 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

    Reply
  7. 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.”

    Reply
  8. 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.

    Reply
  9. True. I always test my own “baby”, my code.

    But shipping to customers is impossible. My “baby” has to integrate with other peoples “babies”. And I can’t do independent testing of my own “baby” obviously!!

    So if not developing something very small and simple, must have testing/testers!

    Reply
  10. 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.

    Reply
  11. 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

    Reply
  12. 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.

    Reply
  13. 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.

    Reply
  14. 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 😀

    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 😉

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

    Reply
  16. 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)

    Reply
  17. 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… 😛

    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.

    Reply
  18. 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.

    Reply
  19. i have faced thsi question recently in a F2F interview.

    Why test engineers are required when developers are there ? After developing the application, developers can perform testing right ? Please justify.

    Reply
  20. 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..

    Reply
  21. 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.

    Reply
  22. 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

    Reply
  23. 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.

    Reply
  24. 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

    Reply
  25. 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.

    Reply
  26. 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

    Reply
  27. 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.

    Reply
  28. 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

    Reply
  29. 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.

    Reply
  30. 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.

    Reply
  31. 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

    Reply
  32. 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

    Reply
  33. 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. 😉

    Reply
  34. 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

    Reply
  35. Hi,

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

    Regards,

    Reply
  36. 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 !

    Reply
  37. 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.

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

    Reply
  39. 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.

    Reply
  40. 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

    Reply
  41. 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.

    Reply
  42. 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

    Reply
  43. 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 🙂

    Reply
  44. 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 ..

    Reply
  45. @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.

    Reply
  46. 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.

    Reply
  47. 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.

    Reply
  48. 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)

    Reply
  49. 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.

    Reply
  50. @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.

    Reply
  51. @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?

    Reply
  52. 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

    Reply
  53. 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?

    Reply
  54. 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.

    Reply
  55. 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.

    Reply
  56. I mean …the title is clearly has a little provocative nature, so that people will read it. But it’s a bit misleading. Of course if you put tester against a developer in terms of testing there would be no argument to which of them will do a better job.
    It’s the same as saying “testers are not very good developers”… obviously not as good as professional developers, that’s why we have the division of labour.
    And Yes. There are unique prodigies who can combine both areas, but they a very rare.

    Reply
  57. 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..

    Reply
  58. @ 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.

    Reply

Leave a Comment