如何编写一个好的测试用例?才能防止背黑锅
如何编写一个好的测试用例?才能防止背黑锅
- 什么是测试用例?
- 一个好的测试用例包含什么?
- 测试用例的编写思路
- 总结
什么是测试用例?
在这之前,思考一个问题,下面这个简单的QQ登录页面,一共又多少条测试用例?
答案是100条以上。
那么,什么是测试用例?
测试用例是用于检查特定应用程序/软件是否正常工作所需的软件测试的定义格式。测试用例由需要检查以测试应用程序或软件的一组特定条件组成,即,更简单地说,当检查条件时,它会检查结果输出是否满足预期输出。测试用例由ID、条件、步骤、输入、预期结果、结果、状态、备注等各种参数组成。
如果我们有时间能把所有的情况都试一下的话,肯定是不会存在漏测的情况。但是现在的问题就是时间真的是不允许,尤其现在都在走敏捷的路子,大家恨不得一天上一个新功能,所以说能留给测试的时间真的很少。
怎样既能覆盖到所有的测试场景,测试的执行数量又能控制在一个比较合适的数字,这个就是我们设计测试用例的过程。
一个好的测试用例包含什么?
先来谈谈测试用例的作用
检查软件是否满足客户期望:测试用例有助于检查特定模块/软件是否满足指定要求。
检查软件与条件的一致性:测试用例确定特定模块/软件是否可以在给定的一组条件下工作。
缩小软件更新范围:测试用例有助于缩小软件需求和所需更新的范围。
更好的测试覆盖率:测试用例有助于确保覆盖并记录所有可能的场景。
为了测试执行的一致性:测试用例有助于保持测试执行的一致性。记录良好的测试用例可以帮助测试人员查看测试用例并开始测试应用程序。
在维护过程中很有帮助:测试用例很详细,这使得它们在维护阶段很有帮助
其实,它最重要的作用是这个
避免背黑锅!!!!
当出现生产bug的时候,直接甩他测试用例,这个我明明覆盖过了,为什么还会有
一个标准的测试用例,应该包含以下内容
模块名称:定义测试功能的主题或标题。
测试用例 ID:分配给测试用例中每个条件的唯一标识符。
测试者姓名:将执行测试的人员的姓名。
测试场景:测试场景为测试人员提供了简短的描述,例如提供一个小的概述以了解需要执行的操作以及测试的小功能和组件。
测试用例描述:给定软件需要检查的条件。例如。检查年龄输入框是否只有数字验证有效。
测试步骤:检查状况所需执行的步骤。
先决条件:测试过程开始之前需要满足的条件。
测试优先级:顾名思义,优先考虑必须首先执行的测试用例,或者更重要且可以稍后执行的测试用例。
测试数据:检查条件时要采取的输入。
测试预期结果:测试结束时应预期的输出。
测试参数:分配给特定测试用例的参数。
实际结果:最后显示的输出。
环境信息:进行测试的环境,例如操作系统、安全信息、软件名称、软件版本等。
状态:测试的状态,例如通过、失败、NA 等。
评论:关于测试中关于软件改进的评论。
但是,又有人会说了,老夫干测试,就是一把梭,直接用户思维去测试
内容 | 作用 |
---|---|
模块名称 | 定义测试功能的主题或标题 |
测试用例 ID | 分配给测试用例中每个条件的唯一标识符。 |
测试者姓名 | 将执行测试的人员的姓名 |
测试场景 | 测试场景为测试人员提供了简短的描述 |
测试用例描述 | 给定软件需要检查的条件。例如。检查年龄输入框是否只有数字验证有效 |
测试步骤 | 将执行测试的人员的姓名 |
先决条件 | 测试过程开始之前需要满足的条件 |
测试优先级 | 顾名思义,优先考虑必须首先执行的测试用例,或者更重要且可以稍后执行的测试用例 |
测试数据 | 检查条件时要采取的输入 |
测试预期结果 | 测试结束时应预期的输出 |
实际结果 | 最后显示的输出 |
环境信息 | 进行测试的环境,例如操作系统、安全信息、软件名称、软件版本等 |
状态 | 测试的状态,例如通过、失败、NA 等 |
评论 | 关于测试中关于软件改进的评论 |
但是,又有人会说了,老夫干测试,就是一把梭,直接用户思维去测试
其实是不对的
软件测试过程不仅限于查找当前软件中的错误,还包括在效率、可用性和准确性等各个方面寻找升级软件的措施。因此,为了测试软件,软件测试提供了一种称为测试用例的特定格式
测试用例的编写思路
1、划分功能模块
2、正向功能验证:正常操作功能是否实现
3、单个功能项验证:正向+异常
4、功能之间交互验证:模块之间的数据传递
5、隐形需求:熟悉业务
+
以上面的登录页面,举一个例子,思维导入如下
按照模块划分,光是正向的用例就已经这么多条了,这还是没有考虑弱网测试,恶意登录等一些特殊情况
总结
写好一个清晰可用的测试用例,具有非常重要的意义。它们是验证和确保软件产品或系统符合其预定需求和规格的关键工具,是我们的基本功之一。
以上就是今天的全部内容,希望对大家有所帮助,也希望大家多多留言、点赞、在看、转发四连爱❤️ 支持。 咱们下篇文章见,Bye~👋
一个正经的测试,专注于AI与软件测试技术和宝藏干货分享,每天准时更新原创技术文章,每月不定期赠送技术书籍,让我们在测试会所在测试社区这个大家庭一起学习交流。喜欢记得星标⭐我,每天及时获得最新推送,
相关文章:

