Chapter 12. How Effective Is Test-Driven Development?

Burak Turhan

Lucas Layman

Madeline Diep

Hakan Erdogmus

Forrest Shull

Test-Driven Development (TDD) [Beck 2002] is one of the most referenced, yet least used agile practices in industry. Its neglect is due mostly to our lack of understanding of its effects on people, processes, and products. Although most people agree that writing a test case before code promotes more robust implementation and a better design, the unknown costs associated with TDD’s effects and the inversion of the ubiquitous programmer “code-then-test” paradigm has impeded TDD’s adoption.

To provide an overview of current evidence on the effects of TDD, we conducted a systematic review of TDD research in online databases and scientific publications. Systematic review is a research method popularized in the medical community for aggregating and analyzing the results of clinical trials. A systematic review seeks to answer the general question, “What does the published evidence say about the effects of using technique X?” In medicine, systematic reviews play a critical role in evaluating the effectiveness of pharmaceutical drugs and alternative treatments for illnesses. Empirical software engineering researchers have adopted this approach for summarizing and analyzing evidence about the effects of software development practices. It is covered in Chapter 3, What We Can Learn from Systematic Reviews, by Barbara Kitchenham, and in [Kitchenham 2004] and [Dybå et al. 2005 ...

Get Making Software now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.