• 12
  • 12
分享
  • 软件测试用例设计场景法——软件测试圈
  • 饭团🍙 2021-12-20 15:52:38 字数 2939 阅读 2437 收藏 12

场景法

影子

本来想直接跳过场景法的,今天群友提出问题:

1、面试官问:场景法举例说明,怎么回答?

2、群友热心回答:正向流和逆向流,基本流和备选流

场景法介绍

场景业务流通常分为基本流、备选流、异常流程

1.png

基本流:基本流表示通过业务流程时输入都正确,能达到目标的流程。

(插卡–》输入正确密码–》输入金额–》取款–》取卡)

备选流:备选流表示通过业务流程时输入错误(或者操作错误)导致流程存在反复,但是经过纠正后仍能达到能达到目标的流程

(插卡–>输入错误密码–》输入正确密码–》输入金额–》取款–》取卡)

异常流:异常流表示通过业务流程时输入错误(或者操作错误)产生异常终止流程 

(插卡–>输入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次后,短信验证码也会失效。

2.jpg

符号定义:

V:Valid

I:Invalid

n/a:Not Applicable

涉及到的数据元素

账号、密码、短信验证码

这里举的例子比较简单

扩展例子

游戏签到场景测试用例

这里先看一下游戏策划书写的游戏签到策划方案

https://gameinstitute.qq.com/community/detail/111163

其中:附上一个APP的签到界面

3.jpg

再配上一个游戏的签到界面。

4.jpg

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

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 引言对于产品的手机项目(应用软件),主要是进行系统测试。而针对手机应用软件APP的系统测试,我们通常从如下几个角度开展:功能模块测试、兼容性测试、安装和卸载测试、软件更新测试、性能测试、用户体验性测试、交叉事件测试、用户界面测试等。功能测试要点及常见缺陷常见的功能类缺陷APP崩溃这是测试中的常见问题,这类问题也是非常严重的,会直接影响用户对产品的第一印象,例如我们正在使用某个APP,正在使用突然应用就停止响应,界面上弹出“强制关闭错误”的窗口,需要强制关闭应用,或者正在使用时出现闪退的现象。这些情况都很影响用户的体验,导致用户卸载该APP。通用的触发移动APP崩溃的测试场景,如下:验证在有不同...
            13 14 1882
            分享
          •   比如输入框、列表、某功能。  首先冷静下来,按照平时的测试思路,假如接到这个需求会怎么捋、怎么写case。第一步,是明确需求本身,明确需求背景,明确需求目的,明确需求面对的用户,有赖于需求文档设计稿给出,具体来说:  功能测试  正向逻辑  失败逻辑、错误逻辑、错误失败时的可理解提示  复杂流程时,各个状态随机组合排列  边界值情况:中间的随机数值&边缘值(如为空和超大)  数据来源,数据形式  跳转其他页面,与其他页面的数据一致性  状态变化,登录校验后的状态变化  界面的展示,文案超长时的处理  与手机硬件的交互  网络情况:弱网断网时,wif4g切换时  设备兼容测试  涉及...
            0 0 917
            分享
          •   任何新的职位刚开始的时候都是大家的技术参差不齐,只要能干,肯动脑,会计算机就可以在行业里找个饭吃,具体混成什么样,看本事吧。  随着现代科技的发展,软件测试行业要求越来越高,企业对于人员的需求比以前越来越专业,要懂什么技术,编程语言肯定是要会的,性能、安全、自动化甚至有的还要求测开等等。你也别觉得烦,这是事实。  总结的软件测试工程师发展规划路线,希望会给你带来灵感和方向:  ·测试基础,了解测试的基础技能,掌握主流缺陷管理工具的使用,熟练测试环境的操作与运维;  ·Linux必备知识,Linux作为现在最流行的软件环境系统,一定要掌握,目前的招聘要求有Linux能力;  ·Shell脚本...
            0 0 1340
            分享
          • 测试环境是QA做好检测运行的前提条件。平稳和可控的测试环境,能够使测试人员在实行测试用例时不用花费额外的时间去维护。有一些企业运维或是研发部会帮忙准备好测试环境,可是QA要是一味依赖别的部门,会局限检测运行的做好。一、什么是测试环境测试环境,指为了更好地做好软件测试运行所必不可少的计算机硬件、软件、网络设备、历史数据的总称,简单点来说,测试环境=硬件+软件+网络+数据准备+测试工具。硬件:指检测必不可少的服务器、客户端、网络连接等辅助设备。软件:指测试软件运行时的操作系统、数据库以及其他应用软件。网络:指被测软件运行时的网络系统、网络结构及其别的网络设备组成的环境等。数据准备:一般指测试数据的...
            0 0 526
            分享
          • 读者提问:阿常,我是培训班出来的,没有实际项目经验,害怕面试的时候通不过,有什么招可以教教我吗 ?阿常回答:培训班应该有实战项目,你把它当成公司项目来实践,一个月下来也能有所收获。另外你可以去牛客网上搜集一下面经,多刷面试题,参与一些企业项目实战,以及进行AI模拟面试。这些都可以帮助你提升面试的通过率。准备得差不多了,再找一家公司练练手,找一下面试的感觉。了解一下你的项目会被问到什么样的问题,针对被问到的技术点,理解它的原理。不要把心仪的公司放在第一家来面,多面几家,大胆地说,面试完总结经验,查漏补缺,争取在下一场面试中表现得更好。更多面经细节可以查看阿常之前写的面经系列文章?。往期...
            0 0 984
            分享
      • 51testing软件测试圈微信