如何定义核心场景用例?

首先我们解决两个问题:

1.什么是场景测试?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、总 结

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

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

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

文档获取方式:

加入我的软件测试交流群:1007119548免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

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

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

相关文章

Rust-变量

Rust的变量必须先声明后使用。对于局部变量,最常见的声明语法为: let variable:i32 100;与传统的C/C语言相比,Rust的变量声明语法不同。这样设计主要有以下几个方面的考虑。 语法分析更容易 从语法分析的角度来说,Rust的变量声明…

Linux系统编程(十一):高级 IO

参考引用 UNIX 环境高级编程 (第3版)嵌入式Linux C应用编程-正点原子 1. 非阻塞 I/O 阻塞就是进入了休眠状态,交出了 CPU 控制权阻塞 I/O 就是对文件的 I/O 操作(读写操作)是阻塞式的,非阻塞 I/O 就是对文件的 I/O 操作是非阻塞的…

网络技术基础入门全套实验-厦门微思网络CCNA实验手册

知识改变命运,技术就是要分享,有问题随时联系,免费答疑,欢迎联系! 微思简介(https://www.xmws.cn) 微思成立于2002年,是一个诚信敬业、积极向上、充满活力、专注技术服务的企业。 微思获得了八…

电子学会2023年12月青少年软件编程(图形化)等级考试试卷(四级)真题,含答案解析

青少年软件编程(图形化)等级考试试卷(四级) 分数:100 题数:24 一、单选题(共10题,共30分) 1. 运行下列程序,输入“abcdef”,程序结束后,变量“字符串”是?( )

Linux--部署 Tomcat 及其负载均衡

1.案例前置知识点 1)Tomcat简介 名称由来:Tomcat最初是由 Sun的软件构架师詹姆斯邓肯戴维森开发的。后来他帮助将其变 为开源项目,并由Sun贡献给Apache软件基金会。由于大部分开源项目OReilly都会出一本相关的 书,并且将其封面设…

SpringMVC视图

文章目录 1、ThymeleafView2、转发视图3、重定向视图4、视图控制器view-controller5、总结 SpringMVC中的视图是View接口,视图的作用渲染数据,将模型Model中的数据展示给用户SpringMVC视图的种类很多,默认有转发视图和重定向视图当工程引入js…

2024几个测试接口的好工具,效率加倍~

作为一名后端程序员,一定要对自己写的接口负责,保证接口的正确和稳定性。因此,接口测试也是后端开发中的关键环节。 但我相信,很多朋友是懒得测试接口的,觉得这很麻烦。一般自己写的接口自己都不调用,而是…

在Linux上搭建Maven仓库

目录 一、下载安装包二、安装maven三、修改配置文件settings.xml四、配置环境变量五、测试maven是否可用 一、下载安装包 我在这里为大家准备好了apache-maven-3.5.0-bin.tar.gz,百度网盘下载链接如下: 链接:https://pan.baidu.com/s/1bGun…

NodeJs 第十一章 express

Express 是基于 Node.js 平台,快速、开放、极简的 web 开发框架 基本使用 安装 npm install express --save示例代码 const express require(express) const app express() const port 3000app.get(/, (req, res) > {res.send(Hello World!) })app.listen(…

NSR原理描述

相关概念 HA(High Availability):高可靠性/高实用性的简称,这里指主备板间的备份通道。NSF(Non-Stop Forwarding):不间断转发。NSR(Non-Stop Routing):不间断…

24年春招要来了,大学生第一次实习去大厂重要么?

春招要来了,大学生第一次实习去大厂重要么? 1.错峰实习。2.继任直招。3.优化简历,匹配优先。4. 善用新技术 先说一个暴论: 实习一定要去大厂,尤其是非头部院校的同学,你就算进去打螺丝,也要进大厂 关于我&#xff1a…

无需任何三方库,在 Next.js 项目在线预览 PDF 文件

前言: 之前在使用Vue和其它框架的时候,预览 PDF 都是使用的 PDFObject 这个库,步骤是:下载依赖,然后手动封装一个 PDF 预览组件,这个组件接收本地或在线的pdf地址,然后在页面中使用组件的车时候…

【python】08.面向对象编程基础

面向对象编程基础 活在当下的程序员应该都听过"面向对象编程"一词,也经常有人问能不能用一句话解释下什么是"面向对象编程",我们先来看看比较正式的说法。 "把一组数据结构和处理它们的方法组成对象(object&#…

Redis入门-redis的五大数据类型+三种特殊的数据类型

前言:Redis有五大基本类型与三种特殊类型的介绍 Redis有五大基本类型:字符串(string)、哈希(hash)、列表(list)、集合(set)和有序集合(sorted se…

大模型实战营Day4 XTuner大模型单卡低成本微调实战

FINETUNE简介 LLM下游应用中,增量预训练和指令跟随是经常会用到的两种微调模式 指令跟随微调 使用场景:让模型学会对话模板,根据人类指令进行对话 训练数据:高质量的对话,问答数据 为什么需要指令微调? 因为…

前端重置密码报错记录

昨天晚上,我写了重置密码的前端,测试的时候报错 今天上午,我继续试图解决这个问题,我仔细检查了一遍,前端没有问题 可以正常接收输入的数据并且提交 但是后端接收到的数据为空,后端接口也没有问题 但后端收…

大模型核心技术原理: Transformer架构详解

在大模型发展历程中,有两个比较重要点:第一,Transformer 架构。它是模型的底座,但 Transformer 不等于大模型,但大模型的架构可以基于 Transformer;第二,GPT。严格意义上讲,GPT 可能…

vscode无法自动补全

前提:安装c/c插件 c/c插件功能非常强大,几乎能满足日常编码过程中常用的功能;因为也包含自动补全的功能,开启方法如下: 文件->首选项->设置: 扩展->c/c->Intellisense,找到Intell…

C++多线程学习[三]:成员函数作为线程入口

一、成员函数作为线程入口 #include<iostream> #include<thread> #include<string>using namespace std;class Mythread { public:string str;void Test(){cout << str << endl;} }; int main() {Mythread test;test.str "Test";thr…

大数据-hive函数与mysql函数的辨析及练习-将多行聚合成一行

目录 1. &#x1f959;collect_list: 聚合-不去重 2. &#x1f959;collect_set(col): 聚合-去重 3. &#x1f959;mysql的聚合函数-group_concat 4. leetcode练习题 1. &#x1f959;collect_list: 聚合-不去重 将组内的元素收集成数组 不会去重 2. &#x1f959;collec…