Assessing the Bug-Proneness of Refactored Code: A Longitudinal Multi-Project Study
Isabella Ferreira, Lawrence Arkoh, Anderson Uch\^oa, Ana Carla Bibiano, Alessandro Garcia, Wesley K. G. Assun\c{c}\~ao

TL;DR
This longitudinal study of 12 open source projects investigates how different types and combinations of refactorings influence bug proneness, revealing nuanced effects and limitations of current detection methods.
Contribution
It provides empirical evidence on the long-term impact of various refactoring practices on bug occurrence, highlighting complexities beyond common assumptions.
Findings
Multiple refactorings do not reduce bug-proneness compared to single refactorings.
Single refactorings often induce bugs across projects.
Refactorings combined with other changes (floss refactorings) are frequently bug-prone.
Abstract
Refactoring is a common practice in software development, aimed at improving the internal code structure in order to make it easier to understand and modify. Consequently, it is often assumed that refactoring makes the code less prone to bugs. However, in practice, refactoring is a complex task and applied in different ways (e.g., various refactoring types, single vs. composite refactorings) and with a variety of purposes (e.g., root-canal vs. floss refactoring). Therefore, certain refactorings can inadvertently make the code more prone to bugs. Unfortunately, there is limited research in the literature on the long-term relationship between the different characteristics of refactorings and bugs. This paper presents a longitudinal study of 12 open source software projects, where 27,450 refactorings, 6,051 reported bugs, and 49,250 bugs detected with static analysis tools were analyzed.…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
