黑盒测试用例设计 - 场景法
原理
- 现在的软件几乎都是用时间触发来控制流程的。测试时,可以以生动的描述出触发时的情景,有利于设计测试用例,同时使测试用例更容易理解和执行。
- 基本流:软件功能按照正确的事件流实现的一条正确流程。通常一个业务仅存在一个基本流,且基本流仅有一个起点和一个终点
- 备选流:除了基本流之外的各支流,包含多种不同的情况。
场景列表:
- 场景 1 基本流
- 场景 2 基本流 备选流 1
- 场景 3 基本流 备选流 1 备选流 2
- 场景 4 基本流 备选流 3
- 场景 5 基本流 备选流 4
注意:
- 场景中必须有基本流
- 场景中必须有内容从用例的开始,到用例的结束。
设计用例的步骤:
- 根据说明,描述出程序的基本流及各项备选流
- 根据基本流和各项备选流生成不同的场景
- 对每一个场景生成相应的测试用例
- 对生成的所有测试用例重新复审,去掉多余的测试用例
- 测试用例确定后,对每一个测试用例确定测试数据值
适用于:
- 场景法适用于解决业务流程清晰的系统功能
案例:ATM机的取款流程
第一步:描述出基本流和各项备选流
基本流:插卡 -> 输入密码 -> 选择取款服务 -> 选择取款金额 -> 出钞 -> 取卡
备选流:
- 卡片不是银行卡
- 卡片不是银联卡
- 密码输错一次
- 密码输错两次,第三次输入正确
- 密码输入错误三次,被吞卡
- 选择存款服务
- 选择查询服务
- 选择转账服务
- 选择取款金额
- 选择其他取款金额
- 选择查询账户金额
- ATM机没钱了
- 账户取款金额达到账户当日取款交易上限
- 取款机停电了
- 取款机掉线了
- 存入假钞
- 转账账户不存在
- 转账账户存在
第二步:根据基本流和各项备选流生成不同的场景
场景设计:
场景 1:基本流
场景 2:基本流 + 备选流 1
…
场景 19:基本流 + 备选流 18
第三步:对每一个场景生成相应的测试用例
场景 1 用例:
- 插入银联卡
- 输入正确密码
- 选择服务为取款
- 选择取款金额为500
- 等待出钞
- 取出卡片
预期结果:取出500元现金,余额-500元,并且正常取出卡片
场景 2 用例:
- 插入公交卡
- 退卡
预期结果:退出卡片
以此类推…
场景 19 用例:
- 插入银联卡
- 输入正确密码
- 选择服务为转账
- 输入转账账户
- 输入转账金额2000
- 等待转账成功
- 取出卡片
预期结果:收款账户余额+2000、转账账户余额-2000,并且正常取出卡片
第四步:对生成的所有测试用例重新复审,去掉多余的测试用例
比如将 场景一二三四合并为一条用例:
- 插卡(万事通卡)
- 换卡(银联卡)
- 输入密码(第一次输入错误)
- 再次输入密码(第二次输入错误)
- 第三次输入密码(输入正确)
- 选择服务(取款)
- 选择取款金额(1000)
- 等待出钞
- 取出卡片
预期结果:取出1000元现金,余额-500元,并正常取出卡片
第五步:测试用例确定后,对每一个测试用例确定测试数据值
- 输入密码第一次输入错误数据:123456
- 输入密码第二次输入错误数据:654321
- 输入密码第三次输入正确数据:123666
- 选择取款金额数据:100
- 选择取款金额数据:500
- 选择取款金额数据:1000
- 选择取款金额数据:其他 -> 8000
- 输入转账金额数据:1000
…