首页 计算机应用论文-基于UML顺序图的场景测试用例生成方法

计算机应用论文-基于UML顺序图的场景测试用例生成方法

举报
开通vip

计算机应用论文-基于UML顺序图的场景测试用例生成方法计算机应用论文-基于UML顺序图的场景测试用例生成方法 基于UML顺序图的场景测试用例生成方法 本文提出了一个基于UML顺序图的场景测试方法,它以UML顺序图为主要测试模型,结合类图和状态图生成所有的测试场景,然后找到与每一场景相 关的环境条件并将它与方法序列、输入、输出合理组合作为覆盖该场景的测试 用例。该方法完全基于UML,而且生成的测试用例数量少,减少了测试工作量。 UML顺序图; 场景测试; 测试用例;自动测试 本文提出了一个基于UML模型图来测试场景的方法,它以顺序图为主要测试模 型,结合类图和状...

计算机应用论文-基于UML顺序图的场景测试用例生成方法
计算机应用 论文 政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载 -基于UML顺序图的场景测试用例生成方法 基于UML顺序图的场景测试用例生成方法 本文提出了一个基于UML顺序图的场景测试方法,它以UML顺序图为主要测试模型,结合类图和状态图生成所有的测试场景,然后找到与每一场景相 关的环境条件并将它与方法序列、输入、输出合理组合作为覆盖该场景的测试 用例。该方法完全基于UML,而且生成的测试用例数量少,减少了测试工作量。 UML顺序图; 场景测试; 测试用例;自动测试 本文提出了一个基于UML模型图来测试场景的方法,它以顺序图为主要测试模 型,结合类图和状态图导出所有的场景,并将与场景相关的环境条件与方法序 列、输入、输出合理组合作为覆盖该场景的测试用例。我们的工作具有两方面 的优点:测试方法完全基于UML模型,以便已经使用UML的软件系统能方便地采用,另一方面生成的测试用例数量少,减少工作量。 [2][3] 本文以DHCP作为一个实例,使用UML的类图、状态图和顺序图来说明我们提出的一个场景测试用例生成方法。DHCP是由IETF进行 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 化的一个 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 ,提供一种动态指定IP地址和配置参数的机制。我们选取了DHCP协议的一个子集,协议的一般过程如下: 1.客户端广播一个DHCP_DISCOVER消息。 2.每个具有网络地址的服务可能响应一个DHCP_ OFFER消息,如果都没有响应,则表示超时失败。 3.如果客户端接收到一个或多个DHCP_OFFER消息,则选择其中一个,然后广 播一条DHCP_REQUEST消息给所有的服务器,并附上选择参数及指明哪一个服务 器。 4.所有服务器接收到客户的广播信息,只有被选中的服务器才绑定地址给这 个客户,并发送确认消息DHCP_ACK,连接成功;如果要求的地址不可得(可能 分配给其它用户),则服务器发送一个DHCP_NAK给客户,连接失败。 图1显示了DHCP协议的部分类图。 图1 DHCP的部分类图 图2是实例中请求IP的顺序图。 图2 请求IP的顺序图 图3是DHCP中Server类的状态图。 图3 DHCP-Server状态图 为了能在测试中找出所有的场景,下面给出顺序图的形式化定义: 定义1(顺序图)顺序图SD可以表示为一个六元组:SD=,其中: , O, „,O},是对象的集合。O, O, „,O都是顺序图中的对象。 ? O={O12m12m ? M guard?message?name?parameter_list,是消息的集合。顺序图中的每一个 消息都形如:“[卫士条件]消息名(参数)”。 ? E=M {s, r},是事件集合。事件是指消息的发送和接收。对于消息msg,发送事件用表示,接收事件用表示。顺序图中所有发送消息事件 的集合记为S,所有接收消息事件的集合记为R。SÇR=Æ, SÈR=E。 ? ?是消息集合M上的一个全序关系,表示顺序图中的消息在纵向时间轴上的 先后关系。 ? msg是从E到M的一个函数关系,msg(e) M表示事件e所对应的消息。 ? Obj是从E到O的一个函数关系,obj(e) O表示时间e所对应的对象。对象Oi上所有事件的集合记为Ei,Ei={e | e EÙobj(e)= Oi }。 在如图4所示的顺序图中: O={obj1,obj2,obj3}; M={m1,m2,m3}; E={(m1,s),(m1,r),(m2,s),(m2,r),(m3,s),(m3,r)}; ?=m1?m2?m3. 图4 一个简单的顺序图 顺序图主要描述了对象间发送消息的时间顺序。我们用符号‘<<’来表示事件 间的先后关系,它满足如下三个性质: 1.对同一消息而言,发送事件先于接收事件。 2.在同一对象的生命线上,若事件e1出现在发送事件e2的上方,则e1先于e2。 3.在同一个对象的生命线上,如果接收事件e1出现在e2的上方,并且它们分别对应的发送事件也位于同一个对象的生命线上,则e1先于e2。 ‘<<’顺序关系是强制顺序关系,那么即使它们在顺序图的时间轴上存在先后 关系,这两个事件实际发生的先后顺序也是不确定的。例如图4中,尽管(m1,r)在(m3,r)的上方,但是在系统实际运行中,由于m1, m2, m3都是异步消息,因此(m1,r)并不一定先于(m3,r)发生,这是由于图形表示的局 限性造成的。 一个简单顺序图(不包括分支)刻画了系统运行的一个场景,其运行过程表现 为一个事件的序列(e , e,„, e),其中事件e 在事件 e后发生(1? i 12mi+1i?m-1)。由于事件之间存在强制顺序关系‘<<’,因此并不是所有事件序列 都是顺序图允许的。而且,由于‘<<’并不是一个全序关系,所以一个顺序图 的场景可能允许多个事件序列。可以用一个有向无环图(DAG)来表示‘<<’关 ,e E,如果 e<< e,则画一条从e 指向e 的边,系,对于任意两个事件 eii?iiii直到所有事件都在这个有向图上。 通过遍历所得的DAG图,可以很容易的得到顺序图中的每一个有效的事件序列。 在图4的例子中,<(m1,s), (m2,s), (m2,r),(m3,s),(m3,r),(m1,r)>和<(m1,s),(m1,r), (m2,s), (m2,r), (m3,s), (m3,r)>就是两个有效的事件序列。 定义2(顺序图的场景)对于顺序图SD=,场景定义 为一个消息序列< M1,M2,„,Mm>,并且满足下面两个条件: (1)所有M中的事件在序列中出现且仅出现一次,也就是说{M1,M2,„,Mm}=M 且对于所有的i j,Mi Mj。 (2)对于任意两个消息序列Mi,MjÎM,如果(Mi,s)<<(Mj,s),那么序列中Mi在Mj的前面。 根据场景的定义,通过所找到的合法的事件序列就可以确定与该事件序列相应 的场景。如图4,就是一个有效的场景。 顺序图中的场景设计可能与实现不一致,例如由于消息名的编码错误、不正确 的或缺少输出等,那么通过执行顺序图中的所有可能场景,至少能在其中的一 个场景的执行过程中达到该错误,因此只要从顺序图中生成覆盖所有场景的测 试用例就能有效地找出存在的错误。在测试用例的生成过程中,我们将环境条 件与输入,方法调用序列和预期输出作为最终的测试用例,最后将系统测试后 的实际输出和方法调用序列与预期的输出和方法调用序列进行比较,从整体上 验证系统的最终实现是否与设计一致,从而完成顺序图的场景测试。 测试的主要评测方法包括覆盖和质量,测试覆盖是对测试完全程度的评测,质 量是对测试对象(系统或测试的应用程序)的可靠性、稳定性以及性能的评测。 对于顺序图的场景测试,最基本的评测方法就是测试覆盖,即要求针对每一个 场景都至少生成一个测试用例。但是顺序图本身并不能充分地对系统交互行为 进行建模,仅通过顺序图并不能生成充分地场景测试用例。所以我们将顺序图 与交互对象的状态图相结合,生成更充分的测试用例。为此,定义如下评测方 法: 1) 顺序图中的每个场景至少被测试一次。 2) 如果顺序图中的对象存在状态图,那么与场景相关的每个状态至少要被测 试一次。 第一步,检查顺序图中的每一个对象,如果其存在状态图,就将对象状态加入 到顺序图中。以DHCP-Server对象为例,其状态图如图3所示,Has free IP addresses和Has no free IP addresses是Server可能处于的两种状态,我们将这两个状态加入顺序图,加入状态信息后的最终结果如图5所示。 图5 加入状态信息后的顺序图 第二步,使用第3节介绍的方法通过遍历顺序图中的事件序列从而找出所有的 场景。在图5中,消息4和消息7、消息10和消息12分别构成了分支,处理分支时,可以为顺序图构造多个DAG图,每个图包含其中一条分支。这样就将 复杂顺序图化简成多个简单的顺序图来进行处理,遍历每个DAG图就可以得到所有场景。图5中,得到3个场景如下: A: 1, 2, 3, 4, 5 B: 1, 2, 3, 6, 7, 8, 9, 10 C: 1, 2, 3, 6, 7, 8, 11, 12 第三步,选定一个场景,根据其消息序列在顺序图中遍历该场景,记录场景的 输入和最终输出。以场景B为例: 输入:用户调用connect操作。 预期输出:返回“nak”消息,表示申请IP不成功。 第四步,确定每个场景的环境条件。首先从顺序图中找出所有的测试单元,在 顺序图中,每一个交互的对象就是一个测试单元。本例中的DHCP_Client和 DHCP_Server就是两个测试单元;其次对每一个测试单元,从类图中导出相应 的环境设置(包括对象属性、操作和消息中的参数)。结果如表1所示。 表1 DHCP的测试单元与环境 测试单元 DHCP-Server DHCP-Client 环境设置 Offer:Boolean hasFreeIP:Boolean 无 找出环境设置之后,再为每一个场景找出相应的选择,从而确定其环境条件, 如场景B中,Offer=true,hasFreeIP =false。 第五步,测试用例生成 一个测试用例包括4个部分:环境条件、输入、方法调用序列、预期输出。对于场景B,所有这些信息已从前面的四步中生成,只 要将它们组合在一起就可以了。场景B的测试用例为: 环境条件: DHCP-Server:offer=true,hasFreeIP=false 输入: 用户调用connect操作。 方法调用序列: Client.discover, Server.isServeroffer, Client.request, Server.hasFreeIP, Server.nak, user.notConnected 预期输出:返回”nak”消息,表示申请IP不成功。 在这个测试用例中,方法调用序列就是该场景中的消息序列。 可用同样的方法为所有场景生成测试用例。 文[4]出现了一个基于UML顺序图设计的面向对象的软件的自动测试的概念和 相应的实现工具SeDiTeC,该方法提出了一个可测试的顺序图的 规则 编码规则下载淘宝规则下载天猫规则下载麻将竞赛规则pdf麻将竞赛规则pdf ,并在 SeDiTeC中实现了完整的测试过程,但是没有详细描述如何从顺序图中生成测 试用例。文[5]指出了多态性对顺序图测试场景的影响,提出了相应的对策,有 效地解决了测试消息序列中多态消息的测试问题,但没有说明测试用例如何生 成。文[6]同样提出了一个顺序图生成测试用例的方法,但是该方法没有给出场 景的 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 ,而且生成的用例数太多,工作量大。 本文提出的基于UML顺序图生成场景测试用例的方法,包括找出场景和生成测 试用例,改进了这类方法生成测试用例数多、工作量大的缺点,减少了测试用 例的重复生成。 [1] UML Specification 1.5. [2] R.Droms. Dynamic Host Configuration Protocol (DHCP). [3] Hans-Erik Eriksson著.余安萍等译.UML 2工具箱.电子工业出版社,2004 [4] Fraiki F, Leonhardt T, SeDiTec. Testing Based on Sequence Diagrams.In:the 17 IEEE Int1.Conf.on Automated Software Engineering (ASE’02) Sep.2002.261267 [5] 黄陇,于洪敏,陈致明.多态性在UML顺序图测试场景生成中的影响及对策. 计算机工程与设计,2005 [6]江泽凡 王林章等.基于UML顺序图的测试方法.计算机科学,2004
本文档为【计算机应用论文-基于UML顺序图的场景测试用例生成方法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_601191
暂无简介~
格式:doc
大小:23KB
软件:Word
页数:8
分类:
上传时间:2018-05-23
浏览量:19