基于UML建模技术的自动化测试技术的改进

时间:2022-09-15 07:02:45

基于UML建模技术的自动化测试技术的改进

摘要:众所周知,自动化测试工具的开发主要针对的是实际软件测试需求,从而减少人工测试的工作量,大大增加在有限的时间内的测试,并且增强测试的质量。我们开发的基于UML建模技术的自动化测试工具是一个用户界面自动化测试的工具。结果表明UML作为一种可视化建模语言和标准的表达工具,可以帮助我们记录和推进分析和设计的过程,并且完成设计以后便于进行回溯和交流。

关键词:UML;动态模型;建模技术

中图分类号:TP311文献标识码:A 文章编号:1009-3044(2010)21-5772-02

在软件开发过程中,一个重要又很昂贵的环节是软件测试,它是保障软件可靠性的一个重要手段。经研究发现在总的软件开发费用中软件测试通常占有50%或更高的比重。若采用基于人工的方法进行软件测试,存在许多问题,主要表现为测试效率不高,受人力因素影响提高了软件测试的成本。自动化测试可以大大减少测试开销,同时大大增加在有限的时间内的测试。从各种测试工具的开发趋势来看,自动化测试是发展主流。

1 当前自动化测试存在的问题

使用自动化测试的过程中可能会遇到很多问题,下面是一些普遍存在的问题:1) 不现实的期望。人们都期望新工具可以解决目前遇到的所有问题,可是如果期望不现实,那么从技术角度无论工具实现得多么好,都满足不了期望。2) 缺乏测试实践经验。如果缺乏测试实践经验,测试发现缺陷的能力较差,在这种情况下采用自动化测试并不是好办法。3) 安全性错觉。因为测试可能不全面或测试本身就有缺陷,测试软件没有发现任何缺陷就并不意味着软件没有缺陷。4) 自动化测试的维护性。测试维护的开销打击了测试自动化的积极性,当修改测试比手工重新测试更费劲时,测试自动化将被丢弃。5) 技术问题。测试工具与其他软件的互操作性,也是一个严重问题。除工具本身的技术问题外,用户也要了解被测软件的技术问题。当今, UML建模语言是一门重要的面向对象软件开发技术,在面向对象的软件开发过程中已得到广泛应用。它采用的UML框架和UML模型,是采用图形化的方式,如此来认识软件比软件代码的方式更加直观易懂,用户和软件开发人员也更容易接受。本文为此具体探讨了基于UML建模技术的自动化测试技术的改进措施。

2 UML的定义和特点

UML是一种定义良好、易于表达的主流的面向对象软件工程建模语言。UML采用的建模机制较为成熟,能帮助软件开发人员更好地理解业务流程。它还采取图形的方式可视化地描述、构造软件系统以及文档编制。UML具体有以下几个特点:1) 是功能强大的标准化语言。UML具有一套描述软件系统模型的图形表示法和统一的面向对象方法,因此可以为复杂的软件系统建立可视化的系统模型;2)独立于编程语言:使用UML建立的模型,可以用于所有面向对象语言;3)独立于开发过程。UML可以和Rational统一过程以及其他面向对象过程配合使用,不受开发过程的限制。4)支持面向对象技术。UML全面支持面向对象的软件开发方法,这样面向对象的思想就能准确描述、易于表达。

UML提供的图有八种,如表1所示。

在软件开发步骤中,如需求分析、技术规范、结构设计、配置要求等,UML都给予了模型化和可视化的支持。另外,利用UML来获取系统的重要资料,可以清楚地理解问题起因,并且能够更加容易地开发解决方案的体系结构,还可以清晰地识别与构造实现方式。此外,UML还为基本构建块中复杂的系统关系提供了表达方式。

3 基于UML模型的软件测试技术

面向对象的软件开发是目前主流的开发方式,因此开发后软件的测试也以面向对象技术为主。而基于UML的软件测试技术支持面向对象技术,其中重要部分就是基于UML模型图的测试。一个可测试的UML模型需要满足以下两个条件:第一, UML模型应是待测系统的抽象,但也保留了系统的某些部分,这将有助于检验系统一致性并发现系统故障;第二,UML模型能够描述出待测系统的功能特性,并且完整又准确地反映待测系统。基于UML用例图的测试是通过UML用例图指导系统级别的功能测试,具体描述系统与用户之间的交互关系。另外,还可以采用基于UML用例图的形式化需求规格说明来生成测试用例。基于UML模型的软件测试是先根据待测系统去选择合适的UML模型。然后进行UML模型建模,建模必须反映出系统的本质特性。再利用相关技术及模型生成测试用例。最后运行测试用例,对比测试结果并分析测试效果。

