CHAPTER 13 Isolating Failure Causes

This is the chapter that automates most debugging. We show how delta debugging isolates failure causes automatically—in the program input, in the program’s thread schedule, and in the program code. In the best case, the reported causes immediately pinpoint the defect.


Narrowing down causes as described in Chapter 12 can be tedious and boring—when conducted manually, that is. Therefore, we should aim at narrowing down failure causes automatically.

In principle, narrowing down a cause can be easily automated. All it takes is

image an automated test that checks whether the failure ...

Get Why Programs Fail, 2nd Edition 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.