场景法是经过运用场景来对系统的功能点或业务流程的描述,从而提升测试效果的一种方法。数据库
场景法通常包含基本流和备用流,从一个流程开始,经过描述通过的路径来肯定的过程,通过遍历全部的基本流和备用流来完成整个场景。场景主要包括4种主要的类型:正常的用例场景,备选的用例场景,异常的用例场景,假定推测的场景。测试
上图为,用例基本流和备选流(注意:备选流的起止点)网站
基本流:采用直黑线表示,是通过用例的最简单的路径(无任何差错,程序从开始直接执行到结束)spa
备选流:采用不一样颜色表示,一个备选流可能从基本流开始,在某个特定条件下执行,而后从新加入基本流中(如1和3),也能够起源于另外一个备选流(如2),或终止用例,不在加入到基本流中(如4);(各类错误状况)设计
上图生成的场景以下:orm
场景1:基本流事件
场景2:基本流 备选流1图片
场景3:基本流 备选流1 备选流2ci
场景4:基本流 备选流3get
场景5:基本流 备选流3 备选流2
场景6:基本流 备选流3 备选流2 备选流1
场景7:基本流 备选流4
场景8:基本流 备选流3 备选流4
为何场景法能如此清晰的描述整个事件?由于,如今的系统基本上都是由事件来触发控制流程的。如:咱们申请一个项目,需先提交审批单据,再由部门经理审批,审核经过后由总经理来最终审批,若是部门经理审核不经过,就直接退回。每一个事件触发时的情景便造成了场景。而同一事件不一样的触发顺序和处理结果造成事件流。这一系列的过程咱们利用场景法能够清晰的描述清楚。
1.根听说明,描述出程序的基本流及各项备选流
2.根据基本流和各项备选流生成不一样的场景
3.对每个场景生成相应的测试用例
4.对生成的全部测试用例从新复审,去掉多余的测试用例,测试用例肯定后,对每个测试用例肯定测试数据值
对于每个场景都须要肯定测试用例。能够采用矩阵或决策表来肯定和管理测试用例。
下面范例中显示了一种通用格式,其中各行表明各个测试用例,而各列则表明测试用例的信息。
本例中,对于每一个测试用例,存在一个测试用例ID、条件(或说明)、测试用例中涉及的全部数据元素(做为输入或已经存在于数据库中)以及预期结果。
经过从肯定执行用例场景所需的数据元素入手构建矩阵。而后,对于每一个场景,至少要肯定包含执行场景所需的适当条件的测试用例。例如,在下面的矩阵中,V(有效)用于代表这个条件必须是 VALID(有效的)才可执行基本流,而 I(无效)用于代表这种条件下将激活所需备选流。下表中使用的“n/a”(不适用)代表这个条件不适用于测试用例。
有一个在线购物的实例,用户进入一个在线购物网站进行购物,选购物品后,进行在线购买,这时须要使用账号登陆,登陆成功后,进行付钱交易,交易成功后,生成订购单,完成整个购物过程。
1. 根听说明,描述出程序的基本流及各项备选流
基本流:登陆网站,选购物品,帐号登陆,付钱交易,生成订单
备选流:无帐号,帐号或密码错误,帐号没有钱,帐号余额不足 用户退出系统
2. 根据基本流和各项备选流生成不一样的场景
场景1:登陆网站,选购物品,帐号登陆,无帐号
场景2:登陆网站,选购物品,帐号登陆,帐号或密码错误
场景3:登陆网站,选购物品,帐号登陆,付钱交易,帐号没有钱
场景4:登陆网站,选购物品,帐号登陆,付钱交易,帐号余额不足
场景5:登陆网站,选购物品,帐号登陆,付钱交易,生成订单
场景6:登陆网站,选购物品,帐号登陆,用户退出系统
3. 根据场景生成相应的测试用例
测试用例ID |
场景/条件 |
帐号 |
密码 |
余额 |
预期结果 |
1 |
场景1:无帐号 |
I |
n/a |
n/a |
提示无帐号 |
2 |
场景2:帐号或密码错误(帐号错误,密码正确) |
I |
V |
n/a |
提示帐号或密码错误从新输入 |
3 |
场景2:帐号或密码错误(帐号正确,密码错误) |
V |
I |
n/a |
提示帐号或密码错误从新输入 |
4 |
场景3:帐号余额不足 |
V |
V |
I |
提示帐号余额不足 |
5 |
场景4:帐号没有钱 |
V |
V |
I |
提示帐号余额不足 |
6 |
场景5:购物成功 |
V |
V |
V |
生成订单 |
7 |
场景6:操做中退出系统 |
V |
V |
用户退出系统 |
4. 根据上表,设计数据,填入数据
测试用例ID |
场景/条件 |
帐号 |
密码 |
余额 |
预期结果 |
1 |
场景1:无帐号 |
h |
n/a |
n/a |
提示无帐号 |
2 |
场景2:帐号或密码错误(帐号错误,密码正确) |
f |
0 |
n/a |
提示帐号或密码错误从新输入 |
3 |
场景2:帐号或密码错误(帐号正确,密码错误) |
ff |
I |
n/a |
提示帐号或密码错误从新输入 |
4 |
场景3:帐号余额不足 |
ff |
0 |
10 |
提示帐号余额不足 |
5 |
场景4:帐号没有钱 |
ff |
0 |
0 |
提示帐号余额不足 |
6 |
场景5:购物成功 |
ff |
0 |
500 |
生成订单,余额减小 |
7 |
场景6:操做中退出系统 |
ff |
0 |
用户退出系统 |