技术分享 | 黑盒测试方法论—场景法

简介: 场景法就是模拟用户操作软件时的场景,主要用于测试系统的业务流程。测试不能只关注某个控件的边界值、等价类是否满足要求,也要关注它的主要功能和业务流程是否正确实现,这时就需要使用场景法来完成。

场景法就是模拟用户操作软件时的场景,主要用于测试系统的业务流程。

测试不能只关注某个控件的边界值、等价类是否满足要求,也要关注它的主要功能和业务流程是否正确实现,这时就需要使用场景法来完成。

场景法

用例场景是用来描述流经用例路径的过程,这个过程从开始到结束遍历用例中所有基本流和备选流。

  • 基本流:按照正确的业务流程来实现的一条操作路径即模拟正确的操作流程。
  • 备选流:导致程序出现错误的操作流程即模拟错误的操作流程。

现在的产品几乎都是由事件触发来控制流程的,事件触发时的情景便成了场景,而同一事件不同的出发顺序和处理结果便形成了事件流。

在使用场景法设计测试用例时,需要覆盖系统用例中的主成功场景和扩展场景,并且需要适当补充各种正反面的测试用例以及考虑出现异常场景的情形。

场景法用例设计步骤

设计场景用例首先需要根据需求规格说明得出功能模块流程图,描述出程序的基本流及备选流,其次根据基本流和备选流生成不同的场景,构造场景列表,最后对每一个场景生成相应的测试用例,对所有的测试用例重新复审,去掉多余的测试用例。确定测试用例之后,为每一个测试用例确定测试的数据值即可完成场景用例的设计。

实例

对淘宝网通过购物车购物的流程设计测试用例。

画流程图

整个业务通过流程图来表示如下图所示:

image.png888×1536 143 KB

确定基本流和备选流

基本流
  1. 进入淘宝首页
  2. 浏览商品
  3. 进入单品页
  4. 选择商品规格和数量
  5. 加入购物车
  6. 前往购物车
  7. 选择商品
  8. 结算,进入确定订单页
  9. 提交订单
  10. 付款成功
  11. 等待收获
  12. 确认收货
备选流
  1. 加入购物车时,不选择商品规格和型号,返回基本流第 4 步。
  2. 加入购物车时,商品库存不足,返回基本流第 4 步。
  3. 加入购物车时,未登录,登录后返回基本流第 3 步。
  4. 加入购物车后,继续选购,返回基本流第 4 步。
  5. 加入购物车,未选择商品,结算,返回基本流第 7 步。
  6. 支付失败,返回基本流第 8 步。
  7. 未选择商品加入购物车,退出购物,结束。
构造场景
  1. 登录后成功购物(基本流)
  2. 未选择商品规格和型号就添加购物车(基本流 + 备选流 1)
  3. 选择的商品库存不足(基本流 + 备选流 2)
  4. 未登录添加购物车(基本流 + 备选流 3)
  5. 商品添加购物车后继续购物(基本流 + 备选流 4)
  6. 进入购物车,未选择商品直接结算(基本流 + 备选流 5)
  7. 支付过程出错(基本流 + 备选流 6)
  8. 没有添加商品到购物车(基本流 + 备选流 7)
生成测试用例
用例编号 测试点 测试步骤 预期结果
1 登录后成功购物 前提条件:登录 1、进入淘宝首页 2、查看商品列表 3、点击进入单品页 4、选择商品规格和小于库存的数量 5、点击【加入购物车】 6、提示成功加入购物车 7、进入购物车页面 8、选择刚加入购物车的商品 9、点击【结算】 10、进入确认订单页 11、提交订单 12、付款成功 13、确认收货 确认收货成功,订单完成
2 单品页未选择商品规格 和型号,添加购物车, 单品页上提示需要选择 商品规格与型号 前提条件:登录 1、进入淘宝首页 2、查看商品列表 3、点击进入单品页 4、直接点击【加入购物车】 单品页上提示需要 选择商品规格与型号
3 选择的商品库存不足, 添加购物车,提示库 存不足 前提条件:登录 1、进入淘宝首页 2、查看商品列表 3、点击进入单品页 4、选择商品规格和大于库存的数量 单品页上提示库存不足
4 未登录添加购物车, 进入登录页面 前提条件:未登录 1、进入淘宝首页 2、查看商品列表 3、点击进入单品页 4、选择商品规格和小于库存的数量 5、点击【加入购物车】 进入登录页面
5 商品添加购物车后 继续购物,留在单 品页 前提条件:登录 1、进入淘宝首页 2、查看商品列表 3、点击进入单品页 4、选择商品规格和小于库存的数量 5、点击【加入购物车】 6、提示成功加入购物车 7、继续查看商品信息 可以正常查看
6 进入购物车,未选 择商品直接结算, 提示未选择商品 前提条件:登录 1、进入淘宝首页 2、查看商品列表 3、点击进入单品页 4、选择商品规格和小于库存的数量 5、点击【加入购物车】 6、提示成功加入购物车 7、进入购物车页面 8、不选择商品 9、点击【结算】 购物车提示请勾选 要结算的宝贝
7 支付过程出错,提 示支付失败,回到 确认订单页 前提条件:登录 1、进入淘宝首页 2、查看商品列表 3、点击进入单品页 4、选择商品规格和小于库存的数量 5、点击【加入购物车】 6、提示成功加入购物车 7、进入购物车页面 8、不选择商品 9、点击【结算】 10、进入确认订单页 11、提交订单 12、支付失败 回到确认订单页, 提示支付失败
8 没有添加商品到购 物车,结束购物 前提条件:登录 1、进入淘宝首页 2、查看商品列表 3、点击进入单品页 4、不点击【加入购物车】 5、关闭页面 购物流程结束

