本文节选自霍格沃兹测试开发学社内部教材
场景法就是模拟用户操作软件时的场景,主要用于测试系统的业务流程。
测试不能只关注某个控件的边界值、等价类是否满足要求,也要关注它的主要功能和业务流程是否正确实现,这时就需要使用场景法来完成。
场景法
用例场景是用来描述流经用例路径的过程,这个过程从开始到结束遍历用例中所有基本流和备选流。
- 基本流:按照正确的业务流程来实现的一条操作路径即模拟正确的操作流程。
- 备选流:导致程序出现错误的操作流程即模拟错误的操作流程。
现在的产品几乎都是由事件触发来控制流程的,事件触发时的情景便成了场景,而同一事件不同的出发顺序和处理结果便形成了事件流。
在使用场景法设计测试用例时,需要覆盖系统用例中的主成功场景和扩展场景,并且需要适当补充各种正反面的测试用例以及考虑出现异常场景的情形。
场景法用例设计步骤
设计场景用例首先需要根据需求规格说明得出功能模块流程图,描述出程序的基本流及备选流,其次根据基本流和备选流生成不同的场景,构造场景列表,最后对每一个场景生成相应的测试用例,对所有的测试用例重新复审,去掉多余的测试用例。确定测试用例之后,为每一个测试用例确定测试的数据值即可完成场景用例的设计。
实例
对淘宝网通过购物车购物的流程设计测试用例。
画流程图
整个业务通过流程图来表示如下图所示:
确定基本流和备选流
基本流
- 进入淘宝首页
- 浏览商品
- 进入单品页
- 选择商品规格和数量
- 加入购物车
- 前往购物车
- 选择商品
- 结算,进入确定订单页
- 提交订单
- 付款成功
- 等待收获
- 确认收货
备选流
- 加入购物车时,不选择商品规格和型号,返回基本流第 4 步。
- 加入购物车时,商品库存不足,返回基本流第 4 步。
- 加入购物车时,未登录,登录后返回基本流第 3 步。
- 加入购物车后,继续选购,返回基本流第 4 步。
- 加入购物车,未选择商品,结算,返回基本流第 7 步。
- 支付失败,返回基本流第 8 步。
- 未选择商品加入购物车,退出购物,结束。
构造场景
- 登录后成功购物(基本流)
- 未选择商品规格和型号就添加购物车(基本流 备选流 1)
- 选择的商品库存不足(基本流 备选流 2)
- 未登录添加购物车(基本流 备选流 3)
- 商品添加购物车后继续购物(基本流 备选流 4)
- 进入购物车,未选择商品直接结算(基本流 备选流 5)
- 支付过程出错(基本流 备选流 6)
- 没有添加商品到购物车(基本流 备选流 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、关闭页面 | 购物流程结束 |
最终生成的测试用例如上表所示,这种利用场景法设计出来的测试用例一般是对于等价类和边界值的补充,通常情况下是比较完善的。