Causal Program Dependence Analysis
Seongmin Lee, Dave Binkley, Robert Feldt, Nicolas Gold and, Shin Yoo

TL;DR
CPDA is a dynamic dependence analysis method that uses causal inference to model program element dependencies, requiring only lightweight parsing and effectively aiding fault localization.
Contribution
Introduces CPDA, a novel causal inference-based dynamic dependence analysis technique that improves fault localization with minimal static analysis.
Findings
CPDA effectively captures key dependence relationships.
CPDA doubles the fault localization capability compared to SBFL.
CPDA requires only lightweight parsing for analysis.
Abstract
We introduce Causal Program Dependence Analysis (CPDA), a dynamic dependence analysis that applies causal inference to model the strength of program dependence relations in a continuous space. CPDA observes the association between program elements by constructing and executing modified versions of a program. One advantage of CPDA is that this construction requires only light-weight parsing rather than sophisticated static analysis. The result is a collection of observations based on how often a change in the value produced by a mutated program element affects the behavior of other elements. From this set of observations, CPDA discovers a causal structure capturing the causal (i.e., dependence) relation between program elements. Qualitative evaluation finds that CPDA concisely expresses key dependence relationships between program elements. As an example application, we apply CPDA to the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Software Reliability and Analysis Research · Software Engineering Research
