如何定义核心场景用例?

news2024/12/26 22:42:59
​首先我们解决两个问题:
  1. 1.什么是场景测试?

  2. 2.什么是核心场景?

1、什么是场景测试?

🎯 1.1:什么是场景

事件触发时的情景形成了场景。场景必不可少的几个要素:环境、人、时间、行为。简而言之:xx人在xx时间xx环境下进行了xx行为。划分场景的意义在于:我们想通过场景知道“人”“行为”的目的是什么。

🎯 1.2:什么是测试场景

测试场景是指模拟真实环境下的一系列测试活动,以观察系统在这种环境下的表现。注意:模拟真实环境。我们所有测试行为都应该是有意义的,而不应该是想当然的。

1.【从需求的角度来说,测试场景通常是可以从需求描述中获得到的】

用户故事(user story)在软件开发过程中被作为描述需求的一种表达形式,并着重描述角色(谁要用这个功能)、功能(需要完成什么样子的功能)和价值(为什么需要这个功能,这个功能带来什么样的价值)。简单理解,即:xx人想用xx功能实现xx价值。

以目前我们特性模板为例(如下图所示),其实是涵盖了用户故事想要表述的几个元素。所以,如果产品同学认真写的话,我们是能够获取到我们要的信息的。

值得注意的是:从需求描述获取测试场景,可以预见的是,我们会强依赖产品的需求拆分粒度、需求描述清晰度。所以,因为需求拆分粒度不同,我们的测试场景也会有大小(不要恐惧,这是正常的。没有谁规定一定要是一个大的场景,难道小舞台就不能表演了吗?)再者,如果只是一句话需求怎么办(这是大部分情况)?还能怎么办?多交流呗。

2.【从测试分层的角度来说,测试场景通常是由小到大、由简到复的】

测试分层的定义和意义毋庸赘述。在不同层级测试,我们应该有不同粒度的测试场景。比如:单元测试,我们测试场景大多着眼于单功能交付;集成测试,则关注于模块交互;验收测试,则强调系统功能的完善。

可以试想一个汽车生产商,生产汽车的过程。是不是先零部件(轮胎、方向盘)生成,然后再是局部功能组合调式(引擎、仪表盘),最后才是整车交付?大致如此道理。

3.【从交付的角度来说,对内交付和对外交付的测试场景不同】

对内交付(可以是团队内、项目内),关注的更多是单功能和交互功能场景测试;对外交付(项目外),更关注的是系统场景测试。

所以,又回到了“你的用户是谁”的话题,仔细思考?

2、什么是核心场景测试?

了解了什么是场景和测试场景,现在我们来定义什么是核心测试场景。

定义核心测试测试场景是确保软件系统的关键功能得到充分测试的关键步骤。这些场景通常涉及到系统的核心功能、最重要的用户操作流程以及最关键的使用情景。

请注意:“核心”、“重要”、“关键”。

以下是定义核心测试场景的一些步骤:

1.【识别关键功能】

确定系统中的关键功能,这些功能对于系统的整体运作和用户体验至关重要。这可能涉及到核心业务逻辑、主要用户流程和最常用的功能。

2.【确定用户故事】

将关键功能转化为用户故事或使用情景。每个用户故事描述一个用户的目标、操作和预期结果。这有助于将功能放置在真实使用环境中,以便更好地理解其重要性。

3.【优先级排序】

对识别的关键功能和用户故事进行优先级排序。确定哪些功能是绝对必须测试的,以确保系统的核心方面能够正常工作。

有了以上几点,我们可以定义测试场景。然后,根据优先级,为每个关键功能或用户故事定义一个或多个测试场景。每个场景描述用户如何与系统交互,以及系统应该如何响应。

3、实际上如何操作?

建议1.【核心测试场景一定是覆盖关键功能的场景】

这点不用多说,意义很明显。

建议2.【核心测试场景最好是能覆盖功能更多的场景】

这样的话,场景测试可以覆盖的功能点更多。

建议3.【核心测试场景一定是用户关注的场景】

举个例子来说,思考一下,我们常做的单功能测试、单接口测试,用户关注不?

建议4.【实在不能确定,那就启动评审吧(三个臭皮匠敌过一个诸葛亮)】

列出测试场景,然后优先级排序,筛选出高优先级场景作为核心测试场景。可以使用如下表格列举、筛选。

在这里插入图片描述

4、总 结

了解了什么是场景和测试场景,现在我们来定义什么是核心测试场景。

本文是目的在于启发大家对“核心场景用例”的理解,帮助大家在测试工作中更好地区分和提取核心用例。希望对阅读的你有所帮助~

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【文末小卡片领取】

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

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

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

相关文章

3.7 移位指令

🎓 微机原理考点专栏(通篇免费) 欢迎来到我的微机原理专栏!我将帮助你在最短时间内掌握微机原理的核心内容,为你的考研或期末考试保驾护航。 为什么选择我的视频? 全程考点讲解:每一节视频都…

JAVA进阶学习14

文章目录 常用工具包commons-ioHutool工具包一、多线程1.1 多线程的实现方法1.2 多线程常见的成员方法1.3 线程的安全问题1.4 同步方法1.5 lock锁1.6 线程的死锁1.7 生产者消费者问题(等待唤醒机制)1.8 阻塞队列——同样解决生产和消费的问题1.9 线程的状…

【5G PHY】5G循环前缀(CP)设计思路简述

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G技术研究。 博客内容主要围绕…

苹果手机升级iOS 18时一直显示“正在检测更新”怎么办?

随着科技的不断发展,苹果手机的iOS系统也在不断迭代更新,为用户带来更加优质的使用体验。然而,在升级iOS 18的过程中,一些用户可能会遇到手机一直显示“正在检测更新”的问题,导致无法顺利完成系统升级。 这种情况不仅…

