Extracting Concise Bug-Fixing Patches from Human-Written Patches in Version Control Systems
Not on the map. Why?
Abstract (arXiv)
High-quality and large-scale repositories of real bugs and their concise patches collected from real-world applications are critical for research in software engineering community. In such a repository, each real bug is explicitly associated with its fix. Therefore, on one side, the real bugs and their fixes} may inspire novel approaches for finding, locating, and repairing software bugs; on the other side, the real bugs and their fixes are indispensable for rigorous and meaningful evaluation of approaches for software testing, fault localization, and program repair. To this end, a number of such repositories, e.g., Defects4J, have been proposed. However, such repositories are rather small because their construction involves expensive human intervention. Although bug-fixing code commits as well as associated test cases could be retrieved from version control systems automatically, existing approaches could not yet automatically extract concise bug-fixing patches from bug-fixing commits because such commits often involve bug-irrelevant changes. In this paper, we propose an automatic approach, called BugBuilder, to extracting complete and concise bug-fixing patches from human-written patches in version control systems. It excludes refactorings by detecting refactorings involved in bug-fixing commits, and reapplying detected refactorings on the faulty version. It enumerates all subsets of the remaining part and validates them on test cases. If none of the subsets has the potential to be a complete bug-fixing patch, the remaining part as a whole is taken as a complete and concise bug-fixing patch. Evaluation results on 809 real bug-fixing commits in Defects4J suggest that BugBuilder successfully generated complete and concise bug-fixing patches for forty percent of the bug-fixing commits, and its precision (99%) was even higher than human experts.
Key facts. Cited by 9 papers in the map (data through 7 Oct 2026). First posted on arXiv 27 Feb 2021.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2021: 1; 2022: 1; 2023: 3; 2024: 1; 2025: 1; 2026: 2.
9 papers.
- 2023Keep the Conversation Going: Fixing 162 out of 337 bugs for 0.42 each using ChatGPTcited by 125
- 2021A Syntax-Guided Edit Decoder for Neural Program Repaircited by 57
- 2023Copiloting the Copilots: Fusing Large Language Models with Completion Engines for Automated Program Repaircited by 55
- 2022Bugs in Machine Learning-based Systems: A Faultload Benchmarkcited by 15
- 2025BOAD: Discovering Hierarchical Software Engineering Agents via Bandit Optimizationcited by 7
- 2026Test vs Mutant: Adversarial LLM Agents for Robust Unit Test Generationcited by 6
- 2023ConDefects: A New Dataset to Address the Data Leakage Concern for LLM-based Fault Localization and Program Repaircited by 4
- 2024SLIM: a Scalable Light-weight Root Cause Analysis for Imbalanced Data in Microservicecited by 2
- 2026Right in the Right Way: LM Training with Verifiable Rewards and Human Demonstrationscited by 2
- 2026Right in the Right Way: LM Training with Verifiable Rewards and Human Demonstrations1 Jul 2026
- 2026Test vs Mutant: Adversarial LLM Agents for Robust Unit Test Generation8 Feb 2026
- 2025BOAD: Discovering Hierarchical Software Engineering Agents via Bandit Optimization29 Dec 2025
- 2024SLIM: a Scalable Light-weight Root Cause Analysis for Imbalanced Data in Microservice31 May 2024
- 2023ConDefects: A New Dataset to Address the Data Leakage Concern for LLM-based Fault Localization and Program Repair25 Oct 2023
- 2023Copiloting the Copilots: Fusing Large Language Models with Completion Engines for Automated Program Repair1 Sep 2023
- 2023Keep the Conversation Going: Fixing 162 out of 337 bugs for 0.42 each using ChatGPT1 Apr 2023
- 2022Bugs in Machine Learning-based Systems: A Faultload Benchmark24 Jun 2022
- 2021A Syntax-Guided Edit Decoder for Neural Program Repair15 Jun 2021