- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于UML顺序图的场镜陌测试用例生成方法
基于UML顺序图的场景测试用例生成方法
摘 要 本文提出了一个基于UML顺序图的场景测试方法,它以UML顺序图为主要测试模型,结合类图和状态图生成所有的测试场景,然后找到与每一场景相关的环境条件并将它与方法序列、输入、输出合理组合作为覆盖该场景的测试用例。该方法完全基于UML,而且生成的测试用例数量少,减少了测试工作量。 关键词 UML顺序图; 场景测试; 测试用例;自动测试0 引言 本文提出了一个基于UML模型图来测试场景的方法,它以顺序图为主要测试模型,结合类图和状态图导出所有的场景,并将与场景相关的环境条件与方法序列、输入、输出合理组合作为覆盖该场景的测试用例。我们的工作具有两方面的优点:测试方法完全基于UML模型,以便已经使用UML的软件系统能方便地采用,另一方面生成的测试用例数量少,减少工作量。1 实例 本文以DHCP[2]作为一个实例,使用UML的类图、状态图和顺序图[3]来说明我们提出的一个场景测试用例生成方法。DHCP是由IETF进行标准化的一个协议,提供一种动态指定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状态图2 UML顺序图的一个形式化定义 为了能在测试中找出所有的场景,下面给出顺序图的形式化定义:定义1(顺序图)顺序图SD可以表示为一个六元组:SD=,其中:● O={O1, O2, …,Om},是对象的集合。O1, O2, …,Om都是顺序图中的对象。● M guardacute;messageacute;nameacute;parameter_list,是消息的集合。顺序图中的每一个消息都形如:“[卫士条件]消息名(参数)”。● E=M {s, r},是事件集合。事件是指消息的发送和接收。对于消息msg,发送事件用表示,接收事件用表示。顺序图中所有发送消息事件的集合记为S,所有接收消息事件的集合记为R。SCcedil;R=AElig;, SEgrave;R=E。● →是消息集合M上的一个全序关系,表示顺序图中的消息在纵向时间轴上的先后关系。● msg是从E到M的一个函数关系,msg(e) M表示事件e所对应的消息。● Obj是从E到O的一个函数关系,obj(e) O表示时间e所对应的对象。对象Oi上所有事件的集合记为Ei,Ei={e | e EUgrave;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 一个简单的顺序图 顺序图主要描述了对象间发送消息的时间顺序。我们用符号和就是两个有效的事件序列。 定义2(顺序图的场景)对于顺序图SD=,场景定义为一个消息序列,并且满足下面两个条件: (1)所有M中的事件在序列中出现且仅出现一次,也就是说{M1,M2,…,Mm}=M且对于所有的i j,Mi Mj。 (2)对于任意两个消息序列Mi,MjIcirc;M,如果(Mi,s)就是一个有效的场景。3 基于UML顺序图生成场景测试用例的方法 顺序图中的场景设计可能与实现不一致,例如由于消息名的编码错误、不正确的或缺少输出等,那么通过执行顺序图中的所有可能场景,至少能在其中的一个场景的执行过程中达到该错误,因此只要从顺序图中生成覆盖所有场景的测试用例就能有效地找出存在的错误。在测试用例的生成过程中,我们将环境条件与输入,方法调用序列和预期输出作为最终的测试用例,最后将系统测试后的实际输出和方法调用序列与预期的输出和方法调用序列进行比较,从整体上验证系统的最终实现是否与设计一致,从而完成顺序图的场景测试。3.1 测试衡量方法 测试的主要评测方法包括覆盖和质量,测试覆盖是对测试完全程度的评测,质量是对测试对象(系统或测试的应用程序)的可靠性、稳定性以及性能的评测。对于顺序图的场景测试,最基本的评
文档评论(0)