线性代数 第五讲:线性方程组_齐次线性方程组_非齐次线性方程组_公共解同解方程组_详解

线性方程组 文章目录 线性方程组1.齐次线性方程组的求解1.1 核心要义1.2 基础解系与线性无关的解向量的个数1.3 计算使用举例 2. 非齐次线性方程的求解2.1 非齐次线性方程解的判定2.2 非齐次线性方程解的结构2.3 计算使用举例 3.公共解与同解3.1 两个方程组的公共解3.2 同解方程…

标准库标头 <charconv>(c++17)学习

此头文件是strings library. std::to_chars_result 是 std::to_chars 的返回类型。它没有基类,并且只有以下成员。 数据成员 成员名字定义 ptr char* 类型的指针 (公开成员对象) ec std::errc 类型的错误码 (公开成员对象) std::from_chars_result 是 std::from…

CSS瀑布流实现

文章目录 前言前置知识 React 中实现代码实现 Vue 中实现代码实现 前言 瀑布流是一种CSS布局技术,它允许不同高度的元素在页面上以美观的方式排列,同时保持行与列间的间距一致。 前置知识 使用 multi-column 实现多列布局 column-count: 设置布局显示…

深度学习实战4--GAN进阶与优化

GAN 的问题主要有两点:Loss 等于0的梯度消失问题和梯度不稳定以及多样性受损。 前者是因为选择的分布函数使用JS 距离,这个距离不能衡量两个不相交的分布的距离;后者是因为Loss 函数要求KL 距离最小,JS 距离最大,所以…

趣味算法------回文数

目录 ​编辑 前言 什么是回文数 题目描述 解题思路 具体代码 C语言代码 python代码 总结 ps 前言 什么是回文数 回文数(Palindrome Number)是一种特殊的数字,它正读和反读都是一样的。例如,121,12321&#xf…

统计学第4天

学前知识点 方差:反映一组数据离散程度,除n是为了缩小数据量对结果的影响。 标准差: 多个统计量推断 使用z统计量和t统计量可对两个总体参数进行推断,如果需要对更多的参数进行推断需要研究多个变量之间的关系,需要…

vscode安装rest client插件,提示XHR failed

vscode安装rest client插件,提示XHR failed: 本地搜索rest client插件,然后下载,放到容器对应位置,参考:

GeoScene Pro教程(006):GeoScenePro地图集制作

文章目录 1、加载数据2、修改地图样式3、修改外观4、显示上下左右各为哪个地市5、新建布局6、选择地图框显示区域7、插入指北针、比例尺、图例8、显示相邻地市9、导出地图地图系列的构建来自单个地图图幅的集合,每个图幅显示 特定的地图范围,包含 动态地图元素和 静态地图…

测试用例的具体方法

1.等价类 依据需求将输⼊(特殊情况下会考虑输出)划分为若⼲个等价类,从等价类中选出⼀个测试⽤例,如果这个测试⽤例测试通过,则认为所代表的等价类测试通过,这样就可以⽤较少的测试⽤例达到尽量多的 功能覆…

建模杂谈系列253 序列突变点的判定

说明 使用pycm3进行推断。 内容 1 环境搭建 使用conda创建对应的包环境,然后再通过jupyter运行 conda create -c conda-forge -n pymc_env "pymc>5" conda activate pymc_envpip3 install ipython -i https://mirrors.cloud.tencent.com/pypi/si…

JavaScript高级进阶(一)

什么是BOM BOM: Browser Object Model(浏览器对象模型) 提供了独立于内容与浏览器窗口进行交互的对象,你可以前进后退……历史记录等,是浏览器自动生成的功能。 浏览器对象模型 对象以及说明: window: 窗口对象,可以用来控制当前窗口&…

FreeRTOS中任务通知的使用

目录 0x01 任务通知介绍0x02 示例代码 0x01 任务通知介绍 简单举个例子: 例如任务一用于获取数据,任务二用于处理数据。 但这其中存在一个先后关系:必须等到任务一获取完了数据,任务二才能开始工作,你会如何选择何种…

两个月冲刺软考——概念+求已知内存按字节编址从(A)…到(B)…的存储容量+求采用单/双缓冲区需要花费的时间计算 类型题目讲解

1.四个周期的区别与联系 时钟周期:也称为CPU周期或机器周期,是CPU操作的基本时间单位。 指令周期:是指CPU执行一条指令所需的全部时间。一个指令周期通常由多个时钟周期组成,因为执行一条指令可能需要多个步骤,如取指…

基于 OpenCV 的数字图像处理实验平台设计

基于 OpenCV 的数字图像处理实验平台设计 前言简介正文资源链接(含源码) 前言 哈哈上学那会儿做的一个软件,当时把OpenCV各个基础算法都集成在了一起,还有一定程度的顺序执行部分相关算法的功能,那时候网上相关内容比较…

【开源大模型生态1】逐步成熟

人工智能和大模型的发展,我们之前讨论过,我在人工智能考试笔记中,也有分享。 结合上图,一起再来回顾一下。 机器学习出现之后,大模型逻辑推理为主,聚焦决策、认知能力。 深度学习出现之后,大…

利用注解将数据转为树结构

利用注解生成树结构 ListToTree注解 背景介绍: 通常,我们都有需要将一个列表List,转为树的结构 或许我们或多或少都写过工具类如: 或者: 以上写法,或多或少,都需要我们对集合进行一些处理,写多了自然就变得繁琐,甚至有业务相关的时候,修改会变动麻烦 并且功能比较单一,局限…