Page 318 - 《软件学报》2021年第7期
P. 318
2236 Journal of Software 软件学报 Vol.32, No.7, July 2021
M-CE-Inv 可以带来缺陷预测性能的提升,且整体上提升明显.
Table 6 Improvements of defect prediction performance by modified metrics
表 6 改进的度量元带来的缺陷预测性能提升
SVM 分类器 RF 分类器
数据集 使用的度量元 评价指标(%) 评价指标(%)
Precision Recall F1 Precision Recall F1
CE 37.8 46.9 41.8 68.8 65.5 67.1
M-CE 60.6 82.9 70.0 72.5 75.3 73.8
CE-Inv 38.7 46.9 42.2 62.6 60.2 61.4
M-CE-Inv 60.4 78.1 68.1 69.1 70.2 69.7
BE-ALL
CE+CE-Inv 45.9 66.1 54.2 64.9 56.3 60.3
M-CE+M-CE-Inv 67.7 85.5 75.5 76.2 80.5 78.3
CE+CE-Inv+LOC+TSize 61.2 66.4 63.7 69.5 61.6 65.3
M-CE+M-CE-Inv+LOC+TSize 82.8 79.8 81.3 81.3 88.8 84.9
CE 46.9 62.8 53.4 82.5 77.2 79.8
M-CE 52.5 84.0 64.5 81.0 80.3 80.6
CE-Inv 52.7 61.5 56.3 86.6 82.5 84.5
M-CE-Inv 53.1 83.1 64.7 84.0 85.2 84.6
RME-ALL
CE+CE-Inv 65.8 77.9 71.3 88.7 80.4 84.3
M-CE+M-CE-Inv 71.1 84.7 77.3 85.2 84.3 84.8
CE+CE-Inv+LOC+TSize 94.9 81.6 87.8 91.9 84.0 87.8
M-CE+M-CE-Inv+LOC+TSize 96.1 82.1 88.5 88.5 91.3 89.9
5.4 针对RQ4的结果分析
为进一步说明本文方法的有效性,RQ4 关注与其他方法的比较.表 7 展示了在相同缺陷数据集上,CNDePor
方法与其他方法的性能对比情况,其中,本文方法使用了表 2 设计的 4 种度量元;性能得分为五折交叉验证实验
结果的均值;依据 RQ1 的结论,对于 BE 缺陷类型,权重比例系数取 20,对于 RME 缺陷类型取 10;依据 RQ1 实
验表现,使用的分类器为 RF.
为了尽可能地确保评价的客观性,选取了 5 种性能度量指标,包括 FPR、FNR、Precision、Recall 和 F1 指
标 ; 选取 了 3 类基 准方法 , 包 括 基 于 传 统 度 量 元的 缺陷 预测方 法、 基于深 度学 习的缺 陷 检 测方法
VulDeePecker [30] 、基于代码自然性的缺陷预测方法 DefectLearner [48] .其中,第 1 类方法使用的度量元为 LOC 和
TSize,使用的分类器为 SVM 和 RF,模型参数与本文方法相同;DefectLearner 使用的度量元为 CE、LOC 和 TSize,
使用的分类器为 RF,其他参数与本文方法相同.
Table 7 Performance comparisons between our CNDePor and other methods
表 7 CNDePor 方法与其他方法的性能对比
评价指标(%)
数据集 方法
FPR FNR Precision Recall F1
SVM 34.5 27.1 43.4 72.9 54.4
RF 10.8 69.3 50.8 30.7 38.3
BE-ALL VulDeePecker [30] 2.9 18.0 91.7 82.0 86.6
DefectLearner [48] 10.2 36.5 69.3 63.5 66.3
CNDePor 7.4 11.2 81.3 88.8 84.9
SVM 17.3 14.6 71.9 85.4 78.1
RF 9.6 20.6 81.1 79.4 80.2
RME-ALL VulDeePecker [30] 2.8 4.7 94.6 95.3 95.0
DefectLearner [48] 4.6 15.1 90.5 84.9 87.6
CNDePor 6.2 8.7 88.5 91.3 89.9
由表 7 给出的实验结果可以看出,在两类缺陷数据集上,本文的 CNDePor 方法得到的查准率分别为 81.3%
和 88.5%,查全率分别为 88.8%和 91.3%,F1 指标分别为 84.9%和 89.9%,说明本文方法可以有效识别两类缺陷.
在对比基于传统度量元的缺陷预测方法方面,本文选取了两种广泛使用的分类器:SVM 和 RF.与 CNDePor
方法不同,它们仅基于传统度量元进行预测,没有使用代码自然性特征.相较而言,本文的 CNDePor 方法性能优
势明显,其中,F1 指标在 BE-ALL 和 RME-ALL 数据集上分别提升 30.5%~46.6%和 9.7%~11.8%.
在对比基于深度学习的方法方面,本文选取了实验数据集贡献者的方法 VulDeePecker.该方法基于 Bi-