一句话:提出补丁连带变更分类体系与自动识别工具 CasCADe,并证明去噪可提升变更预测。
软件补丁中的噪声会影响补丁理解、分析以及变更预测等任务,已有去噪方法未能彻底解决该问题。作者在 Tomcat 安全补丁数据集及另外五个系统的安全补丁中发现了一类此前未报告的噪声,称为非本质连带变更:这些变更本身不改变程序逻辑,却由补丁中的其他变更所必需。论文给出了连带变更的综合分类体系,并实现了自动识别技术 CasCADe。作者在多个公开补丁数据集及相关工具上评估 CasCADe,结果表明其识别准确率很高,这类噪声在补丁中相当常见,且去除该噪声能够提升一个已发表的基于变更的方法的评估结果。
Noise in software patches impacts their understanding, analysis, and use for tasks such as change prediction. Although several approaches have been developed to identify noise in patches, this issue has persisted. An analysis of a dataset of security patches for the Tomcat web server, which we further expanded with security patches from five additional systems, uncovered several kinds of previously unreported noise which we call nonessential casualty changes. These are changes that themselves do not alter the logic of the program but are necessitated by other changes made in the patch. In this paper, we provide a comprehensive taxonomy of casualty changes. We then develop CasCADe, an automated technique for automatically identifying casualty changes. We evaluate CasCADe with several publicly available datasets of patches and tools that focus on them. Our results show that CasCADe is highly accurate, that the kinds of noise it identifies occur relatively commonly in patches, and that removing this noise improves upon the evaluation results of a previously published change-based approach.