--Originally published at Hackerman's house
Test Driven Development is a software development process that repeats very short development cycles, the requirements are turned into specific test cases, and the software is improved in order to pass these new tests. This way all the software is proven to meet the requirements set. One of the main responsibles for this methodology is Kent Beck who rediscovered the technique.
A Test Driven Development cycle consists of a series of steps. According to the book Test-Driven Development by Example these are the steps.
Add a test
Each new feature begins writing a test. The test defines a function or the improvement of an existing function. The developer must start by fully understanding the feature and its requirements. Some of the tests can be updates of an existing test. The use of tests before starting to write code lets the developer to focus on the requirements while writing code.
Run all tests and see if the new test fails
In this step the existing code is proven to see if the new test is passed. If the existing code passes the new test it means that the test is useless or flawed. The new test should always fail because there should not be code that fulfills the requirements yet.
Write the code
The next step is to write the code to pass the test. It is not that important that the code is elegant or really well written. The most important thing is to pass the test. One thing you should consider is that the code must only fulfill the test and not add more functionality beyond that.
If all test cases now pass, then the new code meets the test requirements and doesn’t break any existing features.
The last step in the cycle is to
As you are advancing in this process, repeat all the steps in the cycle for every new feature you need to develop.