如何编写一个好的测试用例?才能防止背黑锅
如何编写一个好的测试用例?才能防止背黑锅 什么是测试用例?一个好的测试用例包含什么?测试用例的编写思路总结 什么是测试用例? 在这之前,思考一个问题,下面这个简单的QQ登录页面,一共又多少条…...
笨蛋学设计模式行为型模式-观察者模式【14】
行为型模式-观察者模式 8.1观察者模式:arrow_up::arrow_up::arrow_up:8.1.1概念8.1.2场景8.1.3优势 / 劣势8.1.4观察者模式可分为观察者的基本结构: 8.1.5观察者模式8.1.6实战8.1.6.1题目描述8.1.6.2输入描述8.1.6.3输出描述8.1.6.4代码 8.1.7总结 8.1观察者模式⬆️…...

上海智慧岛大数据云计算中心项目正式封顶!
上海智慧岛大数据云计算中心封顶仪式现场 1月15日,云端股份在上海智慧岛大数据云计算中心举行封顶仪式。云之端网络(江苏)股份有限公司(以下称“云端股份”)总经理贡伟力先生,常务副总张靖先生等公司成员&…...

靶场实战(19):OSCP备考之VulnHub HA WORDY
交流技术可以关注公众号 OneMoreThink 或后台添加微信,欢迎提出宝贵建议。 0、总结 0.1、攻击思路 资产发现 主机发现服务发现漏洞发现(获取权限) 80端口/HTTP服务 组件漏洞URL漏洞:RFI、FileUpload提升权限 www-data用户 sudosui…...

大模型学习与实践笔记(九)
一、LMDeply方式部署 使用 LMDeploy 以本地对话方式部署 InternLM-Chat-7B 模型,生成 300 字的小故事 2.api 方式部署 运行 结果: 显存占用: 二、报错与解决方案 在使用命令,对lmdeploy 进行源码安装是时,报错 1.源…...
fpga目前就业形势咋样?
FPGA今年各厂给本科生的薪资大概是15-30K,研究生是20-40K,平均薪资在25k左右, 当然具体薪资还要看去哪个公司,哪个城市,以及个人的学校、专业、能力水平、及包括面试时的表现,运气等,这些都会导…...

Linux7 安装 Oracle 19C RAC 详细图文教程
实战篇:Linux7 安装 Oracle 19C RAC 详细图文教程 本文是按照:https://www.modb.pro/db/154424的思路进行编写 一、安装前规划 安装RAC前,当然要先做好规划。具体包含以下几方面: 节点主机版本主机名实例名Grid/Oracle版本Publi…...

