Dissection of a Bug Dataset: Anatomy of 395 Patches from Defects4J
Not on the map. Why?
Abstract (arXiv)
Well-designed and publicly available datasets of bugs are an invaluable asset to advance research fields such as fault localization and program repair as they allow directly and fairly comparison between competing techniques and also the replication of experiments. These datasets need to be deeply understood by researchers: the answer for questions like "which bugs can my technique handle?" and "for which bugs is my technique effective?" depends on the comprehension of properties related to bugs and their patches. However, such properties are usually not included in the datasets, and there is still no widely adopted methodology for characterizing bugs and patches. In this work, we deeply study 395 patches of the Defects4J dataset. Quantitative properties (patch size and spreading) were automatically extracted, whereas qualitative ones (repair actions and patterns) were manually extracted using a thematic analysis-based approach. We found that 1) the median size of Defects4J patches is four lines, and almost 30% of the patches contain only addition of lines; 2) 92% of the patches change only one file, and 38% has no spreading at all; 3) the top-3 most applied repair actions are addition of method calls, conditionals, and assignments, occurring in 77% of the patches; and 4) nine repair patterns were found for 95% of the patches, where the most prevalent, appearing in 43% of the patches, is on conditional blocks. These results are useful for researchers to perform advanced analysis on their techniques' results based on Defects4J. Moreover, our set of properties can be used to characterize and compare different bug datasets.
Key facts. Cited by 14 papers in the map (data through 7 Oct 2026). First posted on arXiv 19 Jan 2018.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2021: 2; 2022: 2; 2023: 1; 2024: 4; 2025: 4; 2026: 1.
14 papers.
Sort:
By area:
- 2024HyperAgent: Generalist Software Engineering Agents to Solve Coding Tasks at Scalecited by 61
- 2025Evaluating Agent-based Program Repair at Googlecited by 35
- 2022Improving Automated Program Repair with Domain Adaptationcited by 10
- 2024Enhancing Automated Program Repair with Solution Designcited by 8
- 2021Predicting Patch Correctness Based on the Similarity of Failing Test Casescited by 4
- 2025Assessing the Impact of Code Changes on the Fault Localizability of Large Language Modelscited by 4
- 2024Assessing the Latent Automated Program Repair Capabilities of Large Language Models using Round-Trip Translationcited by 3
- 2021Root cause prediction based on bug reportscited by 1
- 2025From Empirical Evaluation to Context-Aware Enhancement: Repairing Regression Errors with LLMscited by 1
- 2022Example-based Synthesis of Static Analysis Rulescited by 0
- 2023ActiveClean: Generating Line-Level Vulnerability Data via Active Learningcited by 0
- 2024Peer-aided Repairer: Empowering Large Language Models to Repair Advanced Student Assignmentscited by 0
- 2026LazyAgent: Demand-Driven Materialization and Physical Optimization of Agentic Programs19 Sep 2026
- 2025Progressive Code Integration for Abstractive Bug Report Summarization29 Nov 2025
- 2025From Empirical Evaluation to Context-Aware Enhancement: Repairing Regression Errors with LLMs16 Jun 2025
- 2025Assessing the Impact of Code Changes on the Fault Localizability of Large Language Models6 Apr 2025
- 2025Evaluating Agent-based Program Repair at Google13 Jan 2025
- 2024HyperAgent: Generalist Software Engineering Agents to Solve Coding Tasks at Scale9 Sep 2024
- 2024Enhancing Automated Program Repair with Solution Design22 Aug 2024
- 2024Peer-aided Repairer: Empowering Large Language Models to Repair Advanced Student Assignments2 Apr 2024
- 2024Assessing the Latent Automated Program Repair Capabilities of Large Language Models using Round-Trip Translation15 Jan 2024
- 2023ActiveClean: Generating Line-Level Vulnerability Data via Active Learning4 Dec 2023
- 2022Improving Automated Program Repair with Domain Adaptation21 Dec 2022
- 2022Example-based Synthesis of Static Analysis Rules19 Apr 2022
2 more
- 2021Predicting Patch Correctness Based on the Similarity of Failing Test Cases28 Jul 2021
- 2021Root cause prediction based on bug reports3 Mar 2021
- 2022Improving Automated Program Repair with Domain Adaptationcited by 10
- 2024Enhancing Automated Program Repair with Solution Designcited by 8
- 2021Predicting Patch Correctness Based on the Similarity of Failing Test Casescited by 4
- 2025Assessing the Impact of Code Changes on the Fault Localizability of Large Language Modelscited by 4
- 2024Assessing the Latent Automated Program Repair Capabilities of Large Language Models using Round-Trip Translationcited by 3
- 2021Root cause prediction based on bug reportscited by 1
- 2025From Empirical Evaluation to Context-Aware Enhancement: Repairing Regression Errors with LLMscited by 1
- 2022Example-based Synthesis of Static Analysis Rulescited by 0
- 2023ActiveClean: Generating Line-Level Vulnerability Data via Active Learningcited by 0
- 2024Peer-aided Repairer: Empowering Large Language Models to Repair Advanced Student Assignmentscited by 0
- 2025Progressive Code Integration for Abstractive Bug Report Summarizationcited by 0
- 2025Progressive Code Integration for Abstractive Bug Report Summarization29 Nov 2025
- 2025From Empirical Evaluation to Context-Aware Enhancement: Repairing Regression Errors with LLMs16 Jun 2025
- 2025Assessing the Impact of Code Changes on the Fault Localizability of Large Language Models6 Apr 2025
- 2024Enhancing Automated Program Repair with Solution Design22 Aug 2024
- 2024Peer-aided Repairer: Empowering Large Language Models to Repair Advanced Student Assignments2 Apr 2024
- 2024Assessing the Latent Automated Program Repair Capabilities of Large Language Models using Round-Trip Translation15 Jan 2024
- 2023ActiveClean: Generating Line-Level Vulnerability Data via Active Learning4 Dec 2023
- 2022Improving Automated Program Repair with Domain Adaptation21 Dec 2022
- 2022Example-based Synthesis of Static Analysis Rules19 Apr 2022
- 2021Predicting Patch Correctness Based on the Similarity of Failing Test Cases28 Jul 2021
- 2021Root cause prediction based on bug reports3 Mar 2021