Human-In-The-Loop Automatic Program Repair

12/16/2019
by   Marcel Böhme, et al.
63

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.

READ FULL TEXT

page 1

page 8

research
01/20/2023

An Analysis of the Automatic Bug Fixing Performance of ChatGPT

To support software developers in finding and fixing software bugs, seve...
research
04/06/2021

A large-scale study on human-cloned changes for automated program repair

Research in automatic program repair has shown that real bugs can be aut...
research
07/30/2018

Towards an automated approach for bug fix pattern detection

The characterization of bug datasets is essential to support the evaluat...
research
01/17/2019

Bears: An Extensible Java Bug Benchmark for Automatic Program Repair Studies

Benchmarks of bugs are essential to empirically evaluate automatic progr...
research
10/12/2018

Linear Program Reconstruction in Practice

We briefly report on a linear program reconstruction attack performed on...
research
08/01/2023

Patch Space Exploration using Static Analysis Feedback

Automated Program Repair (APR) techniques typically rely on a given test...
research
02/03/2023

Perfect Is the Enemy of Test Oracle

Automation of test oracles is one of the most challenging facets of soft...

Please sign up or login with your details

Forgot password? Click here to reset