UML软件工程组织

一个基于UML协作图的集成测试用例生成方法(四)
王林章 来源:中国软件行业协会
4、相关工作
尽管UML在工业界和研究领域用得相当广泛,关于UML生成测试的研究相对较少。一般测试生成都是将UML模型图转换到一个现成工具能够处理的中间的形式化描述,从而可以处理UML规约。基于UML分析、设计模型获取系统的相关信息生成各个阶段的测试用例的研究近年来有不少成果,从设计阶段的模型图生成集成测试用例的研究较少,[13]提出一个新的基于UML的测试模型生成集成测试的测试用例的方法,该方法首先分析软件系统的顺序图和协作图,提取组件间的事件流,根据组件之间的消息转移将顺序图和协作图划分为一组原子系统功能(ASF)单元,以每个ASF为一个节点、消息流为边构造测试模型,使用面向对象的集成测试方法在测试模型上生成测试用例。
[12]提出基于UML设计规约生成集成测试用例的方法,用UML状态机图建立软件动态行为的模型,组件之间的交互用图上注解表示,将设计规约模型转化为与集成系统的动态行为相应的全局FSM,在FSM上基于一定的覆盖准则使用常规的等价类划分方法生成可用于单元和集成测试的测试用例。[14]提出一种不需要其他形式化知识、只在UML框架内完成测试用例生成的UIT方法,选择实现和执行每个用例图描述的功能的相应顺序图、协作图以及类图,分析图中元素的语义,识别出作为测试单元的参与交互的对象和与其相关的消息的等价类,定义测试规约,从图中找到消息顺序,使用传统的Category Partition Method分析消息顺序,生成最终的测试用例。[15]分析了UML规约级和实例级协作图中所能表示的信息,将信息进行分类,有些信息可以用于对最终程序的静态检查,有些信息可用于动态测试;并设计了一个根据协作图中信息对相应生成的程序进行插装的算法,实现对测试满足测试准则的程度的度量,但生成测试用例的方法还没有给出。[16] 提出了一个基于UML顺序图设计的面向对象的软件的自动测试的概念和相应的实现工具SeDiTeC。该方法提出一个可测试的顺序图的规则,凡是满足可测试性需求的软件系统的顺序图设计模型都可以作为测试规约,并介绍了从一个顺序图中生成测试用例的方法,在SeDiTeC中实现了完整的测试过程。
本文提出的从UML设计模型图(协作图、类图)生成集成测试用例的方法,可以对表示复杂场景的协作图进行处理,与上述方法是有一定区别,也是互补的。
5、总结和将来的工作
本文提出了一个基于UML协作图,采用协作集成测试模式生成集成测试用例的方法,用基于线程执行的方法识别协作图中的场景路径,用控制流和数据流方法遍历场景路径获取交互中的参数变量和方法调用序列,最后使用范畴-划分方法找到场景路径上的变量、方法、输入、输出、环境条件的合理组合作为覆盖该场景路径的测试用例;该方法的特点是:1、集合白盒方法和黑盒方法对协作图描述的灰盒行为进行测试;2、完全基于UML;3、生成较少的测试用例;4、便于实现自动化。
对基于UML生成测试用例的研究还存在许多不足。基于设计描述的形式化的测试准则相对还较少,基于UML模型图生成测试用例的方法也在不停的研究与发展中,目前对UML模型图作进一步精化或扩展其语义后,使用常规方法进行测试用例生成的情况较多,直接使用UML模型图提供的信息的方法较少;把单个模型图作为研究对象的较多,多个模型为同一测试用例生成提供信息的研究较少;针对测试过程中特定级别的测试(类级测试、集成测试)生成测试用例的方法较多,同一模型图为多个级别测试生成测试用例的研究较少;在具体的方法研究中,假设的前提和约束太多,还不能够达到实用的程度;对方法提供自动支持的工具大多是实验室原型,还不能应用到工业界;可应用的领域还有许多局限;缺少整体的、系统的解决方法,还没有能够把待测试系统的所有能够为测试用例生成提供信息的模型图综合利用,形成一个系统的测试用例生成方法,这也正是我们将来的研究方向。
我们将来的研究工作主要有几个目标:第一,提出一种与面向对象软件开发过程集成的测试过程,测试用例应以增量、系统的、与项目成本和进度相适应的可管理的数目的方法产生,利用业务模型生成用户验收测试的测试用例,利用UML分析模型生成系统测试的测试用例,利用UML设计模型生成集成测试的测试用例,利用实现模型生成单元测试的测试用例,能够合理计划测试资源,并能够对软件开发过程起到过程改进的作用;第二,针对UML单个模型图,研究其在为不同层次测试生成测试用例的方法,提出相应可行的测试准则和评估方法,尽量能够直接使用UML模型文档;第三,针对某一层次测试的测试用例生成时,研究综合利用待测试系统的各种模型图生成该测试层次的测试用例的方法;第四,为上述方法提供自动的工具支持,并希望能够与主流建模工具、测试工具集成。

