摘要

软件缺陷预测有助于提高软件质量,合理配置软件测试资源,目前已经有不少基于软件度量指标的缺陷预测模型.然而,现有的软件度量指标主要集中在源代码的结构信息上,程序语义信息考虑较少.编译优化是对程序语义进行深入分析的结果,直观地认为它应该在一定程度上能够反映程序的语义信息,有助于软件缺陷预测.因此,为分析编译优化度量指标对软件缺陷预测的影响,本文首先基于当前编译器中广泛使用的优化选项,设计了9种编译优化度量指标.结合源代码结构层面的度量指标,构建了5种软件缺陷预测度量模型.利用weka中提供的13种常用的分类器,对比分析了添加不同优化度量指标的模型效果,对编译优化度量与软件缺陷预测之间的关系进行了评价,同时与DP-CNN(Defect Prediction via Convolutional Neural Network)模型进行了对比.实验结果表明:编译优化度量指标对软件缺陷预测的召回率有显著影响;在代码复杂度度量指标的基础上增加编译优化度量指标,可以提升所有软件缺陷预测模型的性能,平均提升幅度约为5%;基于代码大小的优化度量和基于性能的优化度量具有各自的特点,两者相结合可以在软件缺陷预测中获得更好的性能.

  • 单位
    南京审计大学