Test-driven development puts testing at the centre of the development process. It requires that software be written only to satisfy an already written and already failing test. It requires that testing be fully automated and repeatable. It has the effect of both avoiding unnecessary coding and of ensuring high quality code.
The obligation to write executable tests prior to coding forces out omissions, errors and inconsistencies in specifications. The obligation to re-run all the system tests – with the push of a single button – after every system update ensures that new bugs are not introduced. Refactoring code to achieve the highest quality is a safer and quicker process when re-testing is just another push on the same button.
Test-driven development involves three steps, repeated over and over:
- Write a test or tests
- Write the code to satisfy the test(s), and get it to work without breaking anything else
- Refactor the code so that it is "optimal"
In our opinion switching to test-driven development is the single biggest improvement you can make in the pursuit of timely delivery of quality software. For more information on test-driven development see www.testdriven.com.
We can install test-driven development in your organisation as part of our process design and implementation service.