优雅的设计测试用例

news2024/12/1 8:52:38

请添加图片描述
⭐️前言⭐️

入职以后接触到了公司的具体业务,提升了设计测试用例的能力,于是沉淀出这篇文档与大家分享。

🍉欢迎点赞 👍 收藏留言评论 📝私信必回哟😁

🍉博主将持续更新学习记录收获,友友们有任何问题可以在评论区留言

🍉博客中涉及源码及博主日常练习代码均已上传GitHub


请添加图片描述

📍内容导读📍

  • 🍅测试用例的基本要素
  • 🍅如何写好测试用例
    • 流程上
    • 维度上
  • 🍅如何提升用例编写的能力

🍅测试用例的基本要素

测试用例是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。
测试用例的出现主要解决了测什么怎么测的问题;测试用例的好坏与产品测试质量有很大的关联关系。
是否能够设计出覆盖率广、优美的测试用例其实也是一名QA的能力体现,不仅要熟悉业务、了解系统,还应该多思考,不拘束于惯性思维,才能设计出富有艺术性的测试用例。

🍅如何写好测试用例

流程上

1、测试需求分析,确定测试点
在进行用例编写之前,一定要先进行需求分析,通过PRD需求评审会议来去了解需求的整个背景实现+分析需求的合理性+明确需求的范围(增量还是存量、历史问题还是新问题)+挖掘PRD中隐藏的需求。在通过需求交底的过程中,通过沟通和对测试需求的分析,列出需求的框架,包括各个功能点、测试的场景等,确定一些测试可以提前介入的工作。

注意:对需求有问题一定要及时记录,并找PM沟通确认,并三方同步。

2、梳理测试逻辑,分析测试点优先级
测试用例整体是要有逻辑的,通过对测试点的分析来对case进行类别的划分,相同类别或者归属于统一操作流程的case放在一个FM下编写。
梳理好整体逻辑后还需要针对case来进行优先级的划分P0(准入用例)、P1(一般测试用例)、P2(较为细致但不影响整体的用例),通过优先级的划分来让用例的设计更有侧重点。

3、细化测试点变成可执行的case
列举出测试点后,通过详细但不繁琐、简洁且明确的话描述用例的操作步骤、预期结果、text,根据测试点,细化出具体的测试用例,要注意各个点的组合测试的情况(测试点之间的关联关系)

测试点需要细化到什么样的程度,控制好度,简洁明了、覆盖全面。

4、及时更新测试用例
在用例编写阶段,需求很可能是会有变动,通过同步变动以后,要及时更新测试用例,及时维护测试用例才能使得这个用例是一个有效的测试用例,否则很可能会成为一个错误的指导。
此外在用例评审阶段,注意检查用例是否有测试点遗漏,场景遗漏,测试case描述模糊(切忌直接copyPRD,要理解需求转化成自己的描述),预期结果描述模糊等问题,针对其他用例评审人提出的问题,要及时更正用例。

维度上

1、借助测试策略和测试方法
● 测试策略:比如功能测试、性能测试、界面测试、兼容性测试、易用性测试、安全性测试等方面。
● 测试方法:等价类、边界值、判定表、正交排列、场景设计、错误猜测等方法
2、注意测试点在流程中的体现
● 当前测试点受到哪些测试点的影响(依赖于哪些测试点)、其会影响到哪些测试点。
● 单元测试和集成测试
● 管理态和运行态
3、在时间维度上考虑
该测试点是否受时间先后影响(是新增需求还是历史问题)

测试用例需要描述清楚,因为测试用例不仅自己看,还有可能会让其他不同的角色看,还有可能在不同的时间点看。

🍅如何提升用例编写的能力

1、熟悉业务,了解系统
任何系统都有大的业务背景,只有熟悉了业务知识才能更有效的使用系统,任何系统在使用过程中,都有一个熟悉的过程,对系统越熟悉,越容易发现系统问题和业务问题。
2、多站在用户的角度来分析
多站在用户的角度来分析客户需要什么和客户想要什么,客户不想要什么,即了解客户的使用场景,这样有利于我们更好的挖掘测试需求,哪些是更为重点的,哪些是用户基本不会用到的场景。
3、发散思维
不要固化思维方式,多思考来发散思维,提升自己设计测试用例的能力。


⭐️最后的话⭐️
总结不易,希望uu们不要吝啬你们的👍哟(^U^)ノ~YO!!如有问题,欢迎评论区批评指正😁

请添加图片描述

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

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

相关文章

Acwing.905 区间选点(贪心)

