论文部分内容阅读
软件测试作为保证软件质量,提高软件可靠性的重要手段,在软件开发中起着不可替代的作用,其关键与核心是测试数据生成。本文较全面系统地阐述了软件测试领域的主要研究方向和迄今为止有代表性的研究成果,提出了一种基于规范和基于程序域分析的软件测试方法。从软件规范说明和程序实现两方面,对软件测试数据的生成方法进行了系统的研究和具体的实现。实验表明:基于本文所提方法产生的测试用例,可以有效地提高测试效率。 本文创新性的工作主要有以下几方面: 1).提出了一种基于数据流分析的程序运行域自动确定方法,并开发了一个C程序运行域自动确定系统ADSOD。程序运行域的确定对于测试数据的选取,尤其对边界值分析,有着直接的指导作用,是本文研究工作的基础和重要的组成部分。其关键是如何实现特殊情形下输入变量的取值分析。该系统的实现为后续功能域和运行域的重合验证奠定了基础。 2).提出了一种基于规范和基于程序域分析的软件测试方法。分析了边界测试数据的选取原则,证明了功能域和运行域重合的充分必要条件,并探讨了基于功能域和运行域重合验证的测试数据生成方法。 3).提出了一种深度优先搜索、向后回溯的程序路径确定方法,可以构造出程序的所有主要路径。程序路径确定是一件非常困难的事情。该方法的实现为基于路径的测试数据自动生成提供了可能。 4).提出了一种基于谓词切片的字符串测试数据自动生成方法。针对字符串谓词,讨论了选定路径上给定谓词的谓词切片的动态生成算法,以及基于谓词切片的字符串谓词边界ON-OFF测试点的自动生成方法,并定义了字符串间的距离。实验表明:基于该方法生成的测试数据,可有效地检测由于谓词边界偏移而导致的域差错。