软件测试用例_软件测试用例设计实战场景法

不点蓝字,我们哪来故事? 

      目录

  •     场景法

    • 扩展例子

    • 场景法介绍

    • 影子

    • 场景法用例设计举例

    • 场景法设计用例步骤和表示

    • 场景法举例

  •      总结

  •      场景法的注意点

场景法

影子

本来想直接跳过场景法的,今天群友提出问题:1、面试官问:场景法举例说明,怎么回答?
反正我有点懵,虽然在工作过程中,我一直运用的是场景法,但我说不出场景法的观点来。2、群友热心回答:正向流和逆向流,基本流和备选流
然而,我还是非洲问号脸???

场景法介绍

首先上网查资料,给了我一个图,这个图是啥啊???场景业务流通常分为基本流、备选流、异常流程889bec735aa61f476790b853d9a5ebca.png
然后看文字:
我先放上查到的定义。·基本流:基本流表示通过业务流程时输入都正确,能达到目标的流程。

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

备选流:备选流表示通过业务流程时输入错误(或者操作错误)导致流程存在反复,但是经过纠正后仍能达到能达到目标的流程
.(插卡–>输入错误密码–》输入正确密码–》输入金额–》取款–》取卡)

异常流:异常流表示通过业务流程时输入错误(或者操作错误)产生异常终止流程 (插卡–>输入3次错误密码–》吞卡)

结合例子和文字描述就很清楚了:基本流:
业务流程开始——业务流程结束
(1)只有1种情形,中间的所有业务流程也是正确的,最后达到的结果是正确结束,这个场景是一个基线。
举个例子:就是你从起点开始,一直沿着正确的道路走,最后到达终点。备选流:
(1)业务流程开始——业务流程存在反复——业务流程结束
(2)业务流程开始——业务流程存在反复——业务流程中断——未结束
举个例子:
你从起点开始,走到中途走错了路,但是你认得路,于是沿着新的路线,虽然绕了路,但是最终还是走到了终点
你从起点开始,走到中途走错了路,但是你不认得路,于是开始探路,但是最终还是没有走到终点

异常流:
业务流程开始——业务流程中断——未结束
在这种情况下正确的业务流程没有走完
举个例子:
就是你从起点开始,走到中途走错了路,但是你被困于死迷宫,然后你就一直到不了终点

场景法用例设计举例

例子举的有点不是很恰当,但我对场景法很自信,因为我测试的项目天天在用。
一个重要的测试模块就是登录,我们的登录方式是密码+短信,密码输错5次后账号会冻结,短信验证码有效时间是200s,验证错误超过3次后,短信验证码也会失效
我先用文字描述一下基本流:
(1)输入正确账号——输入正确密码——点击登录,获取短信验证码成功——200s内输入正确短信验证码——再次点击登录按钮——登录成功——返回上次登录时间和IP——登录日志记录正确备选流
(1)输入正确账号——输入四次错误密码——输入正确密码——点击登录,获取短信验证码成功——200s内输入正确短信验证码——再次点击登录按钮——登录成功——返回上次登录时间和IP——登录日志记录正确
(2)输入正确账号——输入五次错误密码——输入正确密码——点击登录,提示账号已被冻结——登录失败——登录日志记录正确

异常流
(1)输入正确账号——输入错误密码——登录失败——登录日志记录正确
(2)输入冻结账号——输入正确密码——登录失败——登录日志记录正确

 这里强调一下,场景流梳理实际上是业务的梳理,意味着相关的业务场景必须都考虑进去,真正达到业务流程开始从业务流程结束
实际的业务场景要考虑的更多
区分备选流和异常流主要是看用例结束后业务流程是否是正确结束
  • 1

  • 2

  • 3

场景法设计用例步骤和表示

步骤:
1、首先确定执行用例场景所需的数据元素
2、然后构建矩阵,最后要确定包含执行场景所需的适当条件的测试用例。
在矩阵中,V表示这个条件必须是有效的才可执行基本流,I表示这种条件下将激活所需备选流 ,n/a表示这个条件不适用于测试用例。表示:
每一个场景都需要确定测试用例,一般采用矩阵或决策表来确定和管理测试用例。第一行是测试用例ID、场景/条件、测试用例中涉及的所有数据元素和预期结果。

场景法举例

【举例1:】
还是登录场景,我们的登录方式是密码+短信,密码输错5次后账号会冻结15分钟,短信验证码有效时间是200s,验证错误超过3次后,短信验证码也会失效5bc1c252170489f7c35e9fbef16ea76e.png符号定义:
V:Valid
I:Invalid
n/a:Not Applicable涉及到的数据元素
账号、密码、短信验证码

这里举的例子比较简单

扩展例子

