Tuesday, 26 March 2013

TDD ? why ?

I have met some developpers that are still relectant to work within a TDD approach. So my guess is that they don't see exactly what are the clear benefits from using this approach. So here are the most powerful to my mind:
When using a TDD approach (by the way TDD means Test First and refactoring)

1.You have a clear and formal specification of what you have designed and implemented. Not only a piece of comments, that by the way will pe deprecated after a while. This is really useful for maintenance (bug fixes, regression, evolution)
2.You have a MAXIMUM code coverage and NO DEAD CODE
3. You have methods in your test that express your test intentions and not a test method per method in the class under test.

The process:
    0. Create a todo list from a specification
    1. Create a test case automatically with the IDE
    2. Add 1 new test from the todo list
    3. This test shouldn't compile. Add the minimum code to compile.
    4. execute and get the red bar (Junit Eclipse plugin)
    5. Add minimal code to pass the test (the green bar)
    6. Refactor
    7. goto2

Some resources on how TDD helps in reducing the software development costs:
- http://codebetter.com/darrellnorton/2003/12/03/what-is-the-zero-defects-mindset/

No comments:

Post a Comment