Page 140 - 《软件学报》2020年第11期
P. 140

3456                                Journal of Software  软件学报 Vol.31, No.11, November 2020

                 Rank Test 结果为 Better 表明定位效果较好,Similar 表明定位效果相似,Worse 表明定位效果较差.
                    具体来说,给定一个程序,错误定位方法 FL1 在该程序所有错误版本的 Exam 值为 G(y);FL1(TF-IDF)在该程
                 序所有错误版本的 Exam 值为 F(x).在给定的显著性水平ϕ下(本文设定ϕ值为 0.05),可以使用 2-tailed 的 p 值和
                 1-tailed 的 p 值来得出结论.在 2-tailed 检验中,如果 p≥ϕ,那么接受原假设 H0:FL1(TF-IDF)在所有错误版本的
                 Exam 值与 FL1 不存在显著差异,从而 FL1(TF-IDF)和 FL1 具有相似的定位效能(用 Similar 表示);否则,备择假设
                 H1:FL1(TF-IDF)和 FL1 存在显著差异会被接受.对于 1-tailed 的 p 值,有两种情况:1-tailed(right)和 1-tailed(left).
                 在 1-tailed(right)检验中,如果 p≥ϕ,那么接受原假设 H0:FL1(TF-IDF)在所有错误版本的 Exam 值不趋于显著地
                 大于 FL1;否则接受假设 H1:FL1(TF-IDF)在所有错误版本的 Exam 值趋于显著地大于 FL1,从而 FL1(TF-IDF)的
                 定位效能低于 FL1(用 Worse 表示).在 1-tailed(left)检验中,如果 p≥ϕ,那么假设 H0:FL1(TF-IDF)在所有错误版本
                 的 Exam 值不趋于显著地小于 FL1 会被接受;否则,备择假设 H1:FL1(TF-IDF)在所有错误版本的 Exam 值趋于显
                 著地小于 FL1,即 FL1(TF-IDF)的定位效能高于 FL1(用 Better 表示).
                    表 4 展示了在真实错误(real fault)、植入错误(seeded fault)和所有错误(total)这 3 种情况下的 Wilcoxon-
                 signed-rank Test 统计结果,给出具体的 p 值和对比结果.以 ER1′(TF-IDF)和 ER1′在真实错误上的对比为例,其
                 2-tailed、1-tailed(right)和 1-tailed(left)的 p 值分别为 6.55e−03,8.14e−01 和 4.32e−02.这表明在真实错误上,运用
                 TF-IDF 方法后,ER1′的 Exam 值减小了.因此在真实错误上,基于 TF-IDF 的定位方法改进了 ER1′的定位效果,结
                 果为 Better.如表 4 所示,与 8 种定位方法(即 ER1′、GP02、GP03、GP19、ER5、Dstar、Ochiai 和 Tarantula)的
                 对比结果可以看出,在真实错误、植入错误和所有错误这 3 种情况上,基于 TF-IDF 的方法均取得了 7 个 Better
                 和 1 个 Similar 的结果.同时可以看出,基于 TF-IDF 方法在不同的 SFL 公式中有不同的效能.究其原因是,不同的
                 SFL 公式对 4 个参数 a np 、a nf 、a ep 、a ef 计算时的侧重不同,导致基于 TF-IDF 方法在对这 4 个参数重新计算后
                 的侧重也存在不同,从而在不同的 SFL 公式上得到了不同的效能提升结果.
                                  Table 4    Wilcoxon-signed-rank Test of the effectiveness comparison
                                        表 4   基于 Wilcoxon-signed-rank Test 的有效性对比
                                     Comparison        2-tailed  1-tailed(right)  1-tailed(left)  Conclusion
                               ER1′(TF-IDF)   Real faults   6.55e−03  8.14e−01  4.32e−02   Better
                                   vs.      Seeded faults  1.09e−02  9.69e−01  9.07e−04   Better
                                  ER1′         Total   1.66e−02  9.18e−01  8.37e−03   Better
                               GP02(TF-IDF)   Real faults   9.44e−01  4.86e−01  5.42e−01   Similar
                                   vs.      Seeded faults  5.00e−03  7.91e−01  2.95e−02   Better
                                  GP02         Total   9.90e−03  5.07e−01  4.97e−02   Better
                               GP03(TF-IDF)   Real faults   3.17e−02  9.77e−01  4.03e−02   Better
                                   vs.      Seeded faults  2.47e−02  9.85e−01  4.16e−03   Better
                                  GP03         Total   2.88e−02  8.57e−01  1.45e−02   Better
                               GP19(TF-IDF)   Real faults   5.11e−03  7.91e−01  2.34e−02   Better
                                   vs.      Seeded faults  7.47e−03  9.70e−01  4.67e−03   Better
                                  GP19         Total   1.40e−02  9.32e−01  7.14e−03   Better
                                ER5(TF-IDF)   Real faults   2.47e−02  9.85e−01  4.16e−03   Better
                                   vs.      Seeded faults  1.80e−02  9.63e−01  1.86e−02   Better
                                   ER5         Total   1.95e−02  9.90e−01  9.87e−03   Better
                               Dstar(TF-IDF)   Real faults   3.45e−02  8.60e−01  2.09e−02   Better
                                   vs.      Seeded faults  1.09e−02  9.69e−01  9.07e−02   Better
                                  Dstar        Total   1.88e−02  9.91e−01  9.54e−03   Better
                               Ochiai(TF-IDF)   Real faults   6.55e−03  8.14e−01  5.00e−03   Better
                                   vs.      Seeded faults  9.44e−01  4.86e−01  5.42e−01   Similar
                                  Ochiai       Total   9.75e−01  5.00e−01  5.25e−01   Similar
                              Tarantula(TF-IDF)   Real faults   6.55e−03  8.14e−01  5.00e−03   Better
                                   vs.      Seeded faults  2.47e−02  9.85e−01  4.16e−03   Better
                                 Tarantula     Total   4.68e−03  9.98e−01  2.45e−03   Better

                    由以上实验结果可以看出,基于 TF-IDF 的定位方法提升了程序缺陷的定位效能.基于二进制状态信息仅能
                 表示执行和未执行两种状态,无法提供更多的语义信息.与二进制状态信息相比,基于 TF-IDF 的定位方法利用
   135   136   137   138   139   140   141   142   143   144   145