论文标题
关于重构动作与错误之间的关系:差异化复制
On the Relationship between Refactoring Actions and Bugs: A Differentiated Replication
论文作者
论文摘要
软件重构旨在提高代码质量,同时保留系统的外部行为。尽管原则上重构是一种保护行为的活动,但Bavota等人提出的一项研究。 2012年,报告了某些重构作用(例如,拉动方法)的正当性来诱导故障。这项研究是通过挖掘三个系统的重构活动和错误进行的。利用采矿软件存储库领域中所取得的进步(例如,更好的工具来检测在提交级别的粒度上的重构动作),我们提出了Bavota等人对工作的差异化复制。我们(i)克服了影响其实验设计的一些弱点,(ii)在更大的数据集(3 vs 103系统)上回答了原始研究的相同研究问题,以及(iii)补充对重构和虫子之间关系的定量分析,并通过定性的,对委托进行验证的人手工检查,以验证验证范围的活动,以验证该范围的活动,以示出了漏洞的范围,该活动构成了漏洞的操作,构成了烦恼的效果。我们的定量分析结果证实了复制研究的发现,而定性分析部分地揭示了在错误引入中重构动作所起的作用。
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.