如何定义核心场景用例?

​首先我们解决两个问题:
  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.ppmy.cn/news/1519888.html

相关文章

JavaWeb——介绍(什么是Web、Web网站的开发模式)、初始Web前端(Web标准、学习内容)

目录 介绍 什么是Web Web网站的开发模式 初识Web前端 Web标准 学习内容 介绍 JavaWeb学习路线 (仅用作参考) 什么是Web Web:全球广域网,也称为万维网(www World Wide Web),能够通过浏览器访问的…

揭秘面试官常见问题 —— JavaScript 闭包

1. 什么是闭包? 闭包是 JavaScript 中的一种特性,它允许一个函数在定义的环境之外仍然能够访问和操作定义时的作用域中的变量。换句话说,闭包是指函数可以“记住”并访问它被创建时所处的词法作用域。 简单来说: - 当一个函数被…

[Meachines] [Medium] SecNotes XSRF跨站请求伪造+SMB-Webshell上传+Linux子系统命令历史记录泄露权限提升

信息收集 IP AddressOpening Ports10.10.10.97TCP:80,445,8808 $ nmap -p- 10.10.10.97 --min-rate 1000 -sC -sV PORT STATE SERVICE VERSION 80/tcp open http Microsoft IIS httpd 10.0 | http-title: Secure Notes - Login |…

SpringBoot中基于MongoDB的findAndModify原子操作实现分布式锁原理详解

❃博主首页 &#xff1a; 「码到三十五」 &#xff0c;同名公众号 :「码到三十五」&#xff0c;wx号 : 「liwu0213」 ☠博主专栏 &#xff1a; <mysql高手> <elasticsearch高手> <源码解读> <java核心> <面试攻关> ♝博主的话 &#xff1a…

网络是怎样连接的

网络是怎样连接的 HTTPDNS数据通信协议栈——TCP/IPRJ-45接口信号衰减噪声干扰双绞线MDI接口集线器交换机路由器接入网ADSL接入网FTTH接入网用户认证和配置下发DHCPPOPWeb服务器的部署地点防火墙 HTTP HTTP发展史&#xff1a; 1991 – HTTP/0.91996 – HTTP/1.01997 – HTTP/…

人工智能领域面试基础问题整理(二):什么是人工智能?

当你说你的专业是“人工智能”时&#xff0c;面试官问你&#xff1a;“假如我是一个不懂AI的人&#xff0c;你能和我说说&#xff0c;什么是AI吗&#xff1f;”你会怎么回答。 我们可以从以下几个方面入手&#xff1a; 1、人工智能的定义 人工智能&#xff08;Artificial Inte…

Android Studio gradle下载太慢了!怎么办?(已解决)

Android Studio&#xff01;你到底干了什么&#xff1f;&#xff01; 不能高速下载gradle&#xff0c;我等如何进行app编程&#xff1f;&#xff01; 很简单&#xff0c;我修改gradle地址不就是了。 找到gradle-wrapper.properties文件 修改其中distributionUrl的地址。 将 ht…

[Leetcode 51][Hard]-n皇后问题-回溯

目录 一、题目描述 二、整体思路 三、代码 一、题目描述 原题地址 二、整体思路 这种可以算是组合问题的变种&#xff0c;在回溯函数中我们要保存当前已放置皇后的所有位置&#xff0c;同时递归调用时要进行寻找下一个皇后的放置位置。那么我们可以逐行遍历棋盘并作为递归调…

如何完美实现 Go 服务的平滑升级

Go 服务作为常驻进程,如何进行服务升级呢?你可能会觉得这还不简单,先将现有服务停止,再启动新的服务不就可以了。可是将现有服务停止时,如果它还在处理请求,那么这些请求该如何处理?另外,在现有服务已经退出但是新服务还没有启动期间,新的请求到达了又该如何处理? Go…

Logistic分类算法原理及Python实践

一、Logistic分类算法原理 Logistic分类算法&#xff0c;也称为逻辑回归&#xff08;Logistic Regression&#xff09;&#xff0c;是机器学习中的一种经典分类算法&#xff0c;主要用于解决二分类问题。其原理基于线性回归和逻辑函数&#xff08;Sigmoid函数&#xff09;的组…

