Episode 101: Andreas Zeller on Debugging

Topics covered
Popular Clips
Episode Highlights
Delta Principles
Delta Debugging is a systematic approach to identifying errors by reducing input incrementally. explains how this method emerged from the challenges faced by the Mozilla team in 2001, who struggled with extensive bug reports. By simplifying inputs and automating tests, Delta Debugging narrows down the cause of failures efficiently 1.
The idea is that as soon as you have an automated test that checks whether a specific failure is still there or not, all you need in this case is a strategy that does this minimization for you.
---
The process involves a binary search-like algorithm, which divides the input into smaller parts to isolate the error, making it a powerful tool for debugging 2.
Applications
Delta Debugging finds practical application in automating failure isolation and enhancing test-driven development. highlights its integration with JUnit tests, where a plugin can automatically identify failure-inducing changes 3. This method aligns with the scientific approach to debugging, where hypotheses are tested systematically to pinpoint errors.
As soon as a junit test would fail in the background, our plugin would automatically set itself into motion and isolate the failure inducing change.
---
By combining Delta Debugging with automated test generation, developers can streamline the debugging process, making it an essential part of modern software development 4 5.
Related Episodes


Episode 367: Diomidis Spinellis on Debugging
Answers 383 questions

Episode 155: Johannes Link & Lasse Koskela on TDD
Answers 383 questions

Episode 517: Jordan Adler on Code Generators
Answers 383 questions

Episode 200: Markus Völter on Language Design and Domain Specific Languages
Answers 383 questions

SE-Radio Episode 283: Alexander Tarlinder on Developer Testing
Answers 383 questions

Episode 22: Feedback
Answers 383 questions

Episode 5: Model-Driven Software Development Pt. 1
Answers 383 questions
Episode 197: Lars Vogel on Android
Answers 383 questions

Episode 512: Tim Post on Rubber Duck Debugging
Answers 383 questions

Episode 82: Organization of Large Code Bases with Juergen Hoeller
Answers 383 questions

SE-Radio-Episode-282-Donny-Nadolny-on-Debugging-Distributed-Systems
Answers 383 questions

Episode 474: Paul Butcher on Fuzz Testing
Answers 383 questions

Episode 97: Interview Anders Hejlsberg
Answers 383 questions

Episode 180: Leading Agile Developers with Jurgen Appelo
Answers 383 questions

Episode 81: Interview Erich Gamma
Answers 383 questions













