Re:Frequently Forgotten Fundamental Facts about Software Eng...
by dkersten on Thursday December 03, 2009 @09:59AM
(#974415)
TDD is not about finding defects, its about minimizing work (you code to pass tests and no more - as a side effect, you should always have 100% coverage) and about preventing working code from being broken through bug fixes, refactoring, or extension because your existing tests will then fail. Its a guarantee that what works now will still work later - or the test will fail, not the test will find bugs.
[ Parent
| on HN ]
Re:Frequently Forgotten Fundamental Facts about Software Eng...
by ams6110 on Thursday December 03, 2009 @02:39PM
(#975049)
I wish all TDD proponents understood this. Coverage != Tested. 100% coverage does not mean you have have exercised all possible execution paths through the code.
Also, passing all tests does not mean there are no bugs. Assuming you have tests for all your requirements, passing the tests means only that software can perform those requirements. It does not mean that it will be bug-free, especially if the users try to do things the requirements didn't anticipate.
TDD has the great benefits you mention but it is not the magic bullet so many of its advocates make it out to be.