> Only tests for the testing sake. Bazillion unit tests which not really ensure that your application does what it should<p>This is what happens when tests and code coverage are mandated.<p>Yes, testing does work, and is an important part of any large-scale project.<p>The key is to recognize and implement a few different kinds of testing:<p>1) Unit tests, to help with the development process, and run any part of the code quickly, without any external dependencies, and test for correctness.<p>2) Performance tests - performance is a feature, and it's important to recognize regressions or improvements.<p>3) Integration tests, to see if the software actually works with its external dependencies.<p>4) Post-release checkouts and monitoring - after releasing the software, a method to check that the release itself was successful (as opposed to the software), before any live users are exposed to it.<p>These are <i>all</i> important, and while there may be some overlap, often people don't see distinction and try to make do with just one kind, and argue that the other kinds are "wrong", which is counterproductive.