Empirical Review of Java Program Repair Tools: A Large-Scale Experiment on 2,141 Bugs and 23,551 Repair Attempts
Not on the map. Why?
Abstract (arXiv)
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.
Key facts. Cited by 12 papers in the map (data through 7 Oct 2026). First posted on arXiv 28 May 2019.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2021: 2; 2022: 2; 2023: 3; 2024: 1; 2025: 2; 2026: 2.
12 papers.
- 2023Large Language Models for Test-Free Fault Localizationcited by 67
- 2021A Syntax-Guided Edit Decoder for Neural Program Repaircited by 57
- 2021DeepDebug: Fixing Python Bugs Using Stack Traces, Backtranslation, and Code Skeletonscited by 17
- 2023RunBugRun -- An Executable Dataset for Automated Program Repaircited by 10
- 2025Dissecting the SWE-Bench Leaderboards: Profiling Submitters and Architectures of LLM- and Agent-Based Repair Systemscited by 8
- 2022Is this Change the Answer to that Problem? Correlating Descriptions of Bug and Code Changes for Evaluating Patch Correctnesscited by 7
- 2024Memory-Efficient Large Language Models for Program Repair with Semantic-Guided Patch Generationcited by 5
- 2023CCRep: Learning Code Change Representations via Pre-Trained Code Model and Query Backcited by 3
- 2025RePaCA: Leveraging Reasoning Large Language Models for Static Automated Patch Correctness Assessmentcited by 1
- 2022BigIssue: A Realistic Bug Localization Benchmarkcited by 0
- 2026A Metamorphic Testing Approach to Diagnosing Memorization in LLM-Based Program Repaircited by 0
- 2026Adversarial Testing of Automated Program Repair Agents for Security Vulnerabilitiescited by 0
- 2026Adversarial Testing of Automated Program Repair Agents for Security Vulnerabilities14 Sep 2026
- 2026A Metamorphic Testing Approach to Diagnosing Memorization in LLM-Based Program Repair23 Apr 2026
- 2025RePaCA: Leveraging Reasoning Large Language Models for Static Automated Patch Correctness Assessment30 Jul 2025
- 2025Dissecting the SWE-Bench Leaderboards: Profiling Submitters and Architectures of LLM- and Agent-Based Repair Systems20 Jun 2025
- 2024Memory-Efficient Large Language Models for Program Repair with Semantic-Guided Patch Generation22 Oct 2024
- 2023Large Language Models for Test-Free Fault Localization3 Oct 2023
- 2023RunBugRun -- An Executable Dataset for Automated Program Repair3 Apr 2023
- 2023CCRep: Learning Code Change Representations via Pre-Trained Code Model and Query Back8 Feb 2023
- 2022Is this Change the Answer to that Problem? Correlating Descriptions of Bug and Code Changes for Evaluating Patch Correctness8 Aug 2022
- 2022BigIssue: A Realistic Bug Localization Benchmark21 Jul 2022
- 2021A Syntax-Guided Edit Decoder for Neural Program Repair15 Jun 2021
- 2021DeepDebug: Fixing Python Bugs Using Stack Traces, Backtranslation, and Code Skeletons19 May 2021