摘要
发现软件不能正常运行后,如何定位错误代码在程序中的位置是软件开发一个众所周知的难点.最近许多软件自动调试技术通过分析成功和失败测试用例的覆盖信息辅助程序员定位错误代码,但这些技术的准确率会受到偶然性成功测试用例的影响.偶然性成功测试用例执行了错误代码,但却没有引发失败的测试结果.研究表明这种测试用例在实际测试中广泛存在,而它们的存在会显著降低错误定位的准确率.针对此问题,文中提出一种称为Muffler的技术.Muffler使用程序变异分析来修正错误代码定位结果,以提高定位的准确率.文中利用8个在错误代码定位研究领域广泛使用的基准程序验证了Muffler的有效性.实验结果表明,与传统错误代码定位技术相比,Muffler能减少程序员50.26%的错误定位代价.
Recent fault localization techniques leverage program coverage of both passed test runs and failed test runs to reduce the high cost of debugging. The effectiveness of such techniques can be adversely affected by coincidental correctness, which occurs in a passed test run when a fault has been executed but no failure is detected. Studies have shown that coincidental correctness is a com- mon phenomenon and its occurrence can significantly reduce the effectiveness of fault localization. In this paper, a fault localization technique named Muffler is proposed, which uses mutation analysis to address this problem and improve fault localization. Muffler systematically mutates statements in a faulty program and estimates their likelihood of being faulty based on both coverage and how muta tion affects the outcome of passed test cases. Experiments on eight benchmark programs widely used in fault localization are conducted to evaluate our method. Results indicate that Muffler can help programmers locate faults effectively with a reduction of 50.26 ~ in code examination effort.
出处
《计算机学报》
EI
CSCD
北大核心
2013年第11期2236-2244,共9页
Chinese Journal of Computers
基金
国家自然科学基金(6103027)
中山大学中央高校基本科研业务费专项资金(10LGZD05,1LGPY39)
香港研究资助局项目(61210)
国家科技重大专项经费(2012ZX01039-004)资助~~
关键词
软件调试
错误定位
程序变异分析
软件工程
software debugging
fault localization
program mutation analysis
software engineering