This study concentrates on examining the design quality effects of Test-driven development, which is a practice of Extreme Programming. Test-driven development is a development technique in which the test are written prior to the application code. An exhaustive automated test suite is maintained and run constantly during the implementation process in order to decrease the incidence of unplanned failures. First, the existing empirical studies were analyzed and summarized to increase the current knowledge on Test-driven development. Literature suggests that Test-driven development increases software quality significantly, especially when employed in an industrial context. The effects on productivity were not so obvious, but there are some initial findings indicating that Test-driven development does not necessarily decrease developer productivity or extend project lead-times. The second part of this thesis concentrates on empirically evaluating the impact of Test-driven development on design quality through three case projects. Based on the empirical findings, it was concluded that Test-driven development does not seem to provide all design quality benefits suggested in literature: TDD does not necessarily produce highly cohesive systems when employed by junior developers. However, extremely high test coverage (97.7 %) was reached using TDD.
|Place of Publication||Oulu|
|Publication status||Published - 2006|
|MoE publication type||G2 Master's thesis, polytechnic Master's thesis|
- Test-driven design
- test-first development
- agile software development
- extreme programming