DocumentCode
583162
Title
When Does a Refactoring Induce Bugs? An Empirical Study
Author
Bavota, Gabriele ; De Carluccio, Bernardino ; De Lucia, Andrea ; Penta, Massimiliano Di ; Oliveto, Rocco ; Strollo, Orazio
Author_Institution
Univ. of Salerno, Fisciano, Italy
fYear
2012
fDate
23-24 Sept. 2012
Firstpage
104
Lastpage
113
Abstract
Refactorings are - as defined by Fowler - behavior preserving source code transformations. Their main purpose is to improve maintainability or comprehensibility, or also reduce the code footprint if needed. In principle, refactorings are defined as simple operations so that are "unlikely to go wrong" and introduce faults. In practice, refactoring activities could have their risks, as other changes. This paper reports an empirical study carried out on three Java software systems, namely Apache Ant, Xerces, and Ar-go UML, aimed at investigating to what extent refactoring activities induce faults. Specifically, we automatically detect (and then manually validate) 15,008 refactoring operations (of 52 different kinds) using an existing tool (Ref-Finder). Then, we use the SZZ algorithm to determine whether it is likely that refactorings induced a fault. Results indicate that, while some kinds of refactorings are unlikely to be harmful, others, such as refactorings involving hierarchies (e.g., pull up method), tend to induce faults very frequently. This suggests more accurate code inspection or testing activities when such specific refactorings are performed.
Keywords
program debugging; Apache Ant; Argo UML; Java software systems; Xerces; code inspection; empirical study; refactoring induce bugs; source code transformations; testing activities; Computer bugs; Context; Data mining; Java; Software algorithms; Software systems; Empirical Studies; Fault-inducing changes; Mining software repositories; Refactoring;
fLanguage
English
Publisher
ieee
Conference_Titel
Source Code Analysis and Manipulation (SCAM), 2012 IEEE 12th International Working Conference on
Conference_Location
Trento
Print_ISBN
978-1-4673-2398-7
Type
conf
DOI
10.1109/SCAM.2012.20
Filename
6392107
Link To Document