测试用例设计方法 —— 场景法详解

news2025/2/25 8:36:43

场景法是通过运用场景来对系统的功能点或业务流程的描述,从而提高测试效果的一种方法。

场景法一般包含基本流和备用流,从一个流程开始,通过描述经过的路径来确定的过程,经过遍历所有的基本流和备用流来完成整个场景。

场景主要包括4种主要的类型:

  • 正常的用例场景
  • 备选的用例场景
  • 异常的用例场景
  • 假定推测的场景

02、基本流备用流

上图为:用例基本流和备选流(注意:备选流的起止点)

基本流:采用直黑线表示,是经过用例的最简单的路径(无任何差错,程序从开始直接执行到结束)

备选流:采用不同颜色表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中(如1和3),也可以起源于另一个备选流(如2),或终止用例,不在加入到基本流中(如4);(各种错误情况)

上图生成的场景如下:

  • 场景1:基本流
  • 场景2:基本流 备选流1
  • 场景3:基本流 备选流1 备选流2
  • 场景4:基本流 备选流3
  • 场景5:基本流 备选流3 备选流2
  • 场景6:基本流 备选流3 备选流2 备选流1
  • 场景7:基本流 备选流4
  • 场景8:基本流 备选流3 备选流4

为什么场景法能如此清晰的描述整个事件?

因为,现在的系统基本上都是由事件来触发控制流程的。

如:我们申请一个项目,需先提交审批单据,再由部门经理审批,审核通过后由总经理来最终审批,如果部门经理审核不通过,就直接退回。每个事件触发时的情景便形成了场景。而同一事件不同的触发顺序和处理结果形成事件流。这一系列的过程我们利用场景法可以清晰的描述清楚。

03、场景法设计步骤

  • 根据说明,描述出程序的基本流及各项备选流
  • 根据基本流和各项备选流生成不同的场景
  • 对每一个场景生成相应的[url=]测试用例[/url]
  • 对生成的所有测试用例重新复审,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值

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

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

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

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

04、场景法设计实例

有一个在线购物的实例,用户进入一个在线购物网站进行购物,选购物品后,进行在线购买,这时需要使用帐号登录,登录成功后,进行付钱交易,交易成功后,生成订购单,完成整个购物过程。

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

  • 基本流:登录网站,选购物品,账号登录,付钱交易,生成订单
  • 备选流:无账号,账号或密码错误,账号没有钱,账号余额不足 用户退出系统

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

  • 场景1:登录网站,选购物品,账号登录,无账号
  • 场景2:登录网站,选购物品,账号登录,账号或密码错误
  • 场景3:登录网站,选购物品,账号登录,付钱交易,账号没有钱
  • 场景4:登录网站,选购物品,账号登录,付钱交易,账号余额不足
  • 场景5:登录网站,选购物品,账号登录,付钱交易,生成订单
  • 场景6:登录网站,选购物品,账号登录,用户退出系统

3、根据场景生成相应的测试用例

测试用例ID场景/条件账号密码余额预期结果

  • 场景1:无账号In/an/a提示无账号
  • 场景2:账号或密码错误(账号错误,密码正确)IVn/a提示账号或密码错误重新输入
  • 场景2:账号或密码错误(账号正确,密码错误)VIn/a提示账号或密码错误重新输入
  • 场景3:账号余额不足VVI提示账号余额不足
  • 场景4:账号没有钱VVI提示账号余额不足
  • 场景5:购物成功VVV生成订单
  • 场景6:操作中退出系统VV用户退出系统

4、根据上表,设计数据,填入数据

测试用例ID场景/条件账号密码余额预期结果

  • 场景1:无账号hn/an/a提示无账号
  • 场景2:账号或密码错误(账号错误,密码正确)f0n/a提示账号或密码错误重新输入
  • 场景2:账号或密码错误(账号正确,密码错误)ffIn/a提示账号或密码错误重新输入
  • 场景3:账号余额不足ff010提示账号余额不足
  • 场景4:账号没有钱ff00提示账号余额不足
  • 场景5:购物成功ff0500生成订单,余额减少
  • 场景6:操作中退出系统ff0用户退出系统

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1165071.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

玻色量子“天工量子大脑”亮相中关村论坛,大放异彩

2023年5月25日至30日,2023中关村论坛(科博会)在北京盛大召开。中关村论坛(科博会)是面向全球科技创新交流合作的国家级平台行业盛会,由科技部、国家发展改革委、工业和信息化部、国务院国资委、中国科学院、…

【Linux学习笔记】进程概念(上)

1. 冯诺依曼体系结构2. 操作系统的作用3. 进程 1. 冯诺依曼体系结构 如图,这是一个冯诺依曼体系结构简图 其中这里的存储器指的是内存! 用通俗的话来解释这个图,就是数据从输入设备进入,然后进入到存储器,CPU从存储器…

【PWN · heap | UAF】[BJDCTF 2020]YDSneedGirlfriend

一篇裸的、便于学习UAF的题目和笔记 前言 UAF-释放后重用,这一题和wiki上教学的那一题一样,是纯的裸UAF题目 一、题目 二、分析 题目中del函数,在释放申请的堆块后,并没有将置零,存在UAF漏洞。 分析add函数&#xf…

Tailwind CSS vs 现代CSS,Tailwind CSS 会像CSS-in-JS 一样亡?

本文是 关于Tailwind CSS 与 现代 CSS之间比较的文章。文章中作者详细比较了这两种CSS开发方法的优缺点。他指出,Tailwind CSS是一种基于类的CSS框架,提供了快速开发网站的便利性,但可能导致HTML代码的臃肿。另一方面,现代CSS方法…

