The Test Driven Development practice reduces time to market by reducing the amount of time needed to integrate and
stabilize builds. It improves productivity by finding and fixing errors close to the time they're introduced. And it
increases the overall quality of the software by guaranteeing all new code has been tested, and all existing code has
been regression tested, prior to check-in.
Developers use TDD to create the [Software Implementation] and the Developer Tests.
TDD has a simple flow: Create a new test to validate a planned change/addition to the software. Run the test to
perform a sanity check - it should fail since no software has been written for it yet. Make a small change, refactor
the code, and run the test. Keep changing/refactoring/testing until the test passes and the code is in a robust,
well-factored state. Then begin the cycle again on a new small piece of the solution.

TDD Practice Information
See the How to Adopt this Practice for information on navigating
the TDD Practice.
History
TDD was originally part of Kent Beck's Extreme Programming process. It's now also used in many other Agile and
non-Agile contexts.
|