Skip to main content
QUICK REVIEW

[论文解读] Connecting Software Metrics across Versions to Predict Defects

Yibin Liu, Yanhui Li|arXiv (Cornell University)|Dec 28, 2017
Software Engineering Research参考文献 57被引用 7
一句话总结

本文提出了一种新颖的缺陷预测方法,利用代码度量的历史版本序列(HVSM),以捕捉软件模块在连续版本中的时间演化特征。通过利用循环神经网络(RNN)对HVSM序列进行建模,该方法在9个开源项目中相较于基线模型实现了显著更优的、注重工作量的排序性能。

ABSTRACT

Accurate software defect prediction could help software practitioners allocate test resources to defect-prone modules effectively and efficiently. In the last decades, much effort has been devoted to build accurate defect prediction models, including developing quality defect predictors and modeling techniques. However, current widely used defect predictors such as code metrics and process metrics could not well describe how software modules change over the project evolution, which we believe is important for defect prediction. In order to deal with this problem, in this paper, we propose to use the Historical Version Sequence of Metrics (HVSM) in continuous software versions as defect predictors. Furthermore, we leverage Recurrent Neural Network (RNN), a popular modeling technique, to take HVSM as the input to build software prediction models. The experimental results show that, in most cases, the proposed HVSM-based RNN model has a significantly better effort-aware ranking effectiveness than the commonly used baseline models.

研究动机与目标

  • 为解决现有缺陷预测器(代码度量与过程度量)在捕捉软件模块随项目版本演化的局限性。
  • 提出一种新型缺陷预测器——代码度量历史版本序列(HVSM),整合文件在多个连续版本中的静态度量与变更度量。
  • 通过使用循环神经网络(RNN)建模软件演化的序列特性,提升缺陷预测性能。
  • 在项目内缺陷预测(WPDP)场景下评估所提出的HVSM-RNN模型,重点关注成本效益与排序有效性。
  • 证明HVSM-RNN模型在注重工作量的缺陷预测中,相较于7种广泛使用的基线分类器具有统计上显著的优越性。

提出的方法

  • 通过收集文件在一系列连续软件版本中的代码度量与过程度量,构建每个文件的历史版本度量序列(HVSM)。
  • 使用代码度量(如CK与McCabe特征)和过程度量(如变更频率、拥有者)提取HVSM,以表示随时间变化的静态与动态特征。
  • 应用循环神经网络(RNN)对HVSM的序列输入进行建模,从而能够处理长期文件中典型的可变长度序列。
  • 使用文件级别的缺陷标签端到端训练RNN模型,基于历史度量趋势预测缺陷易感性。
  • 采用标准评估指标(如AUC与ACC,20%工作量阈值)评估在注重工作量场景下的排序有效性。
  • 应用非参数统计检验(Wilcoxon符号秩检验、Cliff’s delta δ与Scott-Knott检验)验证性能差异的统计显著性。

实验结果

研究问题

  • RQ1与静态度量或成对变更度量相比,整合多个软件版本的历史度量序列是否能提升缺陷预测性能?
  • RQ2使用RNN对软件模块的时间演化进行建模,是否能提升缺陷预测中的注重工作量的排序有效性?
  • RQ3在项目内缺陷预测中,HVSM-RNN模型与7种成熟基线分类器(如朴素贝叶斯、随机森林、谱聚类)在AUC与ACC方面表现如何?
  • RQ4在多个开源项目中,使用非参数检验评估时,HVSM-RNN模型的性能提升是否具有统计显著性?
  • RQ5基于HVSM的特征是否能有效捕捉传统代码度量或过程度量单独无法识别的演化缺陷易感模式?

主要发现

  • HVSM-RNN模型在全部9个项目中均取得了最高的平均AUC,表明其在区分有缺陷文件与无缺陷文件方面具有更优的判别能力。
  • 在注重工作量的评估中(20%工作量下的ACC),RNN模型在Scott-Knott检验中排名第一,证明其相较于基线模型具有统计上显著的优越性。
  • 基于Wilcoxon符号秩检验与Cliff’s delta δ的胜/平/负分析确认,HVSM-RNN模型在排序有效性方面显著优于大多数基线分类器。
  • 所提方法在捕捉文件长期演化趋势方面具有明显优势,而静态或成对度量无法有效表达此类趋势。
  • RNN模型能有效处理可变长度的HVSM输入,克服了传统分类器需固定输入长度的关键限制。
  • 结果表明,在RNN框架中,使用代码度量构建HVSM的性能优于仅依赖过程度量的方案。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。