现在的软件几乎都是用事件触发来控制流程的。象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

转载于:https://www.cnblogs.com/52Test/p/7478197.html

测试用例设计方法 - 场景分析法相关推荐

  1. 测试用例设计方法_测试用例设计方法——流程分析法(场景法)

    测试用例设计方法中,流程分析方法又称为场景法,是根据不同的业务场景来编写测试用例. 流程分析主要包括三个流程: 1.   基本流:也就是正向流程,通过业务流程输入都为正确的,能够最终达到目标的流程.如 ...

  2. 测试用例设计方法---边界值分析法

    1 边界值分析法 边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法.一般,我们在设计测试用例的时候,需要将等价类法和边界值法结合起来使用. 1.1 边界范围节点 选取正好等于.刚好等于. ...

  3. 黑盒测试用例设计方法-边界值分析法

    目录 一.边界值定义 二.边界值的考虑 三.边界值的优化 四.边界值的设计用例的步骤 五.案例 六.边界值的类型 一.边界值定义 边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法.通常边 ...

  4. 软件测试用例设计方法-等价类划分法

    本篇文章,来分享大家比较熟悉的测试用例设计方法--等价类划分法. 首先,我们可以使用上一篇文章介绍的场景法来梳理业务流程. 其次,根据流程中的每个节点的需求说明,使用等价来划分来设计用例. 定义 等价 ...

  5. 软件测试怎么测边界值,软件测试用例设计之边界值分析法(示例代码)

    软件测试用例设计之边界值分析法 一.定义 对输入或输出的边界值进行测试的一种黑盒测试方法.通常边界值分析法是作为对等价类划分法的补充,其测试用例来自等价类的边界 二.与等价类划分的区别 边界值分析法首 ...

  6. 软件测试 通用技术03 测试用例 黑盒测试用例设计方法 等价类划分法 边界值分析法 判定表法 场景法 功能图法 其他用例设计方法 用例设计方法综合选择

    文章目录 1 测试用例 1.1 测试用例的定义 1.2 测试用例模板 1.3 测试用例模板的内容 测试用例编号 测试项 依赖用例 测试步骤 测试数据 预期结果 测试结果 测试人 备注 2 测试用例编写 ...

  7. 软件测试用例设计方法-场景法

    从本篇文章开始,进入到测试用例设计方法的分享,第一个要分享的方法就是,场景法. 相信对测试有一定基础的你会感到奇怪:用例设计方法,不是应该从等价类划分法说起吗?为什么一上来就直接说场景法呢? 对,如果 ...

  8. 其他测试用例设计方法-错误推测法与正交实验法

    常用的测试用例设计方法,前面基本都介绍完了,其中等价类划分法.边界值法与场景法是最常用的. 本篇文章介绍剩余两种测试方法--错误推测法与正交实验法. 错误推测法 基于经验和直觉推测程序中所有可能存在的 ...

  9. 测试用例设计之业务流程分析法

    目录 一.业务流程分析法简介 二.业务流程分析法分类使用 三.业务流程分析法好处 四.业务流程分析法设计思路 五.业务流程分析法实施步骤 六.举例说明 6.1需求 6.2分析 6.2.1测试需求分析 ...

最新文章

  1. BootStrap的下载及使用方法
  2. 手写html基础格式,手写服务器_HTML 简单入门知识
  3. POJ 3635 Full Tank?
  4. [转载]出了国才明白的10件事~(MITBBS ZT)
  5. bzoj 2330: [SCOI2011]糖果
  6. 阿里强化学习重排实践
  7. full gc JAVA_java触发full gc的几种情况概述
  8. java中计时器的用法Timer和TimerTask的用法__java中利用Timer与TImerTask 计时器间隔执行任务...
  9. 解析云原生2.0架构设计的8大关键趋势
  10. Python Windows安装
  11. java-TreeSet进行排序的2种方式
  12. mysqli得到记录数量
  13. MES助力中国制药行业 (GMP)
  14. rabbitmq创建缓存连接工厂
  15. 安卓逆向_2 --- Androidkiller,apktool、dex2jar、jd-gui、jadx反编译工具 的 安装、设置及使用教程
  16. 关于/etc/login.defs
  17. ArchLinux初次进入系统时触摸板可以移动鼠标但是无法点击的问题
  18. java epics_Visual Paradigm敏捷开发教程(7):如何管理Epics
  19. SQL查询JSON格式的字段值 JSON_UNQUOTE与JSON_EXTRACT 去除SQL中双引号
  20. 惠普计算机使用方法,惠普笔记本电脑功能键(HP/联想等笔记本键盘fn键使用说明大全)...

热门文章

  1. MySQL 基础 ———— 连接查询
  2. python做网络的仿真_用python自动化仿真HFSS,超简易
  3. oracle 根据用户备份,Oracle基于用户的备份及恢复
  4. 联想平板刷机机器人_消费终端年出货量破1.2亿,杨元庆:联想是智能化转型的赋能者...
  5. stm32 NVIC EXTI
  6. matlab guide实现多级界面
  7. python常用进制转换の方法
  8. php保存gbk字符串,php判断字符串gbk/utf8编码和转换
  9. java字节流转字符流的步骤_字节流-java入门基础笔记-51CTO博客
  10. python 概率分布类型检验_统计学:假设检验Python案例实现+概率论基础知识回顾...