On the impact of Continuous Integration on refactoring practice: An exploratory study on TravisTorrent

被引:12
作者
Saidani, Islem [1 ]
Ouni, Ali [1 ]
Mkaouer, Mohamed Wiem [2 ]
Palomba, Fabio [3 ]
机构
[1] Univ Quebec, ETS Montreal, Montreal, PQ, Canada
[2] Rochester Inst Technol, Rochester, NY 14623 USA
[3] Univ Salerno, SeSa Lab, Fisciano, Italy
关键词
Continuous integration; Refactoring; Exploratory study; Mining software repositories; Multiple Regression Analysis;
D O I
10.1016/j.infsof.2021.106618
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Context: The ultimate goal of Continuous Integration (CI) is to support developers in integrating changes into production constantly and quickly through automated build process. While CI provides developers with prompt feedback on several quality dimensions after each change, such frequent and quick changes may in turn compromise software quality without Refactoring. Indeed, recent work emphasized the potential of CI in changing the way developers perceive and apply refactoring. However, we still lack empirical evidence to confirm or refute this assumption. Objective: We aim to explore and understand the evolution of refactoring practices, in terms of frequency, size and involved developers, after the switch to CI in order to emphasize the role of this process in changing the way Refactoring is applied. Method: We collect a corpus of 99,545 commits and 89,926 refactoring operations extracted from 39 opensource GitHub projects that adopt Travis CI and analyze the changes using Multiple Regression Analysis (MRA). Results: Our study delivers several important findings. We found that the adoption of CI is associated with a drop in the refactoring size as recommended, while refactoring frequency as well as the number (and its related rate) of developers that perform refactoring are estimated to decrease after the shift to CI, indicating that refactoring is less likely to be applied in CI context. Conclusion: Our study uncovers insights about CI theory and practice and adds evidence to existing knowledge about CI practices related especially to quality assurance. Software developers need more customized refactoring tool support in the context of CI to better maintain and evolve their software systems.
引用
收藏
页数:11
相关论文
共 59 条
[1]  
Abdalkareem Rabe, 2019, IEEE T SOFTW ENG
[2]  
Alizadeh V, 2019, 34TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE 2019), P835
[3]  
AlOmar EA, 2019, INT SYMP EMP SOFTWAR, P42
[4]  
[Anonymous], 2012, 20 FSE
[5]  
Bavota G, 2012, PROC INT CONF SOFTW, P1419, DOI 10.1109/ICSE.2012.6227233
[6]   TravisTorrent: Synthesizing Travis CI and GitHub for Full-Stack Research on Continuous Integration [J].
Beller, Moritz ;
Gousios, Georgios ;
Zaidman, Andy .
2017 IEEE/ACM 14TH INTERNATIONAL CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR 2017), 2017, :447-450
[7]   Studying the Impact of Adopting Continuous Integration on the Delivery Time of Pull Requests [J].
Bernardo, Joao Helis ;
da Costa, Daniel Alencar ;
Kulesza, Uira .
2018 IEEE/ACM 15TH INTERNATIONAL CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR), 2018, :131-141
[8]  
Cohen Patricia, 2014, APPL MULTIPLE REGRES, DOI DOI 10.4324/9781410606266
[9]  
Cook Thomas D, 1979, QUASIEXPERIMENTATION, P81
[10]  
Duvall P, 2007, ADDISON WESLEY SIGNA