最终生成的测试用例如上表所示,这种利用场景法设计出来的测试用例一般是对于等价类和边界值的补充,通常情况下是比较完善的。

相关文章
|
7月前
|
前端开发 测试技术
可访问性测试清单/测试用例/场景
可访问性测试清单/测试用例/场景
可访问性测试清单/测试用例/场景
|
7月前
|
域名解析 JSON 测试技术
常见移动端APP测试场景
常见移动端APP测试场景
135 0
|
消息中间件 监控 测试技术
消息队列和应用工具产品体系-性能测试场景和工具
消息队列和应用工具产品体系-性能测试场景和工具
消息队列和应用工具产品体系-性能测试场景和工具
|
消息中间件 弹性计算 Java
使用阿里云性能测试工具 JMeter 场景压测 RocketMQ 最佳实践
使用阿里云性能测试工具 JMeter 场景压测 RocketMQ 最佳实践
1292 7
|
24天前
|
JavaScript 安全 编译器
TypeScript 与 Jest 测试框架的结合使用,从 TypeScript 的测试需求出发,介绍了 Jest 的特点及其与 TypeScript 结合的优势,详细讲解了基本测试步骤、常见测试场景及异步操作测试方法
本文深入探讨了 TypeScript 与 Jest 测试框架的结合使用,从 TypeScript 的测试需求出发,介绍了 Jest 的特点及其与 TypeScript 结合的优势,详细讲解了基本测试步骤、常见测试场景及异步操作测试方法,并通过实际案例展示了其在项目中的应用效果,旨在提升代码质量和开发效率。
37 6
|
1月前
|
网络协议 关系型数据库 应用服务中间件
【项目场景】请求数据时测试环境比生产环境多花了1秒是怎么回事?
这是一位粉丝(谢同学)给V哥的留言,描述了他在优化系统查询时遇到的问题:测试环境优化达标,但生产环境响应时间多出1秒。通过抓包分析,发现MySQL请求和响应之间存在500毫秒的延迟,怀疑是网络传输开销。V哥给出了以下优化建议:
|
2月前
|
安全
红队测试方法论-课程笔记
红队测试方法论-课程笔记
红队测试方法论-课程笔记
|
3月前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
50 2
|
3月前
|
JavaScript 前端开发 数据库
数据库测试场景实践总结
本文介绍了数据库超时和应用锁表SSDB测试场景的验证方法,通过锁定数据表模拟写入失败情况,并利用SSDB进行重试。测试需开发人员配合验证功能。同时,提供了SSDB服务器登录、查询队列数量及重启服务等常用命令。适用于验证和解决数据库写入问题。
39 7
|
5月前
|
测试技术
性能测试场景设计
**性能测试场景设计**涉及模拟用户行为和负载以评估系统在真实环境下的性能、稳定性和可靠性。常用的测试方法包括:**负载测试**,模拟实际使用以检查不同负载下的性能;**压力测试**,超负荷运行以检测系统极限;**稳定性测试**,验证系统长时间高负载的稳定性;**并发测试**,检查多用户访问时的性能和问题;以及**容量测试**,确定系统处理能力和资源利用率。测试场景多样,旨在确保系统应对未来增长需求的能力。