| 网站首页 | 测试咨讯 | 新手入门 | 专注性能 | 测试技术 | 测试管理 | 测试工具 | 开发社区 | 工具下载 | 资料下载 | 测试论坛 | 

[CNTester联盟群]交流群:34446273/21968356/64461572 白盒群:18400216 自动化群:2706508 性能群:4498858 外包群:59649884 管理群(需有管理经验):64442523

新手入门
 入门指南
 经验之谈
测试咨讯
 行业新闻
 网站动态
 人才就业
 CNTester基金
 标准规范
专注性能
 性能测试知识
 性能测试工具
 程序设计性能
 数据库性能
 Web应用服务器性能
 操作系统性能
 服务器与网络性能
测试技术
 用例设计
 性能测试
 自动化测试
 Web测试
 面向对象测试
 综合技术
 阶段性测试
 行业类测试
测试管理
 项目管理
 项目案例
 质量管理
 软件过程
测试工具
 Mercury系列
 Rational系列
 测试管理工具
 性能测试工具
 功能测试工具
 单元测试工具
 其它测试工具
开发社区
 Java技术
 DotNet技术
 C技术
 数据库技术
 操作系统
 服务器与中间件
工具下载
 测试工具
 开发工具
 企业工程
 网络通信
 媒体桌面
 游戏娱乐
 其他工具
资料下载
 测试资料
 程序设计
 数据库
 操作系统
 应用服务器
 电子期刊
 其他资料
 
 
您现在的位置: 中国测试员网站 >> 测试技术 >> 面向对象测试 >> 文章正文
  [组图]基于UML顺序图的场景测试用例生成方法          【字体:
基于UML顺序图的场景测试用例生成方法
作者:佚名    文章来源:希赛网    点击数:    更新时间:2007-5-26    

  引言:本文提出了一个基于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 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)发生,这是由于图形表示的局限性造成的。

  一个简单顺序图(不包括分支)刻画了系统运行的一个场景,其运行过程表现为一个事件的序列(e1 , e2,…, em),其中事件ei+1 在事件 ei后发生(1≤ i ≤m-1)。由于事件之间存在强制顺序关系‘<<’,因此并不是所有事件序列都是顺序图允许的。而且,由于‘<<’并不是一个全序关系,所以一个顺序图的场景可能允许多个事件序列。可以用一个有向无环图(DAG)来表示‘<<’关系,对于任意两个事件 ei,ei∈ E,如果 ei<< ei,则画一条从ei 指向ei 的边,直到所有事件都在这个有向图上。

  通过遍历所得的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中的事

[1] [2] [3] 下一页

文章录入:root    责任编辑:root 
  • 上一篇文章: 没有了

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     
    最新热点 最新推荐 相关文章
    · 性能测试方法
    · Java 安全的演进
    · Java 安全性的演变和理念 第一部分:安全
    · 第 1 部分: Web 安全与 Rational AppScan
    · 自动化测试实施步骤和最佳实践
    · Web测试方法
    · 站点测试-WebTesting
    · 实施自动化功能测试的解决方案
    · 经典之作《代码大全》中的单元测试---测试
    · IP网络的测试方法
    · 第 2 部分: 使用 Rational AppScan 应对 
    · 第 1 部分: Web 安全与 Rational AppScan
    · 构建安全软件: 选择技术,第一部分
    · 软件安全性原则: 第一部分
    · Java 安全性的演变和理念 第一部分:安全
    · 安全的代价是什么?
    · 保护系统安全: 一个识别用户的三向解决方
    · 穿透企业网络
    · Java 安全的演进
    · 您的 Java 代码安全吗 — 还是暴露在外?
    没有相关文章
     
     
     
    ======> [CNTester联盟群]交流群:34446273/21968356/64461572 白盒群:18400216 自动化群:2706508 性能群:4498858 外包群:59649884 管理群(需有管理经验):64442523
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | 

    Copyright@2007 by CNTester.com 中国测试员网站 桂ICP备07005590

    本站为开源免费网站,非商业赢利性组织。本站文章部分从网络搜索获取,如果您认为某些侵犯了您的权益,麻烦您联系本站,我们会尽快删除相关内容,同时也希望您的谅解,我们的初衷是为了让更多人去学习这方面的知识,让行业有更好的发展。

    联系电话: 15021358905