Mining Software Repair Models for Reasoning on the Search Space of Automated Program Fixing
arXiv:1311.3414 · doi:10.1007/s10664-013-9282-8
Abstract
This paper is about understanding the nature of bug fixing by analyzing thousands of bug fix transactions of software repositories. It then places this learned knowledge in the context of automated program repair. We give extensive empirical results on the nature of human bug fixes at a large scale and a fine granularity with abstract syntax tree differencing. We set up mathematical reasoning on the search space of automated repair and the time to navigate through it. By applying our method on 14 repositories of Java software and 89,993 versioning transactions, we show that not all probabilistic repair models are equivalent.
Empirical Software Engineering (2013)
Cited by in corpus (13)
- Nopol: Automatic Repair of Conditional Statement Bugs in Java Programs
- Automatic Software Repair: a Bibliography
- TBar: Revisiting Template-based Automated Program Repair
- FixMiner: Mining Relevant Fix Patterns for Automated Program Repair
- Sorting and Transforming Program Repair Ingredients via Deep Learning Code Similarities
- Dissection of a Bug Dataset: Anatomy of 395 Patches from Defects4J
- Impact of Tool Support in Patch Construction
- The Android Update Problem: An Empirical Study
- Hyperparameter Optimization for AST Differencing
- A Comprehensive Study of Code-removal Patches in Automated Program Repair
- A Framework for Conditional Statement Technical Debt Identification and Description
- Utilizing Source Code Syntax Patterns to Detect Bug Inducing Commits using Machine Learning Models
- Estimating the Potential of Program Repair Search Spaces with Commit Analysis