*场景法设计测试用例*

在面向对象的软件开发中,事件触发机制是编程中经常遇到的。

一、场景法原理

现在的软件几乎都是用事件触发来控制流程的。像GUI软件、游戏等。事件触发时的情景形成了场景,而同一事件不同的触发顺序和处理结果就形成了事件流。这种在软件设计方面的思想可以引入到软件测试中,可以生动地描绘出事件触发时的情景,有利于设计测试用例,同时使测试用例更容易理解和执行。

在测试一个软件的时候,在场景法中,测试流程是软件功能按照正确的事件流实现的一条正确流程,那么我们把这个称为该软件的基本流;而凡是出现故障或缺陷的过程,就用备选流加以标注,这样的话,备选流就可以是从基本流来的,或是由备选流中引出的。所以在进行图示的时候,就会发现每个事件流的颜色是不同的。

基本流和备选流:如下图所示,图中经过用例的每条路径都用基本流和备选流来表示,直黑线表示基本流,是经过用例的最简单的路径。备选流用不同的色彩表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中(如备选流1和3);也可能起源于另一个备选流(如备选流2),或者终止用例而不再重新加入到某个流(如备选流2和4)。

在这个图中,有一个基本流和四个备选流。

每个经过用例的可能路径,可以确定不同的用例场景。从基本流开始,再将基本流和备选流结合起来,可以确定以下用例场景:

场景 1 基本流

场景 2 基本流 备选流 1

场景 3 基本流 备选流 1 备选流 2

场景 4 基本流 备选流 3

场景 5 基本流 备选流 3 备选流 1

场景 6 基本流 备选流 3 备选流 1 备选流 2

场景 7 基本流 备选流 4

场景 8 基本流 备选流 3 备选流 4

*下面是场景法的基本设计步骤:*

· 根据说明,描述出程序的基本流及各项备选流

· 根据基本流和各项备选流生成不同的场景

· 对每一个场景生成相应的测试用例

· 对生成的所有测试用例重新复审,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值

二、场景法例子

1、在线购物系统

我们都在当当网或china-pub华章网上书店都订购过书籍,整个订购过程为:用户登录到网站后,进行书籍的选择,当选好自己心仪的书籍后进行订购,这时把所需图书放进购物车,等进行结帐的时候,用户需要登录自己注册的帐号,登录成功后,进行结帐并生成订单,整个购物过程结束。

那么我们通过以上的描述,从中确定哪是基本流,哪些是备选流:

基本流 用户登录到网站,书籍的选择,进行订购,把所需图书放进购物车,等进行结帐的时候,登录自己的帐号,登录成功后,生成订单
备选流1 帐号不存在
备选流2 帐号错误
备选流3 密码错误
备选流4 无选购书籍
备选流x 退出系统

根据基本流和备选流来确定场景:

场景1-购物成功 基本流
场景2-帐号不存在 基本流 备选流1
场景3-帐号错误 基本流 备选流2
场景4-密码错误 基本流 备选流3
场景5-无选购书籍 基本流 备选流4

我们来设计用例

对于每一个场景都需要确定测试用例。可以采用矩阵或决策表来确定和管理测试用例。

下面显示了一种通用格式,其中各行代表各个测试用例,而各列则代表测试用例的信息。

本例中,对于每个测试用例,存在一个测试用例ID、条件(或说明)、测试用例中涉及的所有数据元素(作为输入或已经存在于数据库中)以及预期结果。

通过从确定执行用例场景所需的数据元素入手构建矩阵。然后,对于每个场景,至少要确定包含执行场景所需的适当条件的测试用例。例如,在下面的矩阵中,V(有效)用于表明这个条件必须是 VALID(有效的)才可执行基本流,而 I(无效)用于表明这种条件下将激活所需备选流。下表中使用的“n/a”(不适用)表明这个条件不适用于测试用例。

*测试用例ID* *场景/条件* *帐号* *密码* *选购书籍* *预期结果*
1 场景1:购物成功 V V V 成功购物
2 场景2:帐号不存在 I n/a n/a 提示帐号不存在
3 场景3:帐号错误 I V n/a 提示帐号错误,返回基本流步骤2
4 场景4:密码错误 V I n/a 提示密码错误,返回基本流步骤3
5 场景5:无选购书籍 V V I 提示选购书籍,返回基本流步骤5

我们看到以上表中,是把每个场景成立的条件进行了分析,基本上已经明确了测试用例的数量,现在只要把真实数据填充上,那么整个测试用例就完成了。

测试用例ID 场景/条件 帐号 密码 选购书籍 预期结果
1 场景1:购物成功 xu 123456 《书》 成功购物
2 场景2:帐号不存在 zhang n/a n/a 提示帐号不存在
3 场景3:帐号错误 zhou 123456 n/a 提示帐号错误,返回基本流步骤2
4 场景4:密码错误 xu 123$%^ n/a 提示密码错误,返回基本流步骤3
5 场景5:无选购书籍 xu 123456 提示选购书籍,返回基本流步骤5

