On the Relationship between Refactoring Actions and Bugs: A Differentiated Replication

被引:15
|
作者
Di Penta, Massimiliano [1 ]
Bavota, Gabriele [2 ]
Zampetti, Fiorella [1 ]
机构
[1] Univ Sannio, Benevento, Italy
[2] Univ Svizzera Italiana, Lugano, Switzerland
基金
欧洲研究理事会;
关键词
refactoring; bug introduction; mining software repositories; QUALITY; IMPACT;
D O I
10.1145/3368089.3409695
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Software refactoring aims at improving code quality while preserving the system's external behavior. Although in principle refactoring is a behavior-preserving activity, a study presented by Bavota et al. in 2012 reported the proneness of some refactoring actions (e.g., pull up method) to induce faults. The study was performed by mining refactoring activities and bugs from three systems. Taking profit of the advances made in the mining software repositories field (e.g., better tools to detect refactoring actions at commit-level granularity), we present a differentiated replication of the work by Bavota et al. in which we (i) overcome some of the weaknesses that affect their experimental design, (ii) answer the same research questions of the original study on a much larger dataset (3 vs 103 systems), and (iii) complement the quantitative analysis of the relationship between refactoring and bugs with a qualitative, manual inspection of commits aimed at verifying the extent to which refactoring actions trigger bug-fixing activities. The results of our quantitative analysis confirm the findings of the replicated study, while the qualitative analysis partially demystifies the role played by refactoring actions in the bug introduction.
引用
收藏
页码:556 / 567
页数:12
相关论文
共 50 条
  • [1] Poster: The Buggy Side of Code Refactoring: Understanding the Relationship between Refactorings and Bugs
    Ferreira, Isabella
    Fernandes, Eduardo
    Cedrim, Diego
    Uchoa, Anderson
    Bibiano, Ana Carla
    Garcia, Alessandro
    Correia, Joao Lucas
    Santos, Filipe
    Nunes, Gabriel
    Barbosa, Caio
    Fonseca, Baldoino
    de Mello, Rafael
    [J]. PROCEEDINGS 2018 IEEE/ACM 40TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING - COMPANION (ICSE-COMPANION, 2018, : 406 - 407
  • [2] Is Refactoring Always a Good Egg? Exploring the Interconnection Between Bugs and Refactorings
    Bagheri, Amirreza
    Hegedus, Peter
    [J]. 2022 MINING SOFTWARE REPOSITORIES CONFERENCE (MSR 2022), 2022, : 117 - 121
  • [3] An Exploratory Study on the Relationship between Changes and Refactoring
    Palomba, Fabio
    Zaidman, Andy
    Oliveto, Rocco
    De Lucia, Andrea
    [J]. 2017 IEEE/ACM 25TH INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION (ICPC), 2017, : 176 - 185
  • [4] On the Relationship Between Coupling and Refactoring: An Empirical Viewpoint
    Counsell, Steve
    Arzoky, Mahir
    Destefanis, Giuseppe
    Taibi, Davide
    [J]. 2019 13TH ACM/IEEE INTERNATIONAL SYMPOSIUM ON EMPIRICAL SOFTWARE ENGINEERING AND MEASUREMENT (ESEM 2019), 2019, : 25 - 30
  • [5] Revisiting the Relationship Between Code Smells and Refactoring
    Yoshida, Norihiro
    Saika, Tsubasa
    Choi, Eunjong
    Ouni, Ali
    Inoue, Katsuro
    [J]. 2016 IEEE 24TH INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION (ICPC), 2016,
  • [6] Refactoring Debt: Myth or Reality? An Exploratory Study on the Relationship Between Technical Debt and Refactoring
    Peruma, Anthony
    AlOmar, Eman Abdullah
    Newman, Christian D.
    Mkaouer, Mohamed Wiem
    Ouni, Ali
    [J]. 2022 MINING SOFTWARE REPOSITORIES CONFERENCE (MSR 2022), 2022, : 127 - 131
  • [7] An experimental investigation on the innate relationship between quality and refactoring
    Bavota, Gabriele
    De Lucia, Andrea
    Di Penta, Massimiliano
    Oliveto, Rocco
    Palomba, Fabio
    [J]. JOURNAL OF SYSTEMS AND SOFTWARE, 2015, 107 : 1 - 14
  • [8] Behind the scenes: On the relationship between developer experience and refactoring
    Alomar, Eman Abdullah
    Peruma, Anthony
    Mkaouer, Mohamed Wiem
    Newman, Christian D.
    Ouni, Ali
    [J]. JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, 2024, 36 (01)
  • [9] An experimental investigation on the innate relationship between quality and refactoring
    Free University of Bozen-Bolzano, Bolzano, Italy
    不详
    不详
    不详
    [J]. J Syst Software, (1-14):
  • [10] Exploring the relationship between refactoring and code debt indicators
    Halepmollasi, Rusen
    Tosun, Ayse
    [J]. JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, 2024, 36 (01)