jeroen le roy - 2014-06-11 20:33:29
Although we where very enthusiastic about TDD at first I noticed that me and my team where hitting a serious issue.
The main issue of TDD is that you test against what you expect the code to do, not what could be done with the code. If this then that is fine, but especially the 'this' part is everything but reliable for instance:
Let's say we are creating a calculator with 2 input fields and it should do a sum on those two items. We would test if 1 + 1 equals 2 and if so it works. What the programmer could forget to think about is that the user inputs 1.2 where the end result is an integer instead of a float, or that the input excepts any character which means a + 1 could also be inserted.
TDD can never test against these odds, and a 'all systems go' after running a TDD never means that a bug or issue is prevented. People around us (from other partners) tended to get lazy, why test manually if the test runs without failures!