Program Repair via Direct State Manipulation
Qinheping Hu, Isaac Evavold, Roopsha Samanta, Rishabh Singh, Loris, D'Antoni

TL;DR
This paper introduces a novel program repair approach using direct state manipulation, allowing programmers to specify fixes visually and quantitatively, and presents a tool that effectively repairs buggy programs based on this method.
Contribution
It proposes a new specification mechanism for program repair via direct manipulation and develops JDial, a tool that synthesizes repairs using this approach.
Findings
JDial successfully repairs buggy programs from benchmarks
The approach effectively incorporates programmer intuition into repair synthesis
Quantitative objectives improve repair accuracy
Abstract
The goal of program repair is to automatically fix programs to meet a specification. We propose a new specification mechanism, direct manipulation, in which the programmer can visualize the trace of a buggy program on a failing input and convey the intended program behavior by manipulating variable values at some location. The repair problem is to find a program that, on the same input, reaches the location identified by the programmer with variable values equal to the manipulated ones. Since a single program execution under-specifies the overall program behavior, we augment our repair problem with quantitative objectives to find the program that agrees with the specification and is closest to the original one with respect to some distance. We formalize the repair problem, build a program repair tool JDial based on the Sketch synthesizer, and show the effectiveness of JDial on…
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
