How Often Do Single-Statement Bugs Occur? The ManySStuBs4J Dataset
arXiv:1905.13334 · doi:10.1145/3379597.3387491
Abstract
Program repair is an important but difficult software engineering problem. One way to achieve acceptable performance is to focus on classes of simple bugs, such as bugs with single statement fixes, or that match a small set of bug templates. However, it is very difficult to estimate the recall of repair techniques for simple bugs, as there are no datasets about how often the associated bugs occur in code. To fill this gap, we provide a dataset of 153,652 single statement bug-fix changes mined from 1,000 popular open-source Java projects, annotated by whether they match any of a set of 16 bug templates, inspired by state-of-the-art program repair techniques. In an initial analysis, we find that about 33% of the simple bug fixes match the templates, indicating that a remarkable number of single-statement bugs can be repaired with a relatively small set of templates. Further, we find that template fitting bugs appear with a frequency of about one bug per 1,600-2,500 lines of code (as measured by the size of the project's latest version). We hope that the dataset will prove a resource for both future work in program repair and studies in empirical software engineering.
arXiv comment5 pages; to appear in Proceedings of MSR 2020
References in corpus (1)
Cited by in corpus (9)
- CVEfixes: Automated Collection of Vulnerabilities and Their Fixes from Open-Source Software
- Self-Supervised Bug Detection and Repair
- Understanding Neural Code Intelligence Through Program Simplification
- Evaluating Representation Learning of Code Changes for Predicting Patch Correctness in Program Repair
- Beep: Fine-grained Fix Localization by Learning to Predict Buggy Code Elements
- Megadiff: A Dataset of 600k Java Source Code Changes Categorized by Diff Size
- Mea culpa: How developers fix their own simple bugs differently from other developers
- A Controlled Experiment of Different Code Representations for Learning-Based Bug Repair
- DeepMutants: Training neural bug detectors with contextual mutations