【SpringBoot】SpringBoot 项目初始化方法
github 搜索 springboot 模板 github 搜索 springboot 模板,拉取现成代码。 SpringBoot 官方的模板生成器 SpringBoot 官方的模板生成器(https://start.spring.io/) 在 IDEA 开发工具中生成 这里我修改成阿里的镜像主要是要使用 Java8。 …...
34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)
二分查找到目标值然后左右找到坐标 问题在于:找左右坐标的时候时间复杂度不是O(logN) class Solution {public int[] searchRange(int[] nums, int target) {int[] ans {-1, -1};if (nums.length 0) return ans;int l 0, r nums.length;while (l < r) {int…...

Mysql深度分页优化的一个实践
问题简述: 最近在工作中遇到了大数据量的查询场景, 日产100w左右明细, 会查询近90天内的数据, 总数据量约1亿, 业务要求支持分页查询与导出. 无论是分页或导出都涉及到深度分页查询, mysql通过limit/offset实现的深度分页查询会存在全表扫描的问题, 比如offset1000w, limit10…...

【JavaEE进阶】 SpringBoot配置⽂件
文章目录 🍀配置⽂件的作⽤🌴SpringBoot配置⽂件🎋配置⽂件的格式🎄properties配置⽂件🚩properties基本语法🚩读取配置⽂件🚩properties的缺点 🌳yml配置⽂件yml基本语法Ƕ…...
excel 常用函数
求和函数: SUM: 将单个值、单元格引用或区域相加。 案例:SUM(A1:A5) (结果:A1到A5单元格的值求和) SUMIF: 对选中范围内符合指定条件的值求和。 案例:SUMIF(B1:B5, ">50&qu…...

【React基础】– JSX语法
文章目录 认识JSX为什么React选择了JSXJSX的使用 React事件绑定this的绑定问题事件参数传递 React条件渲染React列表渲染列表中的key JSX的本质createElement源码Babel官网查看直接编写jsx代码 虚拟DOM的创建过程jsx – 虚拟DOM – 真实DOM声明式编程 阶段案例练习 认识JSX ◼ …...

SpringBoot 项目中后端实现跨域的5种方式!!!
文章目录 SpringBoot 项目中后端实现跨域的5种方式!!!一、为什么会出现跨域问题二、什么是跨域三、非同源限制四、Java后端 实现 CORS 跨域请求的方式1、返回新的 CorsFilter(全局跨域)2、重写 WebMvcConfigurer(全局跨域)3、使用注解 (局部跨…...

Vue3前端开发,provide和enject的基础练习,跨层级传递数据
Vue3前端开发,provide和enject的基础练习,跨层级传递数据! 声明:provide虽然可以跨层级传递,但是依旧是需要由上向下的方向传递。根传子的方向。 <script setup> import {onMounted, ref} from vue import Base from ./components/Base.vue impor…...
Python 循环结构值while循环
while循环是一种常用的循环结构,它会在满足特定条件的情况下重复执行一段代码块。 基本语法: while condition:# 循环体代码while循环的执行过程如下: 首先,判断循环条件condition(布尔表达式)是否为真。…...

MSSQL-识别扩展extended event(扩展事件)中的时间单位
经常使用sqlserver extended event(扩展事件),但是总是忘记扩展事件使用的时间单位,不确定它们是 秒、毫秒、还是微秒? 以下下代码能够从 相关DMV中提取description字段内容来识别时间单位: SELECT [p].[name] [package_name],[o…...
vue3中l和vue2中v-model不同点
vue2比较让人诟病的一点就是提供了两种双向绑定:v-model和.sync, 在vue3中,去掉了.sync修饰符,只需要使用v-model进行双向绑定即可。 为了让v-model更好的针对多个属性进行双向绑定(vue2中自定义组件中v-model只能使用…...

使用 Swift 代码优化项目编译速度
引言 软件的性能是评价一个软件质量的重要指标,尤其在今天这个时代,性能已成为大型项目不可或缺的考虑因素之一。对于用户量极大的软件,如网银系统、在线购物商城等,更是必须保证其高效稳定的性能。在这种背景下,优化…...

基于springboot+vue的社区团购系统(前后端分离)
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...

接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...

Xela矩阵三轴触觉传感器的工作原理解析与应用场景
Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知,帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量,能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度,还为机器人、医疗设备和制造业的智…...

JDK 17 序列化是怎么回事
如何序列化?其实很简单,就是根据每个类型,用工厂类调用。逐个完成。 没什么漂亮的代码,只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...
用递归算法解锁「子集」问题 —— LeetCode 78题解析
文章目录 一、题目介绍二、递归思路详解:从决策树开始理解三、解法一:二叉决策树 DFS四、解法二:组合式回溯写法(推荐)五、解法对比 递归算法是编程中一种非常强大且常见的思想,它能够优雅地解决很多复杂的…...