论文部分内容阅读
错误定位技术因其重要性与困难性已经受到软件工程研究者的广泛关注,许多研究者提出了各种各样的错误定位方法,但都未能很好地解决软件的错误定位问题。针对错误定位,研究人员提出了一系列自动化的错误定位方法。 由于实现容易和操作简单,基于频谱的错误定位是目前得到很大重视的一类自动化的动态错误定位方法:通过运行测试用例得到程序的各条语句被测试用例覆盖到的信息,然后利用覆盖信息计算出程序中每条语句的含错可疑度,并将相关语句按照含错可疑度降序进行排序以便定位错误语句。在实际的错误定位中,当测试用例个数发生变化时,它们对于语句可疑度的贡献是不一样的。针对这一情况,本文分析了在不同条件下测试用例权重对错误定位效果的影响,提出了增大失败测试用例的边际权重的错误定位方法。实验结果表明,相对于其他方法,本文提出的错误定位方法具有很好的效率。 基于频谱的错误定位方法是一种自动化的错误定位方法。但该方法是从微观的角度去进行错误定位。即该方法是从语句的粒度对代码中的错误进行错误定位。但有些错误,不是语句级的错误,而往往是一些程序块的调用错误。也就是一种耦合性的错误。例如,当一个程序块错误地调用了另一个程序块。这就会产生一个错误的结果。如果把该程序的各个模块以及各个模块间的关系用图形表示出来,则可以通过查看模块间的调用关系来发现哪个调用是有错误的。这是一种相对宏观一点的错误定位方法。并且该方法把各个模块以及他们之间的关系用图形表示出来,因此,我们把这种方法称为可视化的错误定位方法。考虑到可视化在评估软件质量中的效果,我们对可视化进行了一系列的研究。本文通过对源代码进行处理而得到对应的UML图,然后通过对UML图进行分析来对程序进行错误定位。 本文的主要工作如下: 1.在错误定位中提出了边际权重的概念。通过西门子程序集作为实验对象,评价了该方法的效果。 2.提出基于UML图的可视化错误定位 3.错误定位工具的设计与实现