Human-In-The-Loop Automatic Program Repair
Marcel B\"ohme, Charaka Geethal, Van-Thuan Pham

TL;DR
Learn2fix is a human-in-the-loop semi-automatic program repair method that efficiently trains an automatic bug oracle through systematic user queries, enabling high-quality repairs with minimal user effort.
Contribution
It introduces a novel approach for bug repair that combines user interaction with automated testing, reducing manual effort and improving patch quality.
Findings
Learn2fix requires fewer than 20 user queries to train an effective bug oracle.
The approach produces higher-quality patches compared to manual test suites.
Systematic queries improve the accuracy of bug detection and repair.
Abstract
We introduce Learn2fix, the first human-in-the-loop, semi-automatic repair technique when no bug oracle--except for the user who is reporting the bug--is available. Our approach negotiates with the user the condition under which the bug is observed. Only when a budget of queries to the user is exhausted, it attempts to repair the bug. A query can be thought of as the following question: "When executing this alternative test input, the program produces the following output; is the bug observed"? Through systematic queries, Learn2fix trains an automatic bug oracle that becomes increasingly more accurate in predicting the user's response. Our key challenge is to maximize the oracle's accuracy in predicting which tests are bug-exposing given a small budget of queries. From the alternative tests that were labeled by the user, test-driven automatic repair produces the patch. Our experiments…
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.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Software Engineering Research · Software System Performance and Reliability
MethodsRepair · Test