基于UML的软件测试技术除基于UML模型图的测试以外,还有基于UML状态图和类图的测试、基于交互图和活动图的测试。基于UML状态图和类图的测试主要用于单元测试,因为状态图通常是某一个类对象的状态图,所以状态图与类图之间具有一定的共性。但是,它们也有所不同,测试用的UML状态图用于描述特定对象的所有状态以及因事件引发的状态迁移;而测试用的类图具有特定信息,如属性、方法及类之间的关系等,所以类图测试能测试类之间的关系的同时,还能描述类的某一对象的状态迁移,类图测试通常用于类级或类簇级测试。基于交互图和活动图的测试主要用于集成测试,其中活动图具有表示系统并行活动和工作流的能力,而交互图则能够表示多个对象的交互协作关系。

4 基于UML建模技术的自动化测试工具模块分析

本自动化测试工具参考了QuickTest Professional和Rational Robot等目前主流的自动化测试工具的做法,分成四个基本的功能模块:录制模块、脚本模块、对象交互模块、日志模块,这样的模块划分可以实现重复使用测试脚本进行自动化测试,能够满足自动化测试工具的重用性要求。模块功能介绍:1) 录制模块:当用户使用应用程序时,本自动化测试工具会记录用户的鼠标和键盘操作,并产生测试脚本;2) 脚本模块:当用户打开测试脚本,本自动化测试工具会读取脚本内容,并以树型结构显示脚本内容;3) 对象交互模块:当用户执行回放任务时,本自动化测试工具会自动查找定位窗口焦点坐标,并执行测试脚本所描述的鼠标和键盘操作;4) 日志模块:当本自动化测试工具执行完测试脚本,会产生一个日志文件,包含测试的执行者、测试时间、测试内容、测试结果和测试失败原因等。

5 基于UML建模技术的自动化测试工具需求模型

本自动化测试工具使用UML用例图来构建需求模型。首先要定义活动者,本自动化测试工具是针对测试工作的基本需求设计的,设计的目的是为了提高测试人员的工作效率,所以活动者只有一个:测试人员。

接下来构建动态模型,自动化测试工具的动态模型采用UML的交互图以及活动图和状态图来描述。下面以回放脚本为例,建立其UML的交互图以及活动图和状态图,并作出相应说明。

1) 回放脚本的UML的交互图

交互图用于描述模块间消息传递的连接关系及其空间分布,表示模块之间的交互过程。它具有两种类型:顺序图、协作图。前者着重于描述对象按照时间顺序的消息交换,后者着重于描述各模块之间如何协同工作。我们将针对回放脚本建立其UML顺序图。首先,“Tester”通过选择“文件”菜单中的“打开”选项或者单击工具栏中的“打开”按钮执行OnFileOpen()方法打开测试脚本;然后,脚本模块执行ReadScript()方法读取脚本内容,并且执行InsertTreeData()方法用树形结构显示脚本内容;接下来,“Tester”通过选择“操作”菜单中的“回放”选项或单击工具栏中的“回放”按钮回放脚本,脚本模块再通过调用对象交互模块的FindWindow()方法去查找定位对象,并且通过执行WindowEvent()方法去操作对象。最后,日志模块执行WriteLog()方法生成日志文件,并且执行InsertTreeData()方法采用树形结构显示日志内容。当然,“Tester”还能够通过选择“操作”菜单中的“日志”选项或单击工具栏中的“日志”按钮执行OnLog()方法来查看日志内容。

2) 回放脚本的UML的状态图

状态图表现了一个对象(或模型元素)的生存史,显示触发状态转移的事件和因状态改变而导致的动作。下面,我们将采用状态图来描述回放脚本的动态模型,如图1所示。

3) UML活动图

活动图的主要作用是表示软件的业务工作流和并发处理过程。图2是回放脚本的UML活动图。

6 结束语

在本文中,我们使用统一建模语言UML描述了自动化测试工具的需求模型和动态模型。通过这个具体的应用可以看出,UML作为一种可视化建模语言和标准的表达工具,可以帮助我们记录和推进分析和设计的过程,并且完成设计以后便于进行回溯和交流。

参考文献:

[1] 刘玲.基于面向对象形式规格说明的测试用例生成技术[J].上海大学,2009.

[2] 占学德,缪淮扣.基于UML状态图测试的充分性准则[J].计算机科学,2005,32(5):230-235.

[3] Lakhneck C.Petersolm.On Formal Semantics of Statecharts as Supported by STATE.MATE.InBCS.FACS Northern Formal Methods Workshop.Spring-Verlag.July 2007.

[4] H.Y.Chen, T.H.Tse, and T.Y.Chen.TACCLE:a methodology for objected oriented software testing at the class and cluster levels.ACM Transactions onSoftware Engineering and Methodology,V01.10,No.1,2009,56-109.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

上一篇:浅析校园网ARP攻击及对策 下一篇:基于RBAC的权限认证在高校信息管理系统中的应...