[双指针] (四) LeetCode 18.四数之和

[双指针] (四) LeetCode 18.四数之和 文章目录 [双指针] (四) LeetCode 18.四数之和题目解析解题思路代码实现总结 18. 四数之和 题目解析 (1) 从一个数组中找一个目标值target (2) target nums[a] nums[b] nums[c] nums[d] 解题思路 和上一道题三数之和一样, 我们把四…

刷到这篇文章的老师,就是老天在帮你

作为一名奋斗在教育战线的老师,是否曾在成绩查询这个环节中倍感头大? 统计是个繁琐又重要的工作,但有了正确的工具,一切都变得无所谓! 什么是成绩查询? 成绩查询,顾名思义,就是学生…

uni-app 应对微信小程序最新隐私协议接口要求的处理方法

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一,问题起因 最新在开发小程序的时候,调用微信小程序来获取用户信息的时候经常报错一个问题 fail api scope is not declared in the privacy agreement,api更具公告…

Linux | 文件系统

目录 前言 一、预备知识 二、文件相关的系统调用 1、C语言的文件操作 2、系统调用接口 (1)open函数 (2)close函数 (3)write函数 (4)read函数 3、代码实操 三、深入理解文…

k8s:endpoint

在 Kubernetes 中,Endpoint 是一种 API 对象,它用于表示集群内某个 Service 的具体网络地址。换句话说,它连接到一组由 Service 选择的 Pod,从而使它们能够提供服务。每个 Endpoint 对象都与相应的 Service 对象具有相同的名称&am…

python判断图片主颜色

一 、 问题:python判断图片主颜色 python判断图片主颜色(HSV) 二 、 项目背景: app选项是否能被点击,判断执行逻辑。做自动化测试的朋友肯定遇到好多次,按钮属性无法判别时,就需要自己将app选…

shell script中的数值运算declare和$((运算式 ))

linux中变量定义默认是字符串类型,如要进行数值运算,需要先声明变量类型,或者通过固定格式来计算 看案例 如果不通过固定格式,直接 echo 55 如图,结果显示的55本身 可以写成 declare -i var#声明变量integrate类型&…

网络架构学习之FCNVMB(基于U-Net架构)

目录 一、U-Net介绍 1.1 网络简单介绍 1.2 网络特点 二、FCNVMB介绍 2.1 文章简介 2.2 网络简单介绍 2.3 代码介绍 2.4 跳跃连接 2.5 训练过程 2.6 FCNVMB与InversionNet的比较 一、U-Net介绍 1.1 网络简单介绍 U-Net是基于全卷积网络下一个语义分割应用于生物医学的深…

PC端视频编辑处理的全方位解决方案

视频已经成为企业传播信息、展示品牌形象的重要工具。然而,制作高质量的视频并非易事,需要专业的技术和设备。这就是美摄科技发挥作用的地方。我们为企业提供一站式的PC端视频编辑处理解决方案,帮助企业轻松制作出专业级别的视频。 美摄科技…

Kubernetes 架构

Kubernetes 架构 Kubernetes 最初源于谷歌内部的 Borg,提供了面向应用的容器集群部署和管理系统。Kubernetes 的目标旨在消除编排物理 / 虚拟计算,网络和存储基础设施的负担,并使应用程序运营商和开发人员完全将重点放在以容器为中心的原语上进行自助运营。Kubernetes 也提…

2021~2023年度长垣起重机博览会最佳产品彩页(修订中)

1.河南恒达 比较完善的起重量限制器产品线分类,提供了监控参数一览表。 2.沪源电机 详细的电机参数,这基本上可以作为电机发展的历史资料来搜集。 包含效率,功率因数,堵转电流等其他厂商很少给出的参数,可以做手册用…

【Redis】安装(Linuxwindow)及Redis的常用命令

Redis简介 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。 它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复…

2024年天津中德应用技术大学专升本招生专业限制目录

2024年天津中德应用技术大学专升本招生专业限制 专科可允许报考的专业目录范围 机械电子工程: 机电一体化技术、数控技术、数控设备应用与维护、模具设计与制造、精密机械技术、材料工程技术、机械设计与制造、计算机辅助设计与制造、焊接技术与自动化、电气自动化…

Yolov8目标识别与实例分割——版本比对与原理解析

前言 YOLO是一种基于图像全局信息进行预测并且它是一种端到端的目标检测系统,最初的YOLO模型由Joseph Redmon和Ali Farhadi于2015年提出,并随后进行了多次改进和迭代,产生了一系列不同版本的YOLO模型,如YOLOv2、YOLOv3、YOLOv4&a…

Java学习_day07_类的构造器代码块继承封装多态

文章目录 构造器格式注意点使用 代码块格式注意 继承格式注意点 封装包声明包导包注意点 访问修饰符 多态格式注意点代码演示 构造器 Java中每个类都至少有一个构造器,当程序员没有明确编写构造器时,Java编译器会自动为类添加一个无参的构造器。构造器通…

vue封装独立组件:实现分格密码输入框/验证码输入框

目录 第一章 实现效果 第二章 核心实现思路 第三章 封装组件代码实现 第一章 实现效果 为了方便小编的父组件随便找了个页面演示的通过点击按钮,展示子组件密码输入的输入框通过点击子组件输入框获取焦点,然后输入验证码数字即可子组件的确定按钮是验…