论文部分内容阅读
软件测试是保证软件质量,提高软件可靠性的重要手段。随着面向对象开发技术的飞跃发展,面向对象的特征使得传统的软件测试方法已不能满足需要,而相较于面向对象的分析、设计和编程语言的研究,面向对象的测试技术尚显薄弱。因此,面向对象软件测试技术的研究与应用已成为当务之急。本文以面向对象的类测试方法作为研究对象,对软件测试的方法做了详细的归纳和总结。在上述基础上,本文对面向对象软件中类的服务测试技术进行了深入研究。基于类的服务测试有两部分组成:功能测试和结构测试。功能测试和传统的测试方法一样,主要使用等价类划分法、边界值分析法、因果图法等设计并优化测试用例,使得通过较少的测试用例达到较好的测试效果。结构测试主要是基本路径测试,其中路径覆盖测试数据的生成作为本文的研究重点。本文采用遗传算法为核心算法,对遗传算法在软件测试环境下的优缺点进行了分析,指出了遗传算法容易产生早熟收敛、局部寻优能力差等缺陷和不足,并研究了遗传算法中的参数编码,及其选择、交叉、变异等操作的实现。然后本文设计了一个基于遗传算法的路径覆盖测试数据自动生成工具(Path-wise Test Data Auto-Generator,简称PTDAG)。同时,重点阐述了系统实现过程中需要解决的一些关键技术,例如:对测试过程中必需的源程序的静态分析、被测源程序的插装技术以及如何定义驱动程序的编写规则等。最后本论文用具体程序实例对其进行了工具演示及结果数据分析。演示结果表明该工具在源代码进行插装后,通过模拟对方法的实际调用来产生一组测试数据,完成一组目标路径的测试数据的自动生成,还可以针对某一条具体的目标路径,得到一个相应的优化测试数据。同时,记录下哪些路径被覆盖,而哪些路径未被覆盖,当不能完全覆盖时会给出目前所找到的最好解。利用PTDAG自动生成测试数据对实现软件测试过程自动化创造了条件。