论文部分内容阅读
测试和调试是保证软件质量的重要方法,目前,许多重要的测试和调试方法均以执行距离的度量为基础,然而现有的基于执行距离度量的调试和回归测试研究尚存在许多问题。在调试方面,基于最近似执行比较的错误定位方法(NN方法)是一种重要的基于执行距离度量的调试方法,它选择与失败执行最接近的成功执行进行差异比较以定位错误。但该方法有时存在定位效果非常差甚至无法定位错误的问题。通过分析,发现错误定位效果与不仅与差异量有关,还跟差异与bug的距离有关。NN方法只考虑了差异量因素,忽略了差异与bug的距离因素,很容易出现差异量少却定位效果不佳的情况。针对这种问题,我们综合考虑差异量及差异与bug距离两个因素,提出了差异分散化的错误定位方法(DD方法)。对差异分散化方法进行的实验分析表明,它的错误定位效果优于NN方法。在回归测试方面,基于执行聚类的回归测试优化方法将执行依据接近程度聚类为若干簇,并在此基础上针对性地制定选择策略,从而优化回归测试用例集。但该类方法目前只考虑了基于0-1覆盖频谱上执行距离度量的聚类优化,其它执行距离度量下是否也能取得相似或更好的结果,以及相比随机聚类效果是否有明显提高等问题尚未有清晰的答案。为此,本文系统分析了基于执行聚类的回归测试优化方法在多种执行距离,以及随机聚类下的优化效果。通过实验分析发现,基于执行距离度量下的优化效果较随机聚类提高明显且基本相似,但是其中Ulam编辑距离相对其他执行距离度量下效果较差。最后,本文基于LLVM、CodeSurfer、Weka等工具实现了支持我们实验工作的测试系统,该系统可为基于执行距离度量的软件调试和测试方法研究提供有力支持。