An exploratory study on extract method floss-refactoring
Jaziel S. Moreira, Everton L. G. Alves, Wilkerson L. Andrade · 2020
As a software evolves its code requires constant updating. In this sense, refactoring edits aim at improving structural aspects of a code without changing its external behavior. However, studies show that developers tend to combine in a single commit refactorings and behavior-changing edits (extra edits) - floss-refactoring. Floss-refactorings can be error-prone and require careful handling. However, little has been done to understand how refactorings and extra edits relate in practice. In this work, we propose a strategy for extracting floss-refactoring data. Moreover, we mine code repositories of 16 open-source projects and analyse commits with floss refactoring related to Extract Method. Our results show that developers often combine Extract Method with inner method extra edits (e.g., statement insert), with an expected increase of 8-16% of extra edits by each Extract Method. Moreover, some statements are more likely to be changed depending on the extra edit performed.