SEAIDec 16, 2019

Human-In-The-Loop Automatic Program Repair

arXiv:1912.07758v142 citations
Originality Incremental advance
AI Analysis

This addresses the problem of software debugging and repair for developers or users in scenarios with limited bug information, though it appears incremental by building on existing test-driven repair tools like GenProg.

The paper tackles the problem of automatic program repair when no bug oracle exists except the user, by introducing Learn2Fix, a human-in-the-loop technique that trains an automatic bug oracle through user queries and then uses test-driven repair to generate patches. The result shows that Learn2Fix learns an accurate oracle with less than 20 queries and produces higher-quality patches than manual test suites, as demonstrated by a larger proportion of passing validation tests.

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 demonstrate that Learn2fix learns a sufficiently accurate automatic oracle with a reasonably low labeling effort (lt. 20 queries). Given Learn2fix's test suite, the GenProg test-driven repair tool produces a higher-quality patch (i.e., passing a larger proportion of validation tests) than using manual test suites provided with the repair benchmark.

Code Implementations1 repo
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes