论文部分内容阅读
在软件测试中,测试数据生成是其核心与关键。实际测试活动中,往往要求能达到一定程度的路径覆盖。因此,探讨一种辅助面向路径测试数据自动生成的有效方法,具有十分重要的意义。程序切片技术是一种分析和理解程序的技术,具有可以简化问题,缩小目标范围的特点,在软件维护、程序调试、测试、代码理解等诸多领域有着广泛的应用。将程序切片技术应用到软件测试数据生成中,重点关注程序中指定路径上兴趣点相关的那部分语句,可以有效地提高基于路径的测试数据生成效率。
本文全面阐述了程序切片技术及其目前的研究成果,针对已有动态切片算法存在的弊端,提出了一种更加精确的基于前向分析的动态切片算法。该方法利用前向分析的思想,在执行完一条语句后,立即计算出当前兴趣点处变量的程序切片,节省了记录程序执行轨迹和构造程序依赖图所需的庞大的时间和空间开销;而且标记复杂块的出入口,以判断跳离复杂块时变量是否被修改;对于同一变量的多个定义,选取最近被定义的语句,从而大大提高了动态切片的精确度,实现起来也比较简单,方便。
实验表明,这种切片算法是行之有效的。此外,本文将动态程序切片技术应用于软件测试数据的自动生成中,通过计算程序中关于分支节点处变量的动态切片,获得兴趣点处变量的当前值,并利用平衡力方法和分支函数极小化技术,指导程序输入的调整,减少了生成测试数据的开销和复杂性,有效地提高了测试数据的生成效率。初步实例表明,这种基于动态程序切片技术的软件测试数据生成方法是切实可行的。