I didn’t write that developers shouldn’t test their code, that would be foolish. Of course we should, we should test a variety of scenarios.
What I wrote was that we should not be the only testers of our own work, for the very simple reason that we will inevitably have the same blind spots in developing our tests as we had in writing the code.
I think the idea prevalent in TDD and in unit test fashion in general that developers should write all the tests and “when the tests pass you’re done” is pure folly; we need Blackbox testers working against a functional specification more than ever. And to pass work to a Blackbox Tester who sees your work fail in basic functionality (goodbye, Ashton-Tate) is embarrassing to say nothing of irresponsible.
We need regression suites especially for developers who regard object-oriented programming as obsolete and so break other functionality when they work on one area.
Personally I am not so keen on unit testing, I prefer functional testing because unit tests require setting up fictitious data sources and then then too need to be tested, and also because there’s a lot of craziness around unit testing, up to an including the idea that the tests are the design, that we only write applications as targets for unit tests. The unit tests have become the primary when in reality they are secondary. Not inesssential but secondary.
Please don’t put such dumb ideas in my mouth, I never said developers shouldn’t test their work.