Mining Software Repair Models for Reasoning on the Search Space of Automated Program Fixing
This work addresses the challenge of improving automated program repair for software developers by providing insights into human bug fixes, though it appears incremental in applying existing analysis methods to new data.
The paper tackled the problem of understanding bug fixing by analyzing thousands of bug fix transactions from software repositories to inform automated program repair, showing that not all probabilistic repair models are equivalent based on empirical results from 14 Java repositories and 89,993 transactions.
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.