Prosecutor: Bayesian Counterfactual Fault Localization
Bayesian reasoning has emerged as a promising approach to fault localization, where the introduction of errors and their subsequent propagation through faulty executions is treated as a stochastic process. One can then perform Bayesian inference on a probabilistic model encoding the program execution to associate individual statements and values with a posterior probability of being erroneous. In this paper, we propose a new graph representation that effectively models error propagation through failing program executions. This structure, which we call the Error Propagation Graph (EPG), extends prior probabilistic approaches by incorporating richer inter-procedural relationships and accounting for the influence of unexplored control-flow branches that may affect variable values. We also show how EPGs can be constructed efficiently and compactly, and how this structure enables the selection of a set of counterfactual experiments, each involving artificially flipping a suspicious branch predicate at runtime and observing its downstream effect on the test outcome. The results of these experiments provide additional evidence that can be incorporated into the EPG to confirm or refute the model's initial suspiciousness estimates. We have implemented this technique in a tool named Prosecutor and evaluated it on 470 buggy versions of 13 projects from the Defects4J benchmark suite. Our experimental evaluation shows that Prosecutor places 40% of the true fault locations within its top-3 predictions. The technique also significantly outperforms a diverse set of baselines by identifying at least 10%, 11%, 15%, and 19% more buggy statements than each of the baselines in its top-1, top-3, top-5, and top-10 predictions, respectively.
Mon 5 OctDisplayed time zone: Pacific Time (US & Canada) change
10:30 - 12:00 | Debugging and Fault LocalizationOOPSLA at East Hall 1 Chair(s): Alastair F. Donaldson Imperial College London | ||
10:30 18mTalk | Debugging Debugging Information using Dynamic Call Trees OOPSLA DOI Pre-print | ||
10:48 18mTalk | Automated Debugging of Datalog ProgramsDistinguished Paper OOPSLA Jiashen Wei Nanjing University, Baoyuan Luo Nanjing University, Runshuo Xie Nanjing University, Yun Qi Nanjing University, Yiyu Zhang Nanjing University, Xizao Wang Nanjing University, Xintao Niu Nanjing University, Zhiqiang Zuo Nanjing University Link to publication DOI | ||
11:06 18mTalk | Accurate Residues for Floating-Point Debugging OOPSLA DOI | ||
11:24 18mTalk | Prosecutor: Bayesian Counterfactual Fault Localization OOPSLA Sara Baradaran University of Southern California, Yifei Huang University of Southern California, Wei Le Iowa State University, Mukund Raghothaman University of Southern California DOI | ||
11:42 18mTalk | Specy: Learning Specifications for Distributed Systems from Event Traces OOPSLA Mike He Princeton University, Ankush Desai Snowflake, Aishwarya Jagarapu Amazon Web Services, Doug Terry LinkedIn, Sharad Malik Princeton University, Aarti Gupta Princeton University DOI Pre-print | ||