In this part, we show how to narrow down failures by systematic experimentation.
Reducing Failure-Inducing Inputs introduces delta debugging, a technique to automatically reduce a failure-inducing input to a minimum.
Isolating Failure-Inducing Changes shows how to identify changes that cause failures - manually and automatically.
In Debugging Concurrent Programs, we show how to detect and debug concurrency issues.