Cause Clue Clauses: Error Localization using Maximum Satisfiability
Manu Jose, Rupak Majumdar

TL;DR
This paper introduces a MAX-SAT-based algorithm for localizing error causes in programs by analyzing execution traces, effectively identifying minimal fault-inducing code segments.
Contribution
The paper presents a novel MAX-SAT reduction approach for error localization, implemented in the bug-assist tool for C programs, demonstrating high accuracy and efficiency.
Findings
Bug-assist accurately isolates fault-inducing code lines
The approach quickly identifies minimal causes of errors
Effective in suggesting fixes for common errors like off-by-one
Abstract
Much effort is spent everyday by programmers in trying to reduce long, failing execution traces to the cause of the error. We present a new algorithm for error cause localization based on a reduction to the maximal satisfiability problem (MAX-SAT), which asks what is the maximum number of clauses of a Boolean formula that can be simultaneously satisfied by an assignment. At an intuitive level, our algorithm takes as input a program and a failing test, and comprises the following three steps. First, using symbolic execution, we encode a trace of a program as a Boolean trace formula which is satisfiable iff the trace is feasible. Second, for a failing program execution (e.g., one that violates an assertion or a post-condition), we construct an unsatisfiable formula by taking the trace formula and additionally asserting that the input is the failing test and that the assertion condition…
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 · Formal Methods in Verification