游戏签到场景测试用例
这里先看一下游戏策划书写的游戏签到策划方案
https://gameinstitute.qq.com/community/detail/111163
其中:附上一个APP的签到界面acccc46ef281ba2e77104336b6f652bd.png再配上一个游戏的签到界面。a4c6465f67d9ab1b7122a34c3c23b326.png
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两种场景,举个例子:登录场景账号状态的校验有账号是否输入、账号是否存在、账号是否过期等校验,用判定表会增加行数,也不方便于我们理清所有的业务流)

场景法的注意点

注意:
场景法偏重于大的业务流程,目的是用业务流把各个孤立的功能点串起来,所以在用场景法设计用例时,测试人员必须建立整体业务感觉,避免忽略业务流程要点
当然,在整理测试用例的过程中,我们也不要忘记使用等价类和边界值方法。

最新开班信息:索要课表加微信:18910737736

1、python自动化21期实战班:年底最后一期,可预约试听!

2、python测试开发第6期实战班:年底最后一期,可预约试听!

3、零基础转行软件测试就业班 11月16日 加开一期,统招本科学员可先就业后收费!

真正的0元入学计划来了~

4591a71f222c7f3349099f13325ad936.png

44e507823041b9f7fa3949a1f3271ec5.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/534779.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux下printf语句执行时间,linux下printf中\n刷新缓冲区的疑问(已解决)

#include #include int main(void){ printf("hello world");close(STDOUT_FILENO); return 0;}//什么都不输出12345678910111234567891011#include #include int main(void){ printf("hello world\n");close(STDOUT_FILENO); …

树莓派摄像头_Arducam 8MP重磅来袭,为树莓派4B构建完全同步的双摄像头方案~

大家好&#xff0c;我是小月月。双目立体景深一直是很热门的项目&#xff0c;最近已经有不少小伙伴学会在树莓派上插两个USB摄像头了&#xff0c;这个方案可以识别静态场景中各个物体的距离远近。但是两个USB摄像头捕获到的两组图像序列的时间并不是严格同步的&#xff0c;对运…

linux 获取设备树源文件(dts)里描述的资源,Linux 获取设备树源文件(DTS)里描述的资源...

在linux使用platform_driver_register() 注册 platform_driver 时&#xff0c; 需要在 platform_driver 的probe() 里面知道设备的中断号&#xff0c; 内存地址等资源。这些资源的描述信息存放在 resource 数据结构中&#xff0c; 相同的资源存放在一个树形树形数据结构中&…

python无法安装第三方库read time out_解决pip install的时候报错timed out的问题

安装包的时候报错&#xff0c;执行&#xff1a;pip install pyinstaller问题&#xff1a;File "c:\python\python35\lib\site-packages\pip\_vendor\requests\packages\urllib3\response.py", line 357, in streamdata self.read(amtamt, decode_contentdecode_cont…

嵌入式linux文件系统类型,嵌入式Linux 的Cramfs 根文件系统配置的解决方案

当系统启动并执行到系统初始化脚本/etc/init.d/rcS 时&#xff0c;mount 命令将/mnt/yaffs 目录挂载 为ramfs 类型的随机存储文件系统&#xff0c;并在此文件系统上建立Qtopia 和Qtopia/tmp 目录[5]&#xff0c; /Qtopia/tmp 目录即为应用程序可能对文件系统进行写操作的临时文…

python nlp data_Python nlpaug包_程序模块 - PyPI - Python中文网

NLPAUG这个python库帮助您为机器学习项目增加nlp。访问此简介了解Data Augmentation in NLP。Augmenter是增广的基本元素&#xff0c;而Flow是将多个增广器组合在一起的管道。起动指南增强器TargetAugmenterActionDescriptionCharacterRandomAuginsertInsert character randoml…

Linux创始人数据结构,Linux 通用数据结构说明