sallen-场景法设计测试用例相关推荐

  1. 场景法设计测试用例atm_黑盒测试用例设计方法

    本文根据Vince整理的<测试用例设计白皮书>整理 一.黑盒测试用例方法 黑盒测试用例设计方法,主要包括等价类划分法.边界值分析法.错误推测法.因果图法.判定表驱动发.正交试验设计法.功能 ...

  2. 场景法设计测试用例atm_软件测试零基础入门:常用八大测试用例设计方法,含案例...

    测试用例的十大特点 测试用例编号.测试项.测试标题.用例属性.重要级别(高中低).预置条件.测试输入.操作步骤.预期结果.实际结果: 测试用例的编写原则:100%的覆盖需求文档,如需求变更时,测试用例 ...

  3. 场景法设计测试用例atm_测试用例设计经典面试题之电梯、杯子、笔、桌子、洗衣机、椅子、ATM等...

    测试用例设计经典面试题之电梯.杯子.笔.桌子.洗衣机.椅子.ATM等 <转载> 1.测试项目:电梯 需求测试:查看电梯使用说明书.安全说明书等 界面测试:查看电梯外观 功能测试:测试电梯能 ...

  4. 场景法设计测试用例atm_测试用例设计--场景法

    定义 现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流.这种在软件设计方面的思想也可引入到软件测试中,可以比较生动地描绘出事件触发 ...

  5. 场景分析法设计测试用例

    场景分析法设计测试用例 1. 事件流,同一事件不同的触发顺序和处理结果形成事件流,事件流分为基本流和备选流 ·1)基本流:程序从开始执行直到成功结束所经过的最短路径. ·2)备选流:一个备选流可能从基 ...

  6. 【测试】根据场景法设计在线购物系统的测试用例

    [测试]根据场景法设计在线购物系统的测试用例   在线购物系统:我们都在当当网或者网上书店构面过书籍,整个订购的过程为:用户登录到网站后,进行书籍的选择,当选好自己心仪的书籍后进行订购,这时把所需图书 ...

  7. 软件测试中用正交实验法设计测试用例

    软件测试中用正交实验法设计测试用例 正交实验法的由来 一.正交表的由来 拉丁方名称的由来 古希腊是一个多民族的国家,国王在检阅臣民时要求每个方队中每行有一个民族代表,每列也要有一个民族的代表. 数学家 ...

  8. 因果图法设计测试用例

    因果图法设计测试用例 1. 定义:因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,他适合与检查程序输入条件的各种组合情况. 2. 意义:等价类划分和边界值分析方法都是着重考虑输 ...

  9. sallen-因果图法设计测试用例

    *因果图法设计测试用例* 因果图怎么设计QQ登录界面的测试用例 我们看到有3个可以组合的项:QQ的帐号.QQ的密码.登录按钮.在测试的时候,要简化QQ的输入条件,这样才能有重点的去测试,也是主要关注用 ...

最新文章

  1. 使用optuna为机器学习模型挑选最优参数进行模型构建实战
  2. 有了 serverless,前端也可以快速开发一个 Puppeteer 网页截图服务
  3. liunx 下巧妙使用代理服务器(squid)
  4. 如何向github提交更新
  5. 有监督学习 —— KNN算法
  6. tar (child): lbzip2: Cannot exec: No such file or directory 解决方法
  7. android常见传值
  8. 数据库-Linux系统下的命令
  9. 为什么有的工人喜欢午餐和晚餐配着一瓶啤酒?
  10. C#获取%AppData%路径的方法
  11. 4.算法通关面试 --- 树和图
  12. 【中间件安全】IIS6安全加固规范
  13. Python selenium爬虫抓取船舶网站数据(动态页面)
  14. 计算机word做课程表实验报告,word表格练习(课程表的制作)
  15. 国标SVAC对飙通行标准,优势何在?
  16. 如何调用外部webservice 接口来发送短信
  17. SDWAN组网典型应用
  18. IC设计前后端常用的英文术语
  19. u盘在电脑读不出来,但别的可以读,别的u盘在我电脑又可以识别怎么回事?
  20. 鲸会务智慧景区管理解决方案

热门文章

  1. 如何修改服务器网卡mtu,合理设置MTU
  2. 有个清华妈妈的教育方法值得借鉴
  3. java 技术训练营 宋红康老师、 佟刚老师 金牌讲师课件分享
  4. 等保测评 安全计算环境之网络设备
  5. php编写的抽奖程序中奖概率算法
  6. 增强学习导论 中文版
  7. Java中的线程休眠大法系列(三)LockSupport.park()
  8. 五大最适合学习AI开发的编程语言, 你喜欢的语言上榜了吗?
  9. 基于SSM的人事管理系统
  10. 金融IC卡行业应用的发展--困境(1)