技术分享 | 如何写好测试用例?

news/2024/7/27 11:24:16/文章来源:https://blog.csdn.net/NHB234567/article/details/137144150

对于软件测试工程师来说,设计测试用例和提交缺陷报告是最基本的职业技能。是非常重要的部分。一个好的测试用例能够指示测试人员如何对软件进行测试。在这篇文章中,我们将介绍测试用例设计常用的几种方法,以及如何编写高效的测试用例。

## 一、测试用例设计的方法

1、等价类划分方法

等价类划分法是将测试数据分成多个等效类别的方法,以减少测试样例的数量。这种方法可以帮助测试人员节省时间和精力。通常,测试人员会为每个等效类别编写至少一个测试用例,并确保可以覆盖到所有的场景。

2、边界值分析方法

边界值分析法常常和等价类划分法一起使用,可以帮助测试人员验证边界上是否发生错误。边界值通常是较小的值、较大的值和边界值。该方法可以帮助测试人员创建相关的测试用例,并减少测试用例的数量及测试时间。

3、判断表驱动测试方法

判断表驱动测试方法是一种基于规则的方法,用于确定特定情况下是否应该使用哪些测试用例。如果有一个规则表,并且为每种情况确定了正确的测试用例,那么这是一种非常有效的测试用例设计方法。

4、基于错误的测试方法

也称为错误判断法。基于错误的测试方法是一种建立测试用例的方法,它基于已知的错误和失败案例。测试人员可以利用以往测试中的失败案例来保证现有软件的质量。因此,这种方法可帮助测试人员集中于缺陷和漏洞的发现与修复。

图片

二、如何编写好的测试用例

1、具体

一个好的测试用例应该非常具体。它需要清楚的描述测试的场景和输入数据,并规定测试的预期输出结果。这将有助于确保测试过程中不会出现未知的情况,并使测试结果更准确。

2、有针对性

测试用例应该针对性强,只需要针对软件的特定方面进行测试,以便进行比较有针对性的测试。如果测试不相关的功能,会使测试更低效,有时甚至会延长测试时间。

3、复现性

测试用例应该具有可重复性和可操作性。在测试用例中,必须要确保测试人员可以轻松地复现测试所需的步骤和数据。如果测试用例缺少这些特性,测试人员将难以记住堆栈测试的步骤,而这会使测试过程变得更加复杂不容易操作。

4、有数据支撑

测试用例需要有测试数据支持。它们应该包含必要的数据以能够让测试人员对软件进行测试,并检查它们是否如预期那样运行。在编写测试数据时,测试人员应慎重选择数据,确保所有测试数据都是有用的。

总体来说,测试用例的有效性是一个重要的因素,也是测试过程中的关键环节之一。在编写好的测试用例之前,测试人员需要掌握各种测试用例的设计方法,并遵循最新的测试标准和流程。如果在测试用例设计过程中遵循这些方法,并注意它们的步骤和基本原则,那么可以创建出一系列高质量的测试用例,帮助软件开发人员快速定位软件缺陷并修复。

测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。

测试需要保证以下两点:

程序做了它应该做的事情

程序没有做它不该做的事情

因此,作为测试实施依据的测试用例,必须要能完整覆盖测试需求,而不应针对单个Case去评判好坏。

三、编写测试用例前测试人员要做好哪些准备

1、对被测版本足够了解

由粗略详细步骤来解读产品需求文档,如交互、功能流程、边界、约束等等。充分理解技术实现原理(实现的逻辑原理、架构及对其他平台的依赖、接口等)。深入理解用户群,分析用户使用场景、可能的使用方法及用户心理,完全从用户角度出发,来设计Case,同时对用户体验做出一定的判断。

2、设计Case优先级

一般BugFree或禅道工具中编写好Case后可以按优先级来筛选优先级,如果是用Excel文档来写可以来通过不同背景色来标识相应的优先级,无论评审还是执行,都可以按此来查阅。无论是冒烟测试用例还是功能测试用例,节省大量时间。

3、从粗到细分析需求

可以使用工具辅助,第一遍需求分析时,粗略画出测试需求框架;第二遍分析需求时,开始延伸每个出子测试点;细化测试点时,可参考或引用写好的公共Case, 也要考虑到被测版本中该功能的特性。另外需要考虑的就是测试点的颗粒度要把握好。

4、测试用例Update

需求分析阶段和开发阶段 ,都可能出现需求变更,这时对于我们前期粗略整理好的测试点就需要及时的同步更新了。另外在Case评审阶段,可能会出现Case冗余或遗漏,也需要在评审结束后在Case池里及时修整。如果项目中有使用需求工具之类的,可以利用工具去同步通知到每个节点的负责人,会大大 减少UPdate的时间。

