论文部分内容阅读
在数据流测试技术中,覆盖程序中所有变量的定义-使用路径是衡量数据流测试好坏的重要标准之一。但是,由于变量的定义-使用路径中存在测试用例无法覆盖的路径,而且路径的插桩点过多等问题,降低了数据流测试的效率。
针对定义-使用路径中测试用例无法覆盖路径的问题,采用对定义-使用路径上的定义节点和使用节点的顺序关系进行分析,即是用定义节点与使用节点之间的依赖、支配、蕴含等关系来判断变量的定义-使用路径是否能被测试用例覆盖,从而把定义-使用路径分为能被覆盖的路径、间接被覆盖的路径、不能被覆盖的路径。而针对路径中插桩点过多的问题,则需要找出能被覆盖路径和间接被覆盖路径中的必要分支,即用必要分支来代替定义-使用路径,通过对关键分支的插桩来简化对必要分支的监测。
综合考虑上面两种情形,本文采用一种基于关键分支的数据流分析方法。该方法通过变量的定义和使用节点之间的关系来对程序中的数据流信息进行分类;对变量的定义-使用路径进行分支相关性分析以找出该路径上的必要分支,把必要分支映射到程序中的关键分支上。
通过对实例的分析表明:对数据流信息进行分类,避免了测试的盲目性;用必要分支来近似地表示变量的定义-使用路径,降低了数据流测试的复杂度;对关键分支的监测减少了插桩点和测试人员收集测试结果的时间,提高测试效率。因此基于关键分支的数据流测试方法对数据流的覆盖测试,分支覆盖测试和语句覆盖测试等方面都有很好的借鉴作用。