A developer testing will never be as good as a tester testing. I know that developers can be great testers. And maybe testers can be great developers too. But developers testing the same features they develop will never be as thorough as a tester testing features he knows nothing about. A tester knows how to ‘break’ software.
That’s why I believe that features should be tested by at least one person, other than the developer, before they reach the client. Developers assuming the ‘tester’ role can be really good at finding bugs. But they must have no mercy. They have to keep in mind that ‘successful’ testing finds bugs. And if they do, I’ll be happy.
The main difference between each person testing is that the tester (who did not build the feature/project) will have no mercy. The tester won’t care for what is inside the code. The tester will know the spec, will set up the environment and will test away. It will definitely find bugs, it will try many ways to make the system crash. The testing will be creative (it must be creative) and it will be successful once it reports many bugs.
The developer, as much he tries, will have mercy. After all, it is his production, and he will assume things that the tester won’t. The developer will assume that people will be nice. That the user won’t ever do the things that the tester imagines. And there is where the error lays. The predisposition of the developer and the tester are different and that is what makes me prefer tester testing over developer testing.

4 Comments
Pretty awesome article. Short as Effective. I totally agree with you, I would add it’s essencial in a project to focus forces in each other’s roles, and there is where the developers must rely on tester to do what they can do best, seek and break down system features.
.
Quality assurance must never be underestimated if we want avoid our clients rejections
Thanks!
A good testing phase is always necessary in order to engineer high-quality solutions and avoid client complaints.
Also, a clearly define set of features is necessary for testing to know what is expected. These features should be reviewed, understood and approved by the client.
You said 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.
I cannot assert that a tester cannot be a good developer. That could happen. But it will depend on the person and the education of that person.
A developer can be a good tester. But most of the time, the person who builds the code is worse at testing the code than someone who doesn’t build the code.