论文部分内容阅读
结构测试有利于评价软件测试的充分性。然而,测试的不充分是很常见的,必须选择更多的测试用例去改善测试。每个新选择的测试用例需要执行特定的路径。首先面临的问题就是如何确定一条可达的路径,即:在某一输入下路径是可执行的。在结构测试领域中,不可达路径分析越来越突出地显示出重要的意义。尽早的发现路径测试中的不可达路径,可以有效的减少测试过程中所耗费的人力物力。而目前现有的不可达路径识别方法存在着许多弊端。本文首先分别综述了结构测试的方法及已有不可达路径的识别方法,并分析了已有不可达路径识别方法中存在的不足。本文给出了一个基于程序控制流程图的识别不可达路径的方法,并将识别到的不可达路径信息有效的应用于结构测试中,它能够帮助结构测试中的路径测试和数据流测试提高准确性。本文的主要贡献如下:1.给出了一种程序中识别不可达路径的方法。本文给出了一种利用数据流分析信息识别不可达路径的方法。该方法基于程序控制流程图,通过选取适当的条件谓词提高了识别分支的覆盖率;并利用数据流分析技术对控制流程图中每个基本块的定值/引用到达信息进行分析,降低了相关性分析的复杂度。最后利用分支相关性的结果,制定了从路径集合中识别不可达路径的规则。2、给出了基于分支相关影响的相对基本路径集的生成方法。该方法在路径集合生成过程中考虑到分支相关的影响,生成的相对基本路径集合中路径全部可达,并且该集合最大程度的提高了路径的覆盖率,为路径测试提供了便利。相对基本路径集是程序的部分路径集合。它有以下特点:(1)每一条路径都是一条独立路径,即每一条路径中都包含至少一条不包含在其它路径中的边。(2)程序中所有可达的边都被访问。该相对基本路径集合比直接从基本路径集合中去除不可达路径方法所生成的路径集合,对于程序控制流图中的可达边有了较高的覆盖率。3、给出了在不可达路径影响下的数据流测试方法。本文扩展[5]中的数据流分析方法,将不可达路径的影响加入到数据流分析中精确数据流分析,从而能够提高软件故障检测的准确率。同时给出了伪元素的定义和伪交集,伪并集、伪差集的运算方法,该方法能够有效的区分软件故障是否由不可达路径的影响而产生,并能有效的对故障进行定位。这些信息为程序人员及测试人员改善程序性能提供了更多的依据。在开放源码编译器ORC(Open Resource Compiler)中实现了上述的方法,并以SPEC2000基准程序作为待测对象,取得了有效的实验结果。