题目 给定N个闭区间[a,bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。输出选择的点的最小数量。 位于区间端点上的点也算作区间内。 输入格式 第一行包含整数N,表示区间数。 接下来N行,每行包含两个整数…

Linux内核《CPU负载计算》

目录 前言一、什么是CPU负载?二、如何计算CPU负载三、计算CPU负载的一个脚本四、top命令详解 前言 在实际的产品开发中,我们往往需要关注CPU的负载,确保程序可以长久稳定的运行,并且能够重复发挥SOC的性能。Linux中提供了一些命令…

ArrayList和LinkedList

ArrayList的注意事项 1、在ArrayList中可以放任意元素,包括空值,任何元素,且可重复添加。 2、ArrayList底层是由数组来实现数据存储的 3、ArrayList基本等同于Vector,除了ArrayList是线程不安全(执行效率高),看源码 在多线程的…

【Linux系列P7】进度条小程序的深度解剖(细节满满)

​​​​​ ​ 前言 大家好吖,欢迎来到 YY 滴 Linux系列 ,热烈欢迎! 本章主要内容面向接触过Linux的老铁,主要内容含 欢迎订阅 YY滴Linux专栏!更多干货持续更新!以下是传送门! 订阅专栏阅读&am…

SpringBoot项目中MVC使用--【SB系列之010】

SpringBoot系列文章目录 SpringBoot 的项目编译即报错处理–SB系列之001 —第一部的其它章节可以通过001链接 SpringBoot项目中WEB页面放哪里–【SB系列之008】 SpringBoot项目中WEB与Controller的联系–【SB系列之009】 ———————————————— 文章目录 SpringBoo…

线程池学习(五)线程工厂、线程池工厂

Executors 定义的Executor, ExecutorService, ScheduledExecutorService, ThreadFactory和Callable类的工厂和实用程序方法,我们称为线程池工厂。ThreadFactory 为定制化创建新线程的对象,我们称为线程工厂 前面几期的学习中,我已经初步会使用线程池了&…

用于公司文件防泄密用的保密软件(企业数据防泄密软件)

防止公司文件泄露是指采取各种措施和方法,以防止公司的敏感和机密文件被未经授权的人员获取、泄露或滥用的行为。 这些文件可能包含公司的商业机密、客户数据、财务信息、研发成果等重要资料,如果泄露给竞争对手、黑客或其他恶意人员,可能会对…

未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序。

offiice64位的按装名字短的,office32位的安装名字长的 安装32位的AccessDatabaseEngine.exe,如果使用64位office点击安装32位access时提示无法安装,此时需要: 1.WINR打开运行,输入CMD,进入安装包文件夹 …

AHD模拟高清方案汇总及国产替代方案

由于模拟高清方案对比LVDS数字高清方案在降本、远距离传输的优势明显,及实现方案相对简单,模拟相机一直在车载和安防监控产品上有着较重要的市场地位。伴随着ZM贸易战和境外疫情影响愈来愈趋于严重化,原有外来品牌公司模拟高清方案在产品交期…

LeetCode 75 第五题(345)反转字符串中的元音字母

题目: 示例: 分析: 给一个字符串,将里面的元音字母反转,并且保持非元音字母不变(包括顺序). 字符串反转类型的题,我们都可以使用双指针来解决:定义首尾指针,分别向中间靠拢,直到首尾指针都指向了元音字母,然后交换首尾指针所指的字母,如此不会影响到非元音字母,同时也将元音字…

【4】Vite+Vue3左右容器中相同属性的元素内容自动对齐

在当今前端开发的领域里,快速、高效的项目构建工具以及使用最新技术栈是非常关键的。ViteVue3 组合为一体的项目实战示例专栏将带领你深入了解和掌握这一最新的前端开发工具和框架。 作为下一代前端构建工具,Vite 在开发中的启动速度和热重载方面具有突…

【运维小知识】(四)——linux常用命令

运维专栏:运维小知识 目录 1.🍁🍁用mv命令修改文件名 2.🍃🍃创建及删除文件夹即文件夹下所有文件 3.🍂🍂移动文件夹并重命名 4.🌿🌿复制文件 5.🍄&#x…

Redis相关配置(3)

⭐ 作者简介:码上言 ⭐ 代表教程:Spring Boot vue-element 开发个人博客项目实战教程 ⭐专栏内容:个人博客系统 ⭐我的文档网站:http://xyhwh-nav.cn/ 文章目录 Redis相关配置1、units2、Include3、loadmodule 加载模块4、NET…

MySQL-多表设计-一对多

多表的设计-概述 项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种: 一…

【PostgreSQL内核学习(二)—— 查询分析】

查询分析 查询处理查询分析查询处理与查询分析的关系查询分析执行流程Lex和YaccLex:Yacc:词法分析工具Lex语法分析工具Yacc使用Lex和Yacc的案例 词法和语法分析以SELECT语句为例讲解 PostgreSQL中查询语句如何被解析并生成分析树。 语义分析 声明&#x…

【Vue面试题系列】四

VNode有哪些属性? Vue内部定义的Vnode对象包含了以下属性: __v_isVNode: true,内部属性,有该属性表示为Vnode __v_skip: true,内部属性,表示跳过响应式转换,reactive转换时会根据此属性进行判断…

黑马B站视频JAVA部分的知识范围、学习步骤详解

文章目录 学习资源选择最后选择 JAVA的知识范围JDBCswing与JAVAFX JAVA的学习步骤1.右侧的部分:2 JAVA的高级但是必须要学的3 有一些要学(部分)4力扣 总结作业配套资源 学习资源选择 我从画面(一定要看清代码)声音(清…

金融中的数学:概率分布(上)

概率分布是描述随机变量可能取值的概率的函数。它可以用来描述离散变量和连续变量的概率分布。对于离散变量的概率分布,我们称其为离散概率分布。对于连续变量的概率分布,我们称其为连续概率分布。本文主要介绍离散型概率分布。 1.离散型均匀…

华为ospf路由协议在局域网中的高级应用案例

关键配置: 1、出口为ospf区域0,下联汇聚依次区域1、2…,非骨干全部为完全nssa区域 2、核心(abr)上对非骨干区域进行路由汇总,用于解决出口两台路由的条目数量 3、ospf静默接口配置在汇聚下联接接入交换机的…

ngAfterViewInit( ) to early /// ngFor和异步网络请求导致无法选中目标元素的问题

今天遇到的最无语的问题: angular 8版本以上,我在ngafterViewInit()中选取元素选取不到,加上setTimeOut()之后才可以选中 网上的解释: Angular的ngAfterViewInit生命周期钩子是在组…