摘要

针对基于频谱的软件故障定位技术(spectrum based faultlocalization,SFL)准确性受到不同粒度级别(例如语句、方法、基本块)上使用程序谱的影响,提出一种利用动态程序失效执行块(dynamic failure execution block,DFEB)的故障定位新方法。首先,进一步探讨规范粒度与故障定位精度之间的相关性。然后,引入一种新的程序规范粒度——动态失效执行块(DFEB),以提高特定SFL技术的诊断精度。最后,通过对8种传递的SFL技术和11个著名的基准程序(包括Siemens suite、space、gzip、grep和sed)进行了详细的实验测试。实验结果表明,与这些主题SFL方法相比,新方法在大多数情况下更有效。