Self-Boosted Automated Program Repair

04/09/2021
by   Samuel Benton, et al.
0

Program repair is an integral part of every software system's life-cycle but can be extremely challenging. To date, researchers have proposed various automated program repair (APR) techniques to reduce efforts of manual debugging. However, given a real-world buggy program, a typical APR technique usually generates a large number of patches, each of which needs to be validated against the original test suite which incurs extremely high computation costs. Although existing APR techniques have already leveraged various static and/or dynamic information to find the desired patches faster, they are still rather costly. In a recent work, researchers proposed unified debugging to leverage the patch execution information during APR to help boost fault localization; in this way,the application scope of APR techniques can be extended to all possible bugs, e.g., the patch execution information during APR can help with manual repair of the bugs that cannot be automatically fixed. Inspired by unified debugging, this work proposes SeAPR (Self-Boosted Automated Program Repair), the first technique to leverage the earlier patch execution information during APR to help boost automated repair itself on-the-fly. Our basic intuition is that patches similar to earlier high-quality/low-quality patches should be promoted/degraded to speed up the detection of the desired patches. This experimental study on 12 state-of-the-art APR systems demonstrates that, overall, SeAPR can substantially reduce the number of patch executions with negligible overhead. Our study also investigates the impact of various configurations on SeAPR. Lastly, our study demonstrates that SeAPR can even leverage the patch execution information from other APR tools from the same buggy program to further boost APR.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/03/2019

Can Automated Program Repair Refine Fault Localization?

Software bugs are prevalent in modern software systems and notoriously h...
research
07/22/2020

Fast and Precise On-the-fly Patch Validation for All

Generate-and-validate (G V) automated program repair (APR) techniques ...
research
03/10/2022

Program Repair: Automated vs. Manual

Various automated program repair (APR) techniques have been proposed to ...
research
12/28/2022

A Bayesian Framework for Automated Debugging

Debugging takes up a significant portion of developer time. As a result,...
research
06/21/2019

Harnessing Evolution for Multi-Hunk Program Repair

Despite significant advances in automatic program repair (APR)techniques...
research
03/31/2021

Exploring Plausible Patches Using Source Code Embeddings in JavaScript

Despite the immense popularity of the Automated Program Repair (APR) fie...
research
05/15/2021

How Does Regression Test Selection Affect Program Repair? An Extensive Study on 2 Million Patches

APR techniques can be extremely time consuming since (1) a large number ...

Please sign up or login with your details

Forgot password? Click here to reset