Empirical Software Engineering

, Volume 13, Issue 3, pp 289–302

Realizing quality improvement through test driven development: results and experiences of four industrial teams


    • Microsoft Research
  • E. Michael Maximilien
    • IBM Almaden Research Center
  • Thirumalesh Bhat
    • Microsoft Research
  • Laurie Williams
    • North Carolina State University

DOI: 10.1007/s10664-008-9062-z

Cite this article as:
Nagappan, N., Maximilien, E.M., Bhat, T. et al. Empir Software Eng (2008) 13: 289. doi:10.1007/s10664-008-9062-z


Test-driven development (TDD) is a software development practice that has been used sporadically for decades. With this practice, a software engineer cycles minute-by-minute between writing failing unit tests and writing implementation code to pass those tests. Test-driven development has recently re-emerged as a critical enabling practice of agile software development methodologies. However, little empirical evidence supports or refutes the utility of this practice in an industrial context. Case studies were conducted with three development teams at Microsoft and one at IBM that have adopted TDD. The results of the case studies indicate that the pre-release defect density of the four products decreased between 40% and 90% relative to similar projects that did not use the TDD practice. Subjectively, the teams experienced a 15–35% increase in initial development time after adopting TDD.


Test driven developmentEmpirical studyDefects/faultsDevelopment time

Copyright information

© Springer Science+Business Media, LLC 2008