Longitudinal Analysis of the Applicability of Program Repair on Past Commits

07/14/2020
by   Khashayar Etemadi, et al.
0

The applicability of program repair in the real world is a little researched topic. Existing program repair systems tend to only be tested on small bug datasets, such as Defects4J, that are not fully representative of real world projects. In this paper, we report on a longitudinal analysis of software repositories to investigate if past commits are amenable to program repair. Our key insight is to compute whether or not a commit lies in the search space of program repair systems. For this purpose, we present RSCommitDetector, which gets a Git repository as input and after performing a series of static analyses, it outputs a list of commits whose corresponding source code changes could likely be generated by notable repair systems. We call these commits the “repair-space commits”, meaning that they are considered in the search space of a repair system. Using RSCommitDetector, we conduct a study on 41,612 commits from the history of 72 Github repositories. The results of this study show that 1.77% of these commits are repair-space commits, they lie in the search space of at least one of the eight repair systems we consider. We use an original methodology to validate our approach and show that the precision and recall of RSCommitDetector are 77% and 92%, respectively. To our knowledge, this is the first study of the applicability of program repair with search space analysis.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
11/14/2018

The Remarkable Role of Similarity in Redundancy-based Program Repair

Recently, there have been original attempts to use the concept of simila...
research
02/21/2018

Learning to Synthesize

In many scenarios we need to find the most likely program under a local ...
research
12/21/2020

Adversarial Patch Generation for Automatic Program Repair

Automatic program repair (APR) has seen a growing interest in recent yea...
research
11/26/2020

Debug-Localize-Repair: A Symbiotic Construction for Heap Manipulations

We present Wolverine, an integrated Debug-Localize-Repair environment fo...
research
05/08/2020

Using Taint Analysis and Reinforcement Learning (TARL) to Repair Autonomous Robot Software

It is important to be able to establish formal performance bounds for au...
research
08/17/2022

Input Repair via Synthesis and Lightweight Error Feedback

Often times, input data may ostensibly conform to a given input format, ...
research
07/09/2021

Sirius: Static Program Repair with Dependence Graph-Based Systematic Edit Patterns

Software development often involves systematic edits, similar but nonide...

Please sign up or login with your details

Forgot password? Click here to reset