场景法

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

这种在软件设计方面的思想也可引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行。

通过用例场景描述用例执行的路径,从用例开始到结束遍历这条路径上所有基本流和备选流。

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

定义

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

基本流:按照正确的业务流程来实现的一条操作路径(模拟正确的操作流程)。仅有一个基本流。

备选流:导致程序出现错误的操作流程(模拟错误的操作流程)。

image-20210618202605904

场景是事件流的一个实例,由基本流或基本流和备选流中的步骤组成,表明了用户执行系统的操作序列。

场景1:基本流;

场景2:基本流,备选流1;

场景3:基本流,备选流1,备选流2;

场景4:基本流,备选流1,备选流4;

场景5:基本流,备选流3;

场景6:基本流,备选流3,备选流1;

场景7:基本流,备选流3,备选流1,备选流2;

场景8:基本流,备选流4;

场景9:基本流,备选流3,备选流4。

图中经过用例的每条路径都用基本流和备选流来表示。

直黑线表示基本流,是经过用例的最简单的路径。

备选流用不同的彩色表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中(如1和3);也可能起源于另一个备选流(如2),或者终止用例而不再重新加入到某个流(如2和4)。

测试思想

根据需求规格说明书中的用例所包含的事件流信息构造场景并设计相应的测试用例使每个场景至少发生一次。

步骤

  1. 根据说明,描述出程序的基本流及各项备选流
  2. 根据基本流和各项备选流生成不同的场景。
  3. 对每一个场景生成相应的测试用例。
  4. 对生成的所有测试用例重新审查,去掉多余的测试用例,确定测试用例后,为每一个测试用例确定测试数据值。

案例

测试QQ登录功能

  1. 输入正确的账号和密码后点击“登录”按钮,程序能正常登录 。
  2. 不输入账号和密码,直接点击“登录”按钮,程序应给出错误提示。
  3. 输入正确的账号,错误的密码后点击“登录”按钮,程序应给出错误提示。
  4. 输入正确的账号,不输入密码,点击“登录”按钮,程序应给出错误提示。
  5. 不输入账号,输入正确的密码,点击“登录”按钮,程序应给出错误提示。
  6. 输入错误的账号,正确的密码,点击“登录”按钮,程序应给出错误提示。

使用银行卡取款

步骤一:根据说明,描述出程序的基本流及各项备选流
  1. 基本流
    1. 插入银行卡:客户将银行卡插入ATM机的读卡器
    2. 验证银行卡:ATM机从银行卡的磁条中读取账户代码,并检查它是否属于可以接受的银行卡
    3. 输入密码:ATM机要求客户输入密码
    4. 验证密码:确定该密码是否正确
    5. 进入ATM主界面:ATM显示在本机中可用的各种选项
    6. 取款并选择金额:客户选择“取款”,并选择取款金额
    7. ATM机验证:ATM机进行验证账户余额是否满足以及总取款金额是否满足要求,验证ATM机内现金是否够用
    8. 更新账户余额、出钞:验证成功,更新账户余额,输出现金,提示用户收取现金
    9. 返回主界面
  2. 备选流
    1. 银行卡无效:提示错误并退卡
    2. 密码错误:提示错误,并判断是否3次错误
    3. 密码3次错误:吞卡
    4. 账户余额不足:提示错误并退卡
    5. 总取款金额超出当日可取限额:提示错误并退卡
    6. ATM机余额不足:提示错误并退卡
image-20210618205246438 image-20210618205322876
步骤二:根据基本流和各项备选流生成不同的场景
image-20210618205505873
步骤三:对每一个场景生成相应的测试用例
场景1
image-20210618205800500
场景2
image-20210618205831418
场景3,4
image-20210618205936543
场景5
image-20210618210021338
场景6
image-20210618210100696
场景7
image-20210618210152789

参考链接

软件测试方法–场景法 - 思江 - 博客园 (cnblogs.com)

三,软件测试用例设计之场景法 - 知乎 (zhihu.com)

作者

bd160jbgm

发布于

2021-06-18

更新于

2021-06-18

许可协议