图片

四、测试新人如何快速提升设计用例的能力

1、 非常熟悉业务

这是必备条件,因为所有Case都是从业务层开始入手的,而终端使用者也是以业务为出发点。

2、 培养用户思维

测试人员需要站在客户的角度分析用户需要什么、想要什么、不想要什么,这样有利于我们更好的挖掘隐含需求。所以设计场景时也同样是站在用户角度。

3、 勿限制测试思维

对于好的测试人员,都会有自己的一份通用测试用例表, 每次编写测试用例时,会将重复或公共的功能摘出来,去参照已有的通用Case。但若不能做到及时更新 ,随公司项目变更等,很可能在某些项目中固步自封,不能灵活地运用。所以通用Case总结更新是必不可少的,也可以分享出来让同行参谋 ,大家集思广益,也许其他人有更新奇的方法,这样会不断地开拓自己的测试思维 ,而不至于一直重复原有的经验。

4、 乐于分享,有计划地总结

给自己的学习过程制订一个详细的计划,量化到天,排好每天要学习的东西。同时最重要的是,一定要养成总结的习惯 ,每天总结 ,每个项目总结 ,总结测试方法,总结Bug原因,奇葩Bug等等,这些将会成为你日后工作的宝贵财富。同时主动总结久了, 你会发现自己有质的提升,而且对于当前的工作会更游刃有余,所以经验是靠日积月累的。

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

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

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

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

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

相关文章

Nginx配置导致请求成环的问题

前期介绍 在一台主机上部署LAMP,之后使用Nginx实现反向代理,并且实现动静分离。 apache的访问端口为80,Nginx,访问端口为8001端口。 首先可以实现反向代理。 [rootlnmp-247 ~]# cat /usr/local/nginx/conf/nginx.conf worker_…

FPGA之组合逻辑与时序逻辑

数字逻辑电路根据逻辑功能的不同,可以分成两大类:组合逻辑电路和时序逻辑电路,这两种电路结构是FPGA编程常用到的,掌握这两种电路结构是学习FPGA的基本要求。 1.组合逻辑电路 组合逻辑电路概念:任意时刻的输出仅仅取决…

k8s笔记28--快速在ubuntu上基于二进制和源码安装containerd

k8s笔记28--快速在ubuntu上基于二进制和源码安装containerd 介绍containerd 安装方法二进制文件安装源码构建安装 注意事项说明 介绍 Containerd是一个工业标准的容器运行时,它强调简单、健壮和可移植性。它可作为Linux和Windows的守护进程,能管理主机系…

十四.PyEcharts基础学习

目录 1-PyEcharts介绍 优点: 安装: 官方文档: 2-PyEcharts快速入门 2.1 第一个图表绘制 2.2 链式调用 2.3 opeions配置项 2.4 渲染图片文件 2.5 使用主题 3-PyEcharts配置项 3.1 初始化配置项InitOpts InitOpts 3.2 全局配置项set_global_o…

Python爬虫逆向:揭秘网站反爬虫技术与应对策略

目录 前言 一、网站反爬虫技术概述 1. User-Agent检测 2. IP限制 3. 图像验证码 4. 动态渲染 5. 反爬虫算法 二、Python爬虫逆向的基本原理 三、应对网站反爬虫技术的代码示例 1. User-Agent检测: 2. IP代理: 3. 验证码识别: 4.…

如何将本地仓库放到远程仓库中

在我们仓库创建好之后&#xff0c;我们复制好ssh 接着我们需要使用git remote add<shortname><url>这个命令 shortname就是我们远程仓库的别名 接着使用git remote -v这个命令查看一下目前远程仓库的别名和地址 原本还有一个指令git branch -M main 指定分支的名…

vitess执行计划缓存 测试

打开执行计划器缓存&#xff1a; sysbench /usr/local/share/sysbench/oltp_write_only.lua --mysql-host127.0.0.1 --mysql-port15306 --mysql-userroot --mysql-password --mysql-dbcustomer --report-interval10 100s sysbench /usr/local/share/sysbench/oltp_read_only.l…

QML嵌套页面的实现学习记录

StackView是一个QML组件&#xff0c;用于管理和显示多个页面。它提供了向前和向后导航的功能&#xff0c;可以在堆栈中推入新页面&#xff0c;并在不需要时将页面弹出。 ApplicationWindow {id:rootvisible: truewidth: 340height: 480title: qsTr("Stack")// 抽屉:…

