论文部分内容阅读
本文对基于UML状态图的测试用例自动生成方法进行了比较完整、系统的研究,它是一种针对面向对象软件的类或类簇级测试。下面从几个方面来介绍本文的主要研究内容:
分析了在软件设计过程中进行软件测试的重要性和实现测试过程自动化的必要性,论述了研究基于UML的软件测试自动化的意义和价值。
分析了面向对象软件测试技术的特点,讨论了面向对象软件测试的几种方法,其中包括基于方法序列规范的测试、基于状态的测试、基于类流图的测试和基于UML的测试;介绍了常见的面向对象软件测试的层次划分方法,通常把面向对象软件测试划分为四个层次:方法测试、类测试、类簇测试、系统测试;
分析研究了UML (unified modeling language)状态图的操作语义:根据UML的语义文档,给出描述对象状态机的UML状态图的形式化操作语义,为UML状态图的测试用例生成奠定基础。
研究了将UML状态图转换为EFSM(Extended Finite State Machine)的方法:由于UML状态图中的状态层次和并发结构,使得传统的流分析测试技术不能直接得到应用,这里可以先消除其中的层次和并发,将其转换为EFSM,并根据这种EFSM来分析状态图中的控制流和数据流,然后通过对EFSM进行遍历得到相应的测试序列。
对基于有限状态机的测试方法进行了对比分析,重点讨论了UIO方法的测试覆盖准则和状态不可达问题,并对其提出了改进方法,使产生的测试用例由原来能达到的状态覆盖扩展为状态一转换覆盖,并对状态不可达问题提出了解决方法。实现了一个实验性自动测试工具对该方法进行检验,该工具首先分析Rational Rose的MDL文件,从中提取出具体系统的状态图信息,根据此信息建立图的邻接表;通过对图进行深度和广度优先遍历,生成相应的测试序列,该测试序列能够达到状态--转换覆盖。
在代码实现阶段采用VisualC++6.0作为系统的开发环境。测试工具所分析的状态图借助Case工具Rational Rose2003进行可视化建模。