参考文献:
[1]Imran Bashir, Amrit L. Goel, Testing Object-oriented Software: Life Cycle Solution[M],Springer-Verlag New York, Inc 1999
[2]David C.Kung, Pei Hsia, Jerry Gao, Testing Object-oriented Software[C], IEEE Computer Society,1999
[3] Beizer. Black-box Testing:Techniques for functional testing of software and systems[M], John Wiley&Sons,Inc, New York 1995
[4]Paul C. Jorgrnsen, Software Testing: A Craftsman’s Approach [M], CRC Press,Inc, 1995
[5]UML Specification 1.5[S], available at http://www.omg.org/uml
[6]Grade Booch, James Rumbaugh, Ivar Jacobson著 邵维忠等译  UML 用户指南[M], 机械工业出版社,Addison-Wesley 2001
[7]Grade Booch, James Rumbaugh, Ivar Jacobson著,姚淑珍,唐发根等译,UML 参考手册[M],机械工业出版社,Addison-Wesley 2001
[8]Grade Booch, James Rumbaugh, Ivar Jacobson著,周伯生,冯学民,樊东平 译,统一的软件开发过程[M], 机械工业出版社,Addison-Wesley 2001
[9]Robert V. Binder著 华庆一 王斌君 陈莉 译 面向对象系统的测试[M], 人民邮电出版社2001
[10]Philippe Kruchten, The Rational Unified Process –An Introduction[M], 2nd edition, Addison-Wesley, Reading, MA, 2000
[11]A. J. Offutt and A. Abdurazik, “Generating Tests from UML specifications,”[C] Proc. 2nd International Conference on the Unified Modeling Language (UML99), Fort Collins, CO, pp. 416-429, October, 1999. 
[12]Hartmann, J., Imoberdof, C., Meisenger, M., UML-Based Integration Testing, [C]in ISSTA 2000 conference proceeding, Portland, Oregon, 22-25 August 2000, pp. 60-70.
[13] Byoungju Choi, Hoijin Yoon, Jin-Ok Jeon, A UML-based Test Model for Component Integration Test,[C] Workshop on Software Architecture and Component, Japan, pp63-70, 1999.12
[14]Basanieri, F., Bertolino, A.: A Practical  Approach  to UML-based  Derivation  of Integration Tests.[C] Proceeding of QWE2000, Bruxelles, November 20-24, 3T.
[15]A. J. Offutt and A. Abdurazik, “Using UML Collaboration Diagrams for Static Checking and Test Generation,”[C] Proc. 3rd International Conference on the Unified Modeling Language (UML00), York, UK, pp. 383-395, October, 2000.
[16] Falk Fraikin, Thomas Leonhardt,Sequence diagram based test automation,[R]http://www.pi.informatik.tu-darmstadt.de/publikationen/technische%20Berichte/2002/pi2002-2.pdf
[17]Ye Wu, Mei-Hwa Chen and Jeff Offutt, UML-based Integration Testing for Component-based Software,[C] The 2nd International Conference on COTS-Based Software Systems (ICCBSS). pages 251-260, Ottawa, Canada, February 2003


版权所有:UML软件工程组织