一般情况下,缺陷定位技术的应用前提是必须存在测试预言,以判断测试用例的运行结果是失败或者成功,否则将无法使用。然而,在许多实际情况下,测试预言不存在或者很难定义,这就是著名的"预言家难题"。为了应对"预言家难题",利用蜕变测试,扩充了采用逆向切片基于频谱的缺陷定位技术的方法学,实现了其在无测试预言下的有效应用。基于上述研究,进一步对比了SFL技术中执行切片与逆向切片的缺陷定位能力。实验表明,在有测试预言和无测试预言两种情况下,逆向切片比执行切片具有更强的缺陷定位能力,并且公式GP19和ER1’相比于其他公式,更有可能达到最优结果。
Fault localization techniques generally require a test oracle to determine whether a test case fails or succeeds. Oth- erwise, these techniques are infeasible. As a matter of fact, it is difficult or almost impossible to define a test oracle in many cases. This is the famous oracle problem. To alleviate this problem, this paper utilizes metamorphic testing to successfully extend the meth- odology of spectrum-based fault localization (SFL) using backward slices in the cases where no test oracle exists. Furthermore, this paper compares the localization effectiveness of execution slices with that of backward slices in SFL techniques. The experimental results, in both the cases where there is a test oracle or no test oracle, show that backward slices outperform execution slices in im- proving fault localization effectiveness, and suggest that the formulas GP19 and ERI' have a higher probability of performing better than the other formulas.