基于UML顺序图的场景测试用例生成方法

发表于:2007-10-09 14:08

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:逄瑞娟 李劲华    来源:网络转载

分享:

引言

        本文提出了一个基于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协议的部分类图。

q
图1:DHCP的部分类图

                                                     图2是实例中请求IP的顺序图。

w
图2:请求IP的顺序图

                                                    图3是DHCP中Server类的状态图。

y
图3:DHCP-Server状态图

2、UML顺序图的一个形式化定义

        为了能在测试中找出所有的场景,下面给出顺序图的形式化定义:

        定义1(顺序图)顺序图SD可以表示为一个六元组:SD=,其中:

◆O={O1, O2, …,Om},是对象的集合。O1, O2, …,Om都是顺序图中的对象。

◆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.

e
图4:一个简单的顺序图
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号