论文部分内容阅读
软件测试过程可以分成三个部分:测试用例(数据)生成,测试执行和测试结果评价。其中,测试用例生成是软件测试过程中最重要的组成部分。
目前,面向对象技术已经被广泛地应用于软件开发中。面向对象的特性使得传统的软件测试技术已不再适用。在传统的软件测试过程中,测试用例往往从需求或者代码中得到,而设计几乎被忽略了。基于设计的测试用例生成需要形式化的或者半形式化的规格说明书。作为一个通用的建模语言,UML已被学术界和工业界广泛应用于描述分析和设计规格说明书。UML模型视图的类图、时序图、协作图、状态图和活动图等体系结构图,很好的描述了面向对象软件的结构和行为,因此UML模型自然地成为了面向对象软件测试过程中生成测试用例的一种有效选择。本文在总结前人研究的基础上,提出了一个从UML模型视图中的类图、时序图、写作图、状态图和活动图中获取测试用例的方法。测试用例将分别从类图中的类的属性和方法、类的层次结构和关联和约束,时序图中的消息和消息转换时间约束,协作图中的消息、链接上的构造类型、参数和顺序编号,状态图中的转换(转换路径)以及活动图中的转换(基本路径)中产生。上述方法完全基于UML,并能够综合利用多个UML模型视图。另外,该方法生成较少却更有效的测试用例,并且便于实现自动化。
在此研究的基础上,本文设计了一个测试用例驱动的面向对象软件自动化测试框架(简称为TCDA)。TCDA使用UML作为形式化的分析和设计规格说明书,从UML的体系结构视图中自动获取测试用例,并以XML的形式保存这些测试用例。TCDA可以根据具体编程语言,将测试用例翻译成由一系列源文件组成的测试脚本。测试执行过程中,测试脚本首先会被编译和链接,生成可执行文件。接着这些可执行文件将被运行,同时测试结果将被记录和分析,并最终生成一个结果分析报告。TCDA的最大优点是能够从设计(UML视图)中自动地获取测试用例,而不是从源代码。TCDA的原型系统使用Java实现。该系统包括测试配置、测试用例生成、测试脚本生成、测试执行和结果分析五个模块,分别支持以上描述的过程。