O'Reilly logo

Making Software by Greg Wilson, Andy Oram

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required