警惕外在缺陷!以 OpenStack 项目为例研究其对即时缺陷预测模型的影响
软件工程
2021-03-30 v1
摘要
内在缺陷是指可在软件版本控制系统中识别出引入缺陷的变更所对应的缺陷。相反,外在缺陷由软件的外部变更引起,例如外部 API 中的错误;因此它们在版本控制系统中没有显式的引入缺陷的变更。尽管以往大多数研究文献假设所有缺陷均为内在性质,我们在先前研究中表明并非所有缺陷都是内在的。本文给出一个考虑外在缺陷如何影响软件工程研究的实例。具体而言,我们通过部分复现 McIntosh 和 Kamei 近期关于 JIT 模型的研究,考察外在缺陷在即时(Just In Time)缺陷预测中的影响。这些模型利用早期引入缺陷的变更的属性进行训练。由于外在缺陷在版本控制系统中没有引入缺陷的变更,我们手动整理 McIntosh 和 Kamei 的数据集以区分内在与外在缺陷。随后,我们重新回答其原始研究问题,此次移除外在缺陷,以研究在即时缺陷预测中引入缺陷的变更是否是一个移动目标。最后,我们研究内在与外在缺陷的特征是否不同。我们的结果表明内在与外在缺陷性质不同。移除外在缺陷时性能差异最高达 16% 曲线下面积(AUC)点数。这表明我们的 JIT 模型获得了更真实世界的准确表征。我们得出结论:外在缺陷对即时模型有负面影响。此外,我们提供证据表明外在缺陷应被进一步研究,因为它们会显著影响软件工程师对缺陷的理解。
引用
@article{arxiv.2103.15180,
title = {Watch out for Extrinsic Bugs! A Case Study of their Impact in Just-In-Time Bug Prediction Models on the OpenStack project},
author = {Gema Rodriguez-Perez and Meiyappan Nagappan and Gregorio Robles},
journal= {arXiv preprint arXiv:2103.15180},
year = {2021}
}
备注
in IEEE Transactions on Software Engineering, 2020