格雷希尔G10系列L150A和L200A气动快速连接器,在新能源汽车线束线缆剥线后的气密性测试密封方案

线束线缆在很多用电环境都有使用&#xff0c;比如说新能源汽车&#xff0c;从电池包放电开始&#xff0c;高低压、通讯都开始进行工作&#xff0c;线束在连接的地方需要具有较高的气密性和稳定性&#xff0c;才能保证车辆在不同环境下能够正常的运行。 线束在组装铜鼻子前需要剥…

vue+elementUI搭建动态表头的表格

前提&#xff1a;以下代码是vue2项目结合elementUi完成的 数据结构 后端传来的数据是两个list&#xff0c;一个表头的list&#xff0c;一个表格内容的list // 表头 headTableAtts: [{ columnLabel: 姓名, columnName: name },{ columnLabel: 年龄, columnName: age },{ colu…

基于Arduino IDE 野火ESP8266模块 文件系统LittleFS 的开发

一、文件系统LittleFS的介绍 LittleFS是一个为微控制器设计的轻量级、可靠且高性能的文件系统。它专为嵌入式设备打造&#xff0c;拥有占用空间小、对硬件要求低的特点&#xff0c;同时保证在断电情况下数据的完整性和稳定性。 1.设计与特点 LittleFS的设计旨在提供嵌入式系统所…

vue基础教程(6)——构建项目级登录页

同学们可以私信我加入学习群&#xff01; 正文开始 前言一、创建首页二、登录页代码讲解三、对应的vue知识点&#xff1a;四、附件-各文件代码总结 前言 前面我们已经把vue自带的页面删除&#xff0c;也搭建了最简单的router路由&#xff0c;下面就可以真正开发我们自己的项目…

17.应用负载压力测试

早些点&#xff0c;下午题考&#xff0c;最近几年出现的少&#xff1b; 备考较为简单&#xff1b;历年真题相似度高&#xff1b; 主要议题&#xff1a; 1.负载压力测试概述 注意这些测试细微的差别&#xff1b; 负载测试和压力测试的方法比较相似&#xff0c;但是目的不同&a…

Vue限制文本框显示字数,多余用...代替

1.在filters.js封装过滤器方法 import Vue from vue//设置只显示几个字符串&#xff0c;默认20个 Vue.filter(filterAmount, function(value, n) {if(!n) n 20;if(value && value.length > n) {value value.substring(0, n) ...;}return value;} )2.在main.js引…

2024最强秋招八股文(精简、纯手打)

7/28日已更新&#xff0c;错误已修改~~~有错误的地方&#xff0c;欢迎大家留言&#xff01; 目录 一、Java基础篇 1.接口和抽象类的区别 2.重载和重写的区别 3.和equals的区别 4.异常处理机制 5.HashMap原理 6.想要线程安全的HashMap怎么办&#xff1f; 7.ConcurrentHa…

【C语言基础】:自定义类型(二) -->联合和枚举

文章目录 一、联合体1.1 联合体类型的声明1.2 联合体的特点1.3 相同成员的结构体和联合体对比1.4 联合体大小的计算1.5 联合体练习 二、枚举类型2.1 枚举类型的声明2.2 枚举的优点 书山有路勤为径&#xff0c;学海无涯苦作舟。 创作不易&#xff0c;宝子们&#xff01;如果这篇…

C#OpenCvSharp YOLO v3 Demo

目录 效果 项目 代码 下载 效果 项目 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp; using S…

低噪声、轨至轨运算放大器芯片—— D721、D722、D724,适合用于音频领域

应用领域 D721、D722、D724是我们推荐的三款低噪声、轨至轨运算放大器芯片&#xff0c;其中D721为单运放&#xff0c;D722为双运放&#xff0c;D724为四运放。适合用于音频领域、传感器等的信号放大处理&#xff0c;比如K歌宝、音响、测距、滤波器、AD转换器前级信号处理等等。…

微信小程序(黑马优购:搜索)

一.自定义搜索组件 1.修正分类页面高度 获取高度应该减去搜索框占的50px this.wh sysInfo.windowHeight - 50 2.动态修改搜索框的背景颜色和圆角 <my-search></my-search><!-- <my-search :bgcolor" green " :radius"3"></my-…

Halcon3D倾斜平面矫正至水平面

前言 在相当多的3d检测中&#xff0c;由于各种因素的干扰&#xff0c;我们所检测的平面通常并不是一个水平面&#xff0c;或者被检测的面不是水平面的情况。尤其是在倾斜面的缺陷检测和平面度检测中&#xff0c;使用被测面与拟合基准面进行计算很难做到准确的定位到缺陷的情况…