When Does a Refactoring Induce Bugs? An Empirical Study

The recipient of the best paper award, so expectations are high ūüôā

The authors mined 63 releases of 3 systems. With RefFinder they were able to detect 15.000 refactorings of 52 types. They manually validated all those refactorings (!) and this way 12,922 remained. Furthermore, authors analyzed post-release bugs by looking at change logs, combined with BugZilla and Jira. With this, the users can detect when a refactoring introduces a bug.

First research question: To what extent do refactorings introduce bug fixes? So, the authors wanted to know whether classes involved in refactorings were also involved in bug fixes. Turns out that in some specific cases, classes involved in refactorings have a higher chance of being involved in bug-inducing changes.

Next question: what types of refactoring are most likely to be involved in bug fixes. There are some specific kinds of refactorings that are very likely to induce bug fixes, such as Pull Up Method and Extract Subclass , where the percentage of fixes likely induced by such refactorings is around 40%.

Research question 3: Are refactorings more likely to induce bug fixes in source or target components? Turns out that there is not really a difference.

Great idea and a fantastic, lively and bullet point and source code free presentation. Deep bow!