Skip to Main Content
Test driven development (TDD) is a relatively new software development process. On the strength of anecdotal evidence and a number of empirical evaluations, TDD is starting to gain momentum as the primary means of developing software in organizations worldwide. In traditional development, tests are for verification and validation purposes and are built after the target product feature exists. In test-driven development, tests are used for specification purposes in addition to verification and validation. An experiment was devised to investigate the distinction between test-driven development and traditional, test-last development from the perspective of developer productivity and software quality. The results of the experiment indicate that while there is little or no difference in developer productivity in the two processes, there are differences in the frequency of unplanned test failures. This may lead to less debugging and more time spent on forward progress within a development project. As with many new software development technologies however, this requires further study, in particular to determine if the positive results translate into lower total costs of ownership.