Listen to this post
Some organizations who have adopted TDD as their development strategy have assumed that they no longer need SAT/QA testers, since the developers are now writing tests.
This is a mistake.
First, developers do not write the same kinds of tests that testers do. Developers write the tests they need to drive correct behavior into the system. They do not cover all of the edge and corner cases, because their focus is on creating useful behavior.
Second, skill in testing is not the same as skill in development. Experienced testers will approach the system from a different point of view than developers will, and this has tremendous value.
Third, there are many different kinds of tests that the developers won’t do at all such as usability testing, stress testing, and various forms of exploratory testing. Much of this kind of testing cannot be meaningfully conducted until after the system is fully functional.
Developers doing TDD will significantly contribute to the QA effort by supplying many of the low-level unit tests that testers would otherwise have to write, and this means that the testers are free to do more of the sophisticated testing that often gets cut due to time constraints. But we still need the testers’ experience and skill to do this properly.