Page 294 - 《软件学报》2021年第7期
P. 294
2212 Journal of Software 软件学报 Vol.32, No.7, July 2021
缺陷度量标准,5 个熵变化度量标准,17 个源代码熵度量标准和 17 个源代码波动度量标准.
Table 1 Experimental datasets
表 1 实验数据集
分组 项目 样本数量 度量数量 缺陷率(%)
CM1 327 12.84
MW1 253 10.67
NASA PC1 705 37 8.65
PC3 1 077 12.44
PC4 1 458 12.21
AR1 121 7.44
AR3 63 12.70
SOFTLAB AR4 107 29 18.69
AR5 36 22.22
AR6 101 14.85
Apache 194 50.52
ReLink Safe 56 26 39.81
ZXing 399 29.57
EQ 324 39.81
JDT 997 20.66
AEEEM LC 691 61 9.26
ML 1 862 13.16
PDE 1 497 13.96
4.2 评价指标及基准模型
在本文中,我们采用常用的评价指标 AUC 来评估缺陷预测模型的性能,该评价指标也广泛用于之前的研究
工作 [10,16,17] .AUC 是受视工作特性曲线下方的面积,该曲线在二维空间中绘制,以假阳性率作为 x 坐标,真实阳性
率(召回率)作为 y 坐标.AUC 由于不受类别不平衡的影响并且独立于预测阈值,因此被广泛使用,以用于评估不
同模型的性能.
[8]
我们将所提方法 T-VAE 与项目间缺陷预测(WPDP)和跨项目缺陷预测(CPDP)方法(包括 TCA+ 、VCB-
SVM [27] 和 ManuDown(M-Down) [28] 以及异构缺陷预测方法 CCA+ [12] 、HDP-KS [10] 、CTKCCA [16] 和 SNN [19] )进行
了比较.
通过与项目间缺陷预测和跨项目缺陷预测方法进行比较可以提供异构缺陷预测方法(HDP)在实践中有效
性的直接证据.其中,我们与基于逻辑回归的项目间缺陷预测方法(WPDP-LR)及基于神经网络的项目间缺陷预
测方法(WPDP-NET)进行了比较.同时,我们还与方法 TCA+以及 VCB-SVM 进行了比较,它们都是传统跨项目缺
陷预测中的方法,且都要求源项目和目标项目的实例具有完全相同的度量.M-Down 是一种基于排序的无监督
预测模型,不需要任何标记信息甚至源项目.
另外,我们还与异构缺陷预测方法进行了比较:包括 CCA+、HDP-KS、CTKCCA 以及 SNN 这 4 种模型.这
些方法在之前工作中有很好的预测性能.其中,CCA+使用 CCA 方法学习特征的映射,HDP-KS 采用了特征分布
匹配策略,CTKCCA 主要集中于解决线性不可分以及类别不平衡问题,SNN 是一种基于最大均值差异的异构缺
陷预测方法,同时也是利用神经网络模型来学习和预测.
基于上述预测设置和评价指标,我们使用 Wilcoxon 符号秩检验来验证两个模型在预测性能上是否有显著
差异,当 p 值小于 0.05 时,就认为模型间的差异是不可忽视的.此外,我们同时使用 Cliff’s 来检查不同模型预测
性能的差异在实际应用中是否重要 [29] .当 | | ≤ 0.147 时 ,认为是可以忽略的(N);当 0.147 | | ≤ 0.33 时 ,认为是小
的(S);当 0.33 | | ≤ 0.474 时 ,认为是中等(M);当 | | 0.474 时,认为是大的(L).如果一个模型取得正并且不可忽
视的值( | | 0.147 ),则表示该模型相对于另一个模型更具有使用价值.
4.3 实验方法
我们使用来自 NASA、SOFTLAB、ReLink 和 AEEEM 的 18 个项目作为实验数据集,并执行异构跨项目缺
陷预测.我们从 18 个项目中选择一个项目作为目标,然后依次使用其他组中的每个项目作为源项目.例如,当表 1
中的 NASA 组中的 CM1 充当目标时,存在 13(185)个跨项目预测组合.由于我们主要关注具有异构度量标准集