Briefly, Test Driven Development is the strategy of writing tests along the development process. These test cases are written in advance of the code that is supposed to satisfy them.
A single test is added, then the code needed to satisfy the compilation of this test and finally the full set of test cases is run to verify their results.
This contrasts with other approaches to the development process where the tests are written at the end when all the coding has been done.
Writing the tests in advance of the code that satisfies them has several advantages. First, is that the tests are written in one way or another, while if the tests are left till the end it is highly probable that they are never written. Second, developers take more responsibility for the quality of their work.
Design decisions are taken in single steps and finally the code satisfying the tests is improved by refactoring it.
This UML activity diagram depicts the Test Driven Development to help us understand...