第27卷 第9期 计算机工程与设计 2006年5月 VO1.27 NO.9 Computer Engineering and Design May 2006 基于UML的系统测试 张永 , 迟忠先。 (1.辽宁师范大学计算机系,辽宁大连116029;2.大连理工大学计算机科学系,辽宁大连116024) 摘 要:系统测试独立于软件系统的实现,测试的关键是导出测试用例。UML是一种面向对象的建模语言,其目标是以面向 对象图的方式来描述任何类型的系统。目前许多基于面向对象的软件系统都是通过UML来描述的,传统的软件测试技术无 法有效的对此进行测试 将两者结合起来,对面向对象的系统测试进行了研究,探讨了如何从基于UML的描述中导出软件 系统测试用例这一问题。 关键词:面向对象;统一建模语言;用例;系统测试;软件工程 中图法分类号:TP311.5 文献标识码:A 文章编号:1000.7024(2006)09.1634.03 System test based on UML ZHANG Yong .-,CHI Zhong—xian (1.DepartmentofComputer,LiaoningNormalUniversity,Dalian 116029,China;2.DepartmentofComputerScience, Dalian University of Technology,Dalian 1 1 6024,China) Abstract:System test is independent of software system realization.The key to system test is to educe test use case.UML is a object— oriented modeling language,whose aim is to describe nay system based on object—oriented diagram.A lot ofobject-oriented so ̄ware— systems are described by UML.The traditional technology of software test Can not test this problem in effect.System test nad UML rae combined,where the object oriented system test is researched,and on hoff to educe system test use case from hte description based on UML iS discussed. Key words:object—oriented;uniifed modeling language;use case;system testing;software engineering 0 引 言 Rumbaugh等人提出了面向对象的建模技术(OMT)方法,该方 法采用了面向对象的概念,并引入了各种独立于语言的表示 面向对象分析与设计(OOA&OOD)方法的发展在2O世 符;Jacobson于1994年提出了OOSE方法,其最大特点是面向 纪8O年代末期至9O年代中期出现了一个高潮,UML正是这 用例,并在用例的描述中引入了外部角色的概念等。 个高潮的产物。它不仅统一了Booch、Rumbaugh和Jacobson 但面对众多的建模语言,用户却很难区别它们。因此在 的表示方法,而且对其作了进一步的发展。并最终统一为大众 客观上,有必要在精心比较不同的建模语言优缺点及总结面 所接受的标准建模语言。 向对象技术应用实践的基础上,统一各种建模语言。在Booch、 面向对象技术在软件工程中的推广使用,使得传统的软 Rumbaugh和Jacobson等人的共同努力下,发布了统一建模语 件测试技术和方法受到了极大的冲击。对面向对象技术所引 言(uniifed modeling language,UML)。 入的新特点,传统的测试技术已经无法有效的进行测试,对面 1.2 UML的主要内容 向对象软件的测试策略和方法都需要出现相应的变革或更 作为一种建模语言,UML的定义包括UML语义和UML 新。就此,本文针对UML的特性,着重通过对一个问题的 表示法两个部分。UML语义描述基于UML的精确元模型定 UML描述,逐层细化用例图,来标识出测试用例,从而完成对 义。元模型为UML的所有元素在语法和语义上提供了简单、 该系统的系统测试。 一致、通用的定义性说明,使开发者能在语义上取得一致,消 1统一建模语言UML 除了因人而异的最佳表达方法所造成的影响。UML表示法定 义了UML符号的表示方法,为开发者或开发工具使用这些图 1.1 UML的产生 形符号和文本语法为系统建模提供了标准。UML的重要内容 公认的面向对象建模语言出现于2O世纪7O年代中期。 可以由下列5类图(共9种图形)来定义。 从1989年到1994年,其数量从不到lO种增加到了5O多种。 (1)用例图 其中比较著名的有:Booch提出了面向对象软件工程的概念; 用例是对系统提供的功能的描述。用例图从用户角度描 收稿日期:2005.03—06。 作者简介:张永(1975--),男,四』lf阆中人,博士研究生,讲师,研究方向为数据仓库和数据挖掘和软件工程: 迟忠先,男,教授,博士生导师。 一1634— 维普资讯 http://www.cqvip.com
述系统功能,并指出各功能的操作者。用例图定义了系统的 功能需求 (2)静态图 3.1 标识系统功能 这是进行系统测试的第1步。在该系统中,主要功能描 述如表1所示。 表1系统功能 引用编号 功能 这类图描述系统的静态结构,包括类图、对象图和包图。 (3)行为图 描述系统的动态模型和组成对象问的交互关系。 (4)交互图 F1 F2 F3 F4 F5 启动应用程序 结求应用程序 输入人民币金额 选择待换的货币名称 执行转换 描述对象间的交互关系。 (5)实现图 这类图提供关于系统实现方面的信息,包括构件图和配置 图。其中构件图描述代码部件的物理结构及各部件之间的依 F6 清除用户输入和程序输出 赖关系。配置图定义系统中软硬件的物理体系结构。 2基于UML的系统测试方法 UML模型可作为测试阶段的依据。系统通常需要经过 单元测试、集成测试、系统测试和验收测试。不同的测试小组 使用不同的UML图作为测试依据:单元测试使用类图和类规 格说明;集成测试使用部件图和合作图;系统测试使用用例图 来验证系统的行为:验收测试由用户进行,以验证系统测试的 结果是否满足在分析阶段确定的需求。 因此,在系统测试过程中,重点考虑用例图,对用例图进行 逐层细化,直到能很容易的导}}}测试用例为止。主要步骤如下: (1)标识出系统的功能:软件系统的功能是整个系统测试 的基础,也是系统测试的山发点。如果这一阶段还不能准确描 述的话,那么该系统的开发将很难取得成功,更不用说测试了。 (2)建立高层用例(图)。用例开发从很高层次的视图开始。 高层用例往往只提供很少的细节,更加关注对待建系统的总 的描述 (3)建立基本用例(图)。高层用例只是对系统的总的描述, 很少涉及细节 因此,必须对其进行不断的精化。 (4)扩展基本用例(图)。如果该系统的功能相对较复杂, 在基本用例中还没有完全描述清楚其功能,可以对基本用例 进一步细化,进行扩展。 (5)根据基本用例的描述,导出系统测试用例,完成系统测 试。当然,为了更好地完成系统测试工作,可以考虑不同的覆 盖范围,对系统进行测试。 3实例分析 以货币转换程序为例 该程序将人民币转换为任意其它 4种货币:美元、欧元、日元和港币。基于VB的用户界面如 图l所示。 图1货币转换程序用户界面 3.2建立高层用例 为了表示方便,用HLUC(high level use case)来表示高层 用例 该系统的高层用例如表2所示。 表2系统高层用例 HLUC3:执行转换 参与者:用户 类型:基本功能 描述:用户输入人民币金额并选择待转换货币,应用程序计算 HLUC4:清除输入和输出 参与者:用户 类型:基本功能 描述:用户重新设置输入,开始新的事务处理 在高层用例中,仅描述了系统的基本功能。每一个高层 用例都应包括高层用例编号、参与者、类型和简单的功能描述。 3.3建立基本用例 对高层用例的进一步细化,便得到基本用例 相对高层 用例而言,基本用例的描述中增加了“参与者行动”和“系统响 应”两项。由于篇幅的原因,下面只给出对HLUC3的细化,其 余类同。用BUC(basic use case)表示基本用例,如表3所示。 表3 HLUC3所对应的基本用例BUC3 BUC3:执行转换 参与者:用户 类型:基本功能 描述:用户输入人民币金额并选择待转化货币,应用程序计算 参与者行动: 系统响应: (1)用户通过键盘输入一个人民币金额 (2)在文本框中显示人民币金额 (3)用户选择…种待转换的货币 (4)显示指定货币的标签 (5)用户请求转换计算 (6)显示等价货币值 3.4扩展基本用例 扩展基本用例是高层用例的第2层细化。为了进‘步 详细地描述,需在基本用例基础上增JJ口前提和后粜信息、有 关替代事件序列信息,以及对早期标识的系统功能的交叉引 用信息等。用EBUC(extended basic BS ̄case)来表示扩展基 本用例。 根据对基本用例的分析,可以进‘步对基本用例BUC3 进行细化,分为3种正常使用情况和3种异常使用情况。这 一1635— 维普资讯 http://www.cqvip.com
样,加上原来其它几种的基本用例的扩展,一共有9种情 况:EBUC1:启动应用程序:EBUC2:结束应用程序; 功能。比如可通过对应于扩展基本用例1、2、4和6的真实用 例导出测试用例,因为扩展基本用例1、2、4和6覆盖了系统的 所有6个功能。 EBUC3:正常使用(先输入人民币金额);EBUC4:对相同待 转换货币,重复转换;EBUC5:对相同人民币金额,重复转 换成其它货币;EBUC6:清除输入和输出;EBUC7:没有选择待 转换货币(异常情况);EBUC8:没有输入人民币金额(异常情 况);EBUC9:既没有选择待转换货币,又没有输入人民币金额 表6 EBUC3所导出的测试用例TC3 TC3:正常使用(先输入人民币金额) 参与者:用户 类型:基本功能 前提:输入人民币金额的文本框得到焦点 (异常情况)。 由于篇幅的原因,仅写出EBUC3,如表4所示。其余类同。 表4扩展基本用例EBUC3 EBUC3:正常使用(先输入人民币金额) 参与者t用户 类型:基本功能 前提:输入人民币金额的文本框得到焦点 描述;用户输入人民币金额并选择待转化货币,应用程序计算 参与者行动: 系统响应: (1)用户通过键盘输入一个人民币金额 (2)在文本框中屁示人民币金额 (3)用户选择一种待转换的货币 (4)显示指定货币的标签 (5)用户请求转换计算 (6)显示等价货币值 替代序列:行动(1)和(3)可交换,相应的响应(4)和(6)交换 交叉引用:F3.F4.F5 后粜:清除按钮得到焦点 有了扩展基本用例以后,很容易写出真实用例。两者仅 有微小的差别 例如表4中的“用户通过键盘输入一个人民 币金额”,需用更具体的“在表示人民币金额的文本框中输入 100”来代替。 3.5导出系统测试用例 通过对扩展基本用例的分析,已经很容易写出系统测试 用例了。从真实用例导出测试用例的基本方法是:用例前提 是测试用例的前提,参与者行动序列和系统响应可直接映射 到用户输入事件和系统输出事件序列。 为了使系统测试工作更加具体,对于该系统,可以采用以 下两种方式(对应两种不同的覆盖标准)来设计测试用例。 3.5.1系统功能覆盖 在第1步中,已经定义了系统的功能 这些功能在扩展 基本用例中已被交叉引用,因此可以构造一-个用例与系统功 能关联矩阵,如表5所示。 表5用例与系统功能关联矩阵 EBUC F1 F2 F3 F4 F5 F6 1 X 2 3 4 X 5 X 6 X 7 X 8 9 X 表5中,x——表示用例与系统功能相关联:一——无关。 研究该关联矩阵,可发现有多种方式来覆盖系统的6个 一l636一 描述:用户输入100元并选择美元,应用程序计算显示等价金额11.494美元 参与者行动: 系统响应: (1)用户通过键盘输入100 (2)在人民币金额文本醛显示100 (3)用,Ll点击美元按钮 (4)美元出现在待转换货币标签框中 (5)用户点击转换按钮 (6)l1.494出现在待转换货币文本框中 替代序列:行动(1)和(3)可交换,相应的响应(4)和(6)交换 交叉引用:F3,F4,F5 后果:清除按钮得到焦点 3.5.2通过所有真实用例导出测试用例 假如用户对最初的扩展基本用例感到满意,可直接通过 所有的真实用例导出测试用例,这是最低限度的系统测试覆 盖。以扩展基本用例EBUC3为基础的真实用例所导出的系 统测试用例TC3(test case)如表6所示,其余类同。 4结束语 本文主要论述了基于UML描述的面向对象软件系统测 试的基本方法。当然,在由真实用例导出系统测试用例时,方 法还很多。例如可以通过有限状态机导出,也可以通过基于 状态的事件表导出等。 参考文献: [1] Craig Larman.Applying UML and pattenrs:An introduction to object-oriented analysis and design[M].Prentice-Hall,1998. [2]Jorgensen Paul C.Software testing:A craftsman’S approach[M]. SecondEdition.CRC PresS LLC.2002. [3】Jorgensen Paul C.System testing with pseudo-structures[J]Amer Programmer。1994。7(4):29-34. [4】 Binder Robert V.The approach for testing use cases,threads。and relations[J].Object,1996,6(2):12.17. [5] 张永.传统的软件开发方法如何达到CMM的可重复级标准 [J]_淮北煤炭师范学院学报,2003,24(3):27 31. [6】 张海藩做件工程[M] E京:人民邮电出版社。2Oo2. 【7] 蒋慧.UML设计核心技术【M] E京:希望电子出版社.2001. [8] 殷兆麟.UML及其建模工具的使用[M】.北京:清华大学出版社. 2Oo4. [9] 邵维忠,梅宏.统一建模语言UML评述[JJ.计算机研究与发展, 1999,36(4):385 394. [1O]王云,刘又诚,周伯生.UML可视化建模系统的模型一致性检 查机制[J].计算机研究与发展。2000,37(1):1-8. 【1 1]方进,王铁成,石志宽,等.基于UML的工作流建模【J】_计算机工 程与设计,2004,25(9):1572.1575.
因篇幅问题不能全部显示,请点此查看更多更全内容