Empirical Software Engineering

, Volume 13, Issue 3, pp 289-302

First online:

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

  • Nachiappan NagappanAffiliated withMicrosoft Research Email author 
  • , E. Michael MaximilienAffiliated withIBM Almaden Research Center
  • , Thirumalesh BhatAffiliated withMicrosoft Research
  • , Laurie WilliamsAffiliated withNorth Carolina State University

Rent the article at a discount

Rent now

* Final gross prices may vary according to local VAT.

Get Access


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 development Empirical study Defects/faults Development time