摘要
错误定位技术是当前的研究热点.在各种错误定位方法中,基于最接近执行比较的方法(NN方法)[1]从成功测试执行中,选择与已发现失败执行最接近的一个,和失败执行进行比较,从而定位错误.NN方法是一种非常重要的方法,然而,实验中却发现,对于一些程序,选择最接近的成功执行与失败执行进行比较,并不能取得好的错误定位效果.为探明原因,文中首先对基于成功-失败执行比较的错误定位模型进行了研究,指出了NN方法存在上述问题的根本原因是在选择成功执行时只考虑了其与失败执行的差异数量,而忽略了差异与错误的距离这一因素.据此,提出了一种基于差异分散化的错误定位方法,其主要思想是在适当控制差异数量的同时,选择与失败执行差异最分散的成功执行,来进行错误定位.利用分散化使得部分差异能够接近错误.实验表明,该方法错误定位效果优于NN方法,性能更佳.
Fault localization is a very active research area. In all fault localization methods, the Nearest Neighbor based (NN) method selects a successful run that is closest to the failed run to compare and locate the bugs. NN method is very important and is widely used. However, we found that its fault localization effects sometimes significantly degrade even when a nearest successful run is selected. To get the reason, this paper firstly studies the basic model of the execution comparison based fault localization approaches. With the model, we found that a primary cause of NN method's degradation is that it only considers the number of differences between successful runs and failed runs while ignores the distances from the difference points to the bugs. Based on the above finding, we presented a new fault localization method based on a difference dispersion technique. Its key idea is to choose successful runs with dispersed difference points to the failed run to compare and locate the bugs. The dispersion of differences can make some difference points close to the bug and therefore reduce bug localization efforts. We conducted an experimental study on several widely used benchmark programs. The results indicate that our method is both effective and efficient.
出处
《计算机学报》
EI
CSCD
北大核心
2015年第9期1880-1892,共13页
Chinese Journal of Computers
基金
国家自然科学基金(60903026)
南京航空航天大学基本科研业务费(NS2013088
NZ2013306)资助~~
关键词
错误定位
定位模型
分散化
覆盖度
软件测试
fault localization
localization model
disperse
coverage
software test