Page 257 - 《软件学报》2021年第7期
P. 257
姜淑娟 等:基于路径分析和信息熵的错误定位方法 2175
使用错误定位代价 Expense 指标分析可知:针对第 1 组对比方法 Tarantula、Ochiai 和 Naish1,FLPI 方法在
17 个基准程序上错误定位代价分别平均降低了 1.87%、1.43%和 1.73%,其中,在 schedule2 和 tcas 两个程序上
最为明显,平均降低了 6.21%和 4.75%;与 Dstar、Naish2 和 Russel & Rao 相比,FLPI 方法错误定位代价分别降低
了 1.29%、1.47%和 1.61%,其中,在 schedule 和 print_tokens 两个子程序上最为明显,平均降低了 6.31%和 4.36%;
与方法 SIQ 相比,FLPI 错误定位代价最多降低了 2.57%.
Table 6 Expense comparison between FLPI and other methods (%)
表 6 FLPI 与其他方法错误定位代价的比较(%)
程序 Tarantula Ochiai Naish1 Dstar Naish2 R&R SIQ FLPI
print_tokens 27.22 26.16 32.04 26.34 29.73 29.95 25.59 24.32
print_tokens2 5.90 4.64 6.19 4.77 3.86 4.40 4.29 3.59
replace 9.19 8.99 9.26 9.53 10.22 10.68 8.95 8.55
schedule 18.93 19.22 25.92 21.65 23.59 24.08 18.30 16.80
schedule2 42.78 41.01 36.81 39.70 37.42 34.38 36.55 33.98
tcas 42.32 41.90 39.48 39.34 39.48 39.23 37.71 36.48
totinfo 11.95 10.36 8.06 9.46 8.34 11.14 7.97 7.70
NanoXML v 1 6.08 5.82 6.19 5.99 6.21 6.79 5.65 5.56
NanoXML v 2 4.01 3.78 4.29 3.76 4.37 3.95 3.78 3.75
3.50 3.18 2.56 2.65 2.64 2.62 2.56 2.47
NanoXML v 3
NanoXML v 5 4.97 4.70 4.39 4.49 4.69 5.07 4.38 4.34
2.53 2.42 2.32 2.33 2.38 2.45 2.23 2.14
XML—sec v 1
XML—sec v 2 2.21 2.14 2.13 2.08 2.20 2.38 2.02 1.87
XML—sec v 3 3.87 3.81 3.77 3.87 3.89 4.03 3.42 3.23
JFreeChart 2.22 2.18 2.15 2.13 2.17 2.19 2.00 1.84
Joda-Time 3.81 3.70 3.66 3.67 3.64 3.77 3.42 3.16
Mockito 1.59 1.57 1.48 1.51 1.47 1.61 1.37 1.21
平均定位代价 11.36 10.92 11.22 10.78 10.96 11.10 10.01 9.47
为了更加直观地对比 FLPI 和其他方法的定位效果,使用 EXAM 指标评估不同方法的效率,首先分析 FLPI
和其他方法在 Siemens Suite 程序集上的对比结果,所得结果如图 4 所示.其中,横坐标表示代码检查百分比,纵坐
标表示在代码检查范围内定位到程序错误的百分比.
观察图 4 可知,在 Siemens Suite 程序集上,本文提出的 FLPI 方法在检查相同比例代码时可以定位到更多的
错误,而且至多只需要检查 70%多的代码语句
就可以定位到全部的错误.针对第 1 组和第 2 组
对比对象 Tarantula、Ochiai 和 Naish2 等,EXAM
分数有了很大的提高,在代码检查率为 10%时
平均提高了 15%,而当检查量超过 40%时,提高
比例尤为明显;对比 SIQ 方法,FLPI 也有一定的
提高.
各取 3 组对比对象中的一种方法,使用
EXAM 指标在 Siemens Suite 中单个程序上开
展实验研究,所得结果如图 5 所示.
观察图 5 可知,在单个程序上不同错误定
位方法也有一定的差异,对于 print_tokens2 和
replace,所有方法的定位效果都比较好,FLPI 在
检查相同规模的代码量时可以定位到更多的错 Fig.4 EXAM comparison between FLPI and other
误,在 print_tokens、schedule 和 schedule2 程序 methods on Siemens programs
上,FLPI 方法定位效果提高较多,而所有方法在 图 4 在 Siemens 的程序集上 FLPI 与
tcas 程序上定位效果相比其他程序略差一些,主 其他方法检查得分 EXAM 比较
要是因为 tacs 程序错误版本较多而可执行语句较少.