影子
本来想直接跳过场景法的,今天群友提出问题:
1、面试官问:场景法举例说明,怎么回答?
2、群友热心回答:正向流和逆向流,基本流和备选流
场景法介绍
场景业务流通常分为基本流、备选流、异常流程
基本流:基本流表示通过业务流程时输入都正确,能达到目标的流程。
(插卡–》输入正确密码–》输入金额–》取款–》取卡)
备选流:备选流表示通过业务流程时输入错误(或者操作错误)导致流程存在反复,但是经过纠正后仍能达到能达到目标的流程
(插卡–>输入错误密码–》输入正确密码–》输入金额–》取款–》取卡)
异常流:异常流表示通过业务流程时输入错误(或者操作错误)产生异常终止流程
(插卡–>输入3次错误密码–》吞卡)
结合例子和文字描述就很清楚了:
基本流:
业务流程开始——业务流程结束
(1)只有1种情形,中间的所有业务流程也是正确的,最后达到的结果是正确结束,这个场景是一个基线。
备选流:
(1)业务流程开始——业务流程存在反复——业务流程结束
(2)业务流程开始——业务流程存在反复——业务流程中断——未结束
异常流:
业务流程开始——业务流程中断——未结束
在这种情况下正确的业务流程没有走完
一个重要的测试模块就是登录,我们的登录方式是密码+短信,密码输错5次后账号会冻结,短信验证码有效时间是200s,验证错误超过3次后,短信验证码也会失效。
基本流:
(1)输入正确账号——输入正确密码——点击登录,获取短信验证码成功——200s内输入正确短信验证码——再次点击登录按钮——登录成功——返回上次登录时间和IP——登录日志记录正确
备选流:
(1)输入正确账号——输入四次错误密码——输入正确密码——点击登录,获取短信验证码成功——200s内输入正确短信验证码——再次点击登录按钮——登录成功——返回上次登录时间和IP——登录日志记录正确
(2)输入正确账号——输入五次错误密码——输入正确密码——点击登录,提示账号已被冻结——登录失败——登录日志记录正确
异常流:
(1)输入正确账号——输入错误密码——登录失败——登录日志记录正确
(2)输入冻结账号——输入正确密码——登录失败——登录日志记录正确
这里强调一下,场景流梳理实际上是业务的梳理,意味着相关的业务场景必须都考虑进去,真正达到业务流程开始从业务流程结束 实际的业务场景要考虑的更多 区分备选流和异常流主要是看用例结束后业务流程是否是正确结束
步骤:
1、首先确定执行用例场景所需的数据元素
2、然后构建矩阵,最后要确定包含执行场景所需的适当条件的测试用例。
在矩阵中,V表示这个条件必须是有效的才可执行基本流,I表示这种条件下将激活所需备选流 ,n/a表示这个条件不适用于测试用例。
表示:
每一个场景都需要确定测试用例,一般采用矩阵或决策表来确定和管理测试用例。第一行是测试用例ID、场景/条件、测试用例中涉及的所有数据元素和预期结果。
【举例1:】
还是登录场景,我们的登录方式是密码+短信,密码输错5次后账号会冻结15分钟,短信验证码有效时间是200s,验证错误超过3次后,短信验证码也会失效。
符号定义:
V:Valid
I:Invalid
n/a:Not Applicable
涉及到的数据元素
账号、密码、短信验证码
这里举的例子比较简单
扩展例子
游戏签到场景测试用例
这里先看一下游戏策划书写的游戏签到策划方案
https://gameinstitute.qq.com/community/detail/111163
其中:附上一个APP的签到界面
再配上一个游戏的签到界面。
1、进入签到界面,页面显示正确和美观
2、第N(N=1,2,3,4,5,6,7)天签到,当天签到状态变为已签到,领取当天的签到奖励
3、第N(N=1,2,3,4,5,6,7)天没有签到,当天签到状态变为未签到,无法领取当天的到奖励
4、连续M(M=1,2,3,4,5,6,7)天签到,当天签到状态变为已签到,领取到当天的签到奖励和累计的签到奖励
5、连续M(M=1,2,3,4,5,6,7)天签到中断,当天签到状态变为未签到,无法领取到当天的签到奖励和累计的签到奖励,重新计算累计签到时间
6、当天签到后,领取签到奖励,奖励领取状态变更正确,文字提示,增加到累计签到时间
7、奖励领取成功,奖励发放的物品种类、数量增加正确,并且领到的物品能够在游戏内正常的消耗和被使用
8、一天签到结束后,当天不再显示签到界面,如果当天一直不签到,当天登录首先进入的是签到界面
9、一段时间的签到活动时间(比如:一周)结束后,是否开始新一轮的游戏签到7天活动
10、签到的时间规则:在约定时间范围内签到,签到得到今天的奖励,在约定时间外签到,可能没有奖励(一般情况下,签到时间范围和自然日有区别)
11、签到对所有等级用户都开放,VIP等级有加倍奖励
异常场景:
1、连续点击N次签到,只领取一次奖励,
2、多次领取一天签到、累计签到奖励
扩展:补签功能
1、补签的天数+实际签到天数<=最大签到天数
2、补签次数限制
其实签到的这个例子并不是找的特别好,但我觉得有代表性。你们发现没有:当我把场景法的矩阵顺时针旋转90度时,是不是演化成了判定表,这是因为签到只有两种状态。
但是我觉得你在面试游戏测试的时候,面试官肯定想考察的是你的场景考虑的全不全的问题。也就是文章末尾提到的整体业务感觉的问题。
最后,总结一下场景法和因果图(用例设计二和三提到的方法)两种方法的区别和适用范围。
因果图的分析步骤:
1、在需求规格说明书中找出哪些是输入条件(原因),哪些是输出条件(结果)
2、判定表的每一行首写输入条件、输出条件
3、根据原因和结果找对应的逻辑关系,用符号0,1,-分别表示满足、不满足和无关,每一列是一个用例
场景法的分析步骤:
1、根据说明,找出基本流
2、根据基本流中不同的数据元素据此找出备选流和异常流
3、根据备选流和异常流构造新的场景
因果图的适用范围
因果关系很复杂,用场景法很难找到一个基本流时,不妨关注需求规格说明,找出输入条件和输出条件的因果关系,利用因果图法和判定表反而能快速梳理条件之间的因果关系
eg:上一篇博文中的售货机就不使用场景法,因为你用场景法很难去构造一个基本流。没有了基本流作为一个准绳,用场景法构造会很费脑力,而且也很容易忽略条件之间的因果关系
场景法的适用范围
场景法多用于系统的典型业务和典型功能,首先能很方便的构造一个基本流,因果图侧重因果关系,用0和1区分有效无效的数据元素,不如场景法的矩阵图来的直观,也不能穷尽场景法的所有场景
(因为场景法不只有0和1两种场景,举个例子:登录场景账号状态的校验有账号是否输入、账号是否存在、账号是否过期等校验,用判定表会增加行数,也不方便于我们理清所有的业务流)
场景法的注意点
注意:
场景法偏重于大的业务流程,目的是用业务流把各个孤立的功能点串起来,所以在用场景法设计用例时,测试人员必须建立整体业务感觉,避免忽略业务流程要点
当然,在整理测试用例的过程中,我们也不要忘记使用等价类和边界值方法。
汪小兴918
原文链接:https://blog.csdn.net/baidu_37837739/article/details/102823514