3.4 数据传送指令

&#x1f393; 微机原理考点专栏&#xff08;通篇免费&#xff09; 欢迎来到我的微机原理专栏&#xff01;我将帮助你在最短时间内掌握微机原理的核心内容&#xff0c;为你的考研或期末考试保驾护航。 为什么选择我的视频&#xff1f; 全程考点讲解&#xff1a;每一节视频都…

使用JavaScript读取手机联系人列表:从理论到实践

更多内容前往个人网站&#xff1a;孔乙己大叔 在现代Web开发中&#xff0c;随着技术的不断进步&#xff0c;以前看似不可能的任务现在变得可行。例如&#xff0c;使用JavaScript读取手机联系人列表这一功能&#xff0c;在几年前几乎是不可想象的&#xff0c;但现在随着Web API的…

MyBatis之XML配置文件(一)

Mbatis是一个ORM框架&#xff0c;可以用XML配置文件或注解映射SQL语句&#xff0c;映射文件是MyBatis框架的核心&#xff0c;本文主要讲述XML 映射文件的结构和使用方法。 一、SQL映射文件 SQL映射文件就是mapperxml配置文件&#xff0c;主要实现SQL语句的配置和映射&#xf…

pdf.js如何支持base64的查看

1.pdf.js 作为一个查看在线阅读pdf的软件&#xff0c;常常被运用到前端开发中&#xff0c;但是如何让pdf支持base64的查看&#xff0c;这边就需要去进行修改一些代码了 这边我们就进行开发修改 首先去下载 https://mozilla.github.io/pdf.js/ 当然了&#xff0c;低版本的可以…

Kubernetes 上安装 Jenkins

安装 Helm curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash添加 Jenkins Helm 仓库 首先添加 Jenkins Helm 仓库 helm repo add jenkins https://charts.jenkins.io helm repo update安装 Jenkins 使用 Helm 安装 Jenkins 的最新版本&…

基于分布式计算的电商系统设计与实现【系统设计、模型预测、大屏设计、海量数据、Hadoop集群】

文章目录 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主项目展示项目介绍 目录摘要Abstract1 引言1.1 研究背景1.2 国内外研究现状1.3 研究目的1.4 研究意义 2 关键技术理论介绍2.1 Hadoop相关组件介绍2.2 分布式集群介绍2.3 Pyecharts介绍2.4 Fl…

Android音视频开发,需要学些什么?

如果你想学习 Android 音视频开发&#xff0c;以下是一些需要学习的内容&#xff1a; 一、基础知识 Java 或 Kotlin 编程语言&#xff1a;Android 开发主要使用这两种语言&#xff0c;确保你对其中一种有扎实的掌握&#xff0c;包括语法、面向对象编程概念、数据结构和算法等…

docker-compose 启动的harbor页面能登录,但是不能推送镜像

问题现象&#xff1a; docker-compose 安装的harbor&#xff0c;页面可以正常打开&#xff0c;但是不能推送镜像。 报错信息提示&#xff1a;connect: connection refused 故障原因&#xff1a; harbor.yml 中的external_url参数写错。这个是提供外部访问。页面请求地址和…

Java 面向对象编程的四个基本原则(封装、继承、多态和抽象),并给出一个简单的例子说明如何在 Java 中应用这些原则?

面向对象编程&#xff08;OOP&#xff09;是一种编程范式&#xff0c;它使用“对象”来设计软件。在 Java 中&#xff0c;面向对象编程的四个基本原则是封装、继承、多态和抽象。每个原则都有其特定的目标&#xff0c;帮助开发者构建更加模块化、可维护和可扩展的代码。 封装 …

ImmersiveTranslate:一键中英对照,Google Chrome上不可或缺的翻译利器

ImmersiveTranslate&#xff1a;一键中英对照&#xff0c;Google Chrome上不可或缺的翻译利器 基本介绍 ImmersiveTranslate 是一款为Google Chrome用户设计的翻译插件&#xff0c;旨在帮助用户轻松实现中英对照翻译。这款插件不仅适合普通用户&#xff0c;同时也为开发者提供…