使用模型无关技术预测缺陷代码行
软件工程
2020-09-17 v1
摘要
缺陷预测模型旨在根据存在缺陷的可能性,帮助团队优先处理需要软件质量保证(SQA)的源代码文件区域。然而,开发人员可能会在整份文件上浪费不必要的精力,而其中只有一小部分源代码行存在缺陷。事实上,我们发现一个文件中仅有 1%–3% 的行存在缺陷。因此,在本工作中,我们提出了一种新颖的框架(称为 LINE-DP),使用模型无关技术(即一种可解释 AI 技术,提供模型为何做出此类预测的信息)来识别缺陷行。广义而言,我们的 LINE-DP 首先使用代码标记特征构建文件级缺陷模型。然后,我们的 LINE-DP 使用最先进的模型无关技术(即 LIME)来识别风险标记,即导致文件级缺陷模型预测该文件将有缺陷的代码标记。接着,包含风险标记的行被预测为缺陷行。通过对九个 Java 开源系统的 32 个发布版本进行案例研究,我们的评估结果显示,我们的 LINE-DP 达到了平均召回率 0.61、误报率 0.47、前 20% 代码行召回率 0.27 以及初始误报数 16,这些结果在统计上优于六种基线方法。我们的评估表明,我们的 LINE-DP 平均需要 10 秒的计算时间,包括模型构建和缺陷行识别时间。此外,我们发现我们的 LINE-DP 可识别的缺陷行中有 63% 与常见缺陷相关(例如,参数变更、条件变更)。这些结果表明,我们的 LINE-DP 能够有效识别包含常见缺陷的缺陷行,同时需要较少的审查工作量和可控的计算成本。
引用
@article{arxiv.2009.03612,
title = {Predicting Defective Lines Using a Model-Agnostic Technique},
author = {Supatsara Wattanakriengkrai and Patanamon Thongtanunam and Chakkrit Tantithamthavorn and Hideaki Hata and Kenichi Matsumoto},
journal= {arXiv preprint arXiv:2009.03612},
year = {2020}
}