Exploiting fault localisation for efficient program repair

Search-based program repair generates variants of a defective program to find its repair. This could reduce the time and effort necessary for the manual software development and maintenance. However, applying even a limited set of mutations on a small piece of code (that repairs only trivial defects) generates a huge number of possible program variants (also called a search space). The reduction of the search space, while preserving the number and quality of repairs, would make these tools more efficient and practical. We present an end-to-end repair tool for Java programs. It localises lines of source code that introduced a defect into the history of the program's development and applies a set of mutations targeting only these lines. In the reduced search space, our tool repaired defects covered by failing tests in an open-source Java program.

[1]  Tracy Hall,et al.  Getting Defect Prediction Into Industrial Practice: the ELFF Tool , 2017, 2017 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW).

[2]  Gabriela Ochoa,et al.  Visualising the Search Landscape of the Triangle Program , 2017, EuroGP.

[3]  Sarfraz Khurshid,et al.  Accelerating Search-Based Program Repair , 2018, 2018 IEEE 11th International Conference on Software Testing, Verification and Validation (ICST).

[4]  David R. White GI in no time , 2017, GECCO.

[5]  Markus Wagner,et al.  Gin: genetic improvement research made easy , 2019, GECCO.