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-
   313   314   315   316   317   318   319   320   321   322   323