Empirical Review of Java Program Repair Tools: A Large-Scale Experiment on 2 141 Bugs and 23 551 Repair Attempts

Proceedings of the 27th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, Main track (FSE'19)

T. DurieuxF. MadeiralM. MartinezR. Abreu 

PDFDOISlideSource codeExperiment Results


In the past decade, research on test-suite-based automatic program repair has grown significantly. Each year, new approaches and implementations are featured in major software engineering venues. However, most of those approaches are evaluated on a single benchmark of bugs, which are also rarely reproduced by other researchers. In this paper, we present a large-scale experiment using 11 Java test-suite-based repair tools and 5 benchmarks of bugs. Our goal is to have a better understanding of the current state of automatic program repair tools on a large diversity of benchmarks. Our investigation is guided by the hypothesis that the repairability of repair tools might not be generalized across different benchmarks of bugs. We found that the 11 tools 1) are able to generate patches for 21% of the bugs from the 5 benchmarks, and 2) have better performance on Defects4J compared to other benchmarks, by generating patches for 47% of the bugs from Defects4J compared to 10-30% of bugs from the other benchmarks. Our experiment comprises 23,551 repair attempts in total, which we used to find the causes of non-patch generation. These causes are reported in this paper, which can help repair tool designers to improve their techniques and tools.

author = {Thomas Durieux and
Fernanda Madeiral and
Matias Martinez and
Rui Abreu},
editor = {Marlon Dumas and
Dietmar Pfahl and
Sven Apel and
Alessandra Russo},
title = {Empirical review of Java program repair tools: a large-scale experiment
on 2, 141 bugs and 23, 551 repair attempts},
booktitle = {Proceedings of the {ACM} Joint Meeting on European Software Engineering
Conference and Symposium on the Foundations of Software Engineering,
{ESEC/SIGSOFT} {FSE} 2019, Tallinn, Estonia, August 26-30, 2019},
pages = {302--313},
publisher = {{ACM}},
year = {2019},
url = { https://doi.org/10.1145/3338906.3338911 },
doi = {10.1145/3338906.3338911},
timestamp = {Tue, 13 Apr 2021 13:32:37 +0200},
biburl = { https://dblp.org/rec/conf/sigsoft/DurieuxDMA19.bib },
bibsource = {dblp computer science bibliography,  https://dblp.org }
Last Updated: 28/07/2021