Hacker News new | ask | show | jobs
by 100k 5672 days ago
I think TDD is useful, but practitioners should not be dogmatic about it.

As I discussed in my talk "Testing is Overrated", programmer testing finds a different class of bugs than manual testing or code reviews.

One of the problems is that programmers are not very good at writing tests. They are much more likely to test "happy path" scenarios. Steve McConnell reports in Code Complete that mature testing organizations have 5 times more dirty tests than clean tests, while immature testing organizations write 5 clean tests for every dirty test.

Another big problem is that unit tests are never going to show you that your software blows. Only user testing can find that.

If you want to ship good software, I think you need to do a combination of code reviews, unit tests, system tests, user studies, and manual testing. Different organizations will find a balance that works for them.

That last is a key point. I like writing tests, but I hate the dogmatism that if you're not writing tests you're doing it wrong. Obviously, good software has been written without tests, and buggy crap has been fully TDD'ed. In the end, the team matters more than the methodology.

http://www.scribd.com/doc/8585284/Testing-is-Overrated-Hando... http://www.scribd.com/doc/8585444/Testing-is-Overrated