当前位置:问答库>论文摘要

题目:基于谓词的统计学缺陷定位算法研究

关键词:统计学缺陷定位;谓词执行信息;自适应;巧合一致性

  摘要

软件已深入到我们日常生活中的每一个角落,但与此同时,软件中的bug(错误)也是无处不在。为了消除程序故障,程序员首先需要定位出缺陷的位置。目前,研究软件缺陷定位的一类重要方法是基于谓词的统计学缺陷定位方法。本文的研究正是基于该类方法展开,主要研究现有算法中存在的两个关键问题。实验研究发现,固定算法中信息利用的强度会造成信息利用不足或过分利用现象的发生,导致现有基于谓词的缺陷定位算法对某些缺陷定位不够准确。为此,我们设计了一种基于谓词执行信息分析的自适应缺陷定位算法,该算法通过分析测试用例运行时谓词的执行情况来动态的为每个谓词选择合适的信息利用强度。实验结果表明,该方法在Siemens和space两个程序包上表现出很好的定位效果以及定位稳定性。此外,我们还发现,现有算法在计算谓词可疑度时采用的距离度量的方式容易受到输入的测试用例集质量的影响。针对测试用例中巧合一致性所带来的干扰,我们提出通过计算程序运行成功与失败时谓词谱交叠的程度来衡量谓词的可疑度。大量实验证明,该方法能取得较好的定位效果,并能在一定程度上克服巧合一致性所带来的不利影响。在第二部分研究内容的基础上,我们又针对巧合一致性进行了更加深入地研究。我们发现,在巧合一致性存在的前提下,不同谓词在成功与失败运行下谓词谱分布交叠的程度存在着差异,成功与失败谓词谱分布之间的距离也会表现出不同。因此,我们引入概率分布判据和类间类内距离判据对缺陷定位算法进行了改进,提出一种面向巧合一致性问题的缺陷定位算法。实验结果表明,该方法的定位效果要明显优于现有的几种典型算法的定位效果。