Module 6: Statistical Debugging

[Video] [Slides]


This module introduces Statistical Debugging – a debugging technique that uses data collected from program runs by the user base to identify and fix bugs. Throughout this module, you’ll learn what data is worth collecting from the user base, how to collect this data, and then how to find bugs by analyzing the data. You’ll learn statistical measures and algorithms for isolating bugs that affect the user base.


  • Understand the step-by-step process for Statistical Debugging and identify its benefits and challenges.
  • Identify the kinds of program predicates to observe in user runs for the purpose of isolating bugs.
  • Summarize the arrays of predicate counts in a user run and report them in a feedback profile.
  • Understand different approaches for sampling program predicates and the uncertainty involved in the process.
  • Compute Failure, Context and Increase metrics to express the likelihood of a bug in a predicate sample.
  • Apply Statistical Debugging algorithms to isolate bugs in programs.