device_driver include/linux/device.h struct device_driver {const char * name; /* 驱动名称 */struct bus_type * bus; /* 总线类型 */struct completion unloaded; /* 卸载事件通知机制 */ struct kobject kobj; /* sys 中…

python在浏览器运行一片空白_Webdriver启动Firefox浏览器后,页面显示空白

在使用pycharm码代码时编译总是出错&#xff0c;后来验证发现浏览器启动后出现问题。白白耗了我2个小时。我把我的解决方案写出来&#xff0c;希望对大家有帮助。1.现象&#xff1a;起初安装的时候总是能正常运行&#xff0c;有一天突然发现Webdriver打开fFirefox浏览器后&…

centos linux7修改主机名,CentOS7操作系统下永久修改主机名

操作系统&#xff1a;CentOS Linux release 7.8任务&#xff1a;修改主机名为sky9899操作步骤如下&#xff1a;[root146 ~]# hostname*.*.*.*.adsl-pool.jx.chinaunicom.com[root146 ~]# hostnamectlStatic hostname: localhost.localdomainTransient hostname: *.*.*.*.adsl-…

稀疏自编码器_自编码(AutoEncoder)模型及几种扩展之二

4. 稀疏自编码假设我们只有一个没有类别标签的训练样本集合{x(1),x(2)...},一个自编码神经网络就是一种非监督学习算法&#xff0c;它使用BP算法&#xff0c;并将目标值设为&#xff1a; y(i)x(i)。我们的目标是希望得到hW,b(X)≈x。用aj(2)(x)表示输入向量x对隐藏层单元j的激活…

linux x86 关机 过程,linux在x86上的中断处理过程(详细)

Linux在x86上的中断处理过程一&#xff1a;引言在Intel的文档中,把中断分为两种。一种是异常,也叫同步同断。一种称之为中断,也叫异常中断。同步中断指的是由CPU控制单元产生,之所以称之为同步,是因为只有一条指令执行完毕后才会发出中断。例如除法运算中,除数为零的时候,就会产…

thymealf 高级用法_Thymeleaf

JSP 已经存在很长时间了&#xff0c;很多公司还在用&#xff0c;它看起来像 HTML&#xff0c;但其实并不是&#xff0c;它有一些缺陷。比如&#xff0c;每个页面顶部都需要有如下声明与 Servlet 规范紧密耦合的&#xff0c;依赖 Servlet 容器(意味着无法直接浏览效果)。工作过的…

linux 显卡转码,ffmpeg用GPU转码

8种机械键盘轴体对比本人程序员&#xff0c;要买一个写代码的键盘&#xff0c;请问红轴和茶轴怎么选&#xff1f;有些视频编码太屌&#xff0c;播放起来对CPU消耗巨大&#xff0c;而在电视上或者电视盒子上看视频&#xff0c;编码就需要合适&#xff0c;楼主用的FireTV Stick&a…

ant实例 jmeter_Jmeter+ant搭建环境

1.将jmeter3.3和ant1.9.6放在一个文件夹下2.配置环境a、安装jdk&#xff0c;配置环境变量变量名&#xff1a; JAVA_HOME变量值&#xff1a; C:\Program Files\Java\jdk1.8.0_91 (即jdk安装的位置)变量名&#xff1a; Path (这个变量名已在系统变量中存在&#xff0c;现只需在这…

c语言课程设计作业五子棋,C语言课程设计报告五子棋游戏课程设计

C语言课程设计报告五子棋游戏课程设计 C语言课程设计报告_五子棋游戏-课程设计C语言课程设计报告_五子棋游戏|c语言程序代码编程小程序设计|c语言课程设计报告课程案例**********************************************************//* 本程序在Turbo C或Borland C下编译通过 */…

sqlmap图形化_Web安全:SQL注入工具

原标题&#xff1a;Web安全&#xff1a;SQL注入工具SQL注入工具主要是针对Web服务器后台数据库的注入&#xff0c;其主要目的是获取数据库中的数据。以前常用的SQL注入工具有啊D注入工具及Domain(明小子注入工具)&#xff0c;现在常用的SQL注入工具有HackBar、SQLMap、Pangolin…

在c语言程序中 对文件进行操作首先要,《C语言程序设计》试题八及答案

版权声明&#xff1a;以上文章中所选用的图片及文字来源于网络以及用户投稿&#xff0c;由于未联系到知识产权人或未发现有关知识产权的登记&#xff0c;如有知识产权人并不愿意我们使用&#xff0c;如果有侵权请立即联系&#xff1a;55525090qq.com&#xff0c;我们立即下架或…

vue中多行文本标签_vue控制多行文字展开收起的实现示例

这里讲一下&#xff0c;如何使用vue控制多行文字展开收起(也叫控制文字展开隐藏)。效果&#xff1a;这里设置了控制三行&#xff0c;如果超过三行会展示&#xff0c;“显示更多” 超出文字显示省略号。点击“显示更多”会展开所有文案&#xff0c;按钮变成“收起”(未超出三行的…

c语言什么时候需要加分号,归纳一下html中什么时候需要分号什么时候需要冒

公告&#xff1a; 为响应国家净网行动&#xff0c;部分内容已经删除&#xff0c;感谢读者理解。话题&#xff1a;归纳一下html中什么时候需要分号什么时候需要冒号什么时候问题详情&#xff1a;最近初学html和php&#xff0c;弄晕了回答&#xff1a;一般情况下&#xff0c;HTML…

python wheel使用_【转载】Python,使用Wheel打包

转载自&#xff1a; http://blog.sina.com.cn/s/blog_1318255b00102wbtz.htmlPython的第一个主流打包格式是.egg文件&#xff0c;现在大家庭中又有了一个叫做Wheel(*.whl)的新成员。wheel“被设计成包含PEP 376兼容安装(一种非常接近于磁盘上的格式)的所有文件”。在本文中&…