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 程序错误版本较多而可执行语句较少.
   252   253   254   255   256   257   258   259   260   261   262