如何编写好的测试用例?

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

一、测试用例设计的方法

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等等,这些将会成为你日后工作的宝贵财富。同时主动总结久了, 你会发现自己有质的提升,而且对于当前的工作会更游刃有余,所以经验是靠日积月累的。
 

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

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

相关文章

Axure->Axure安装,Axure菜单栏和工具栏功能介绍,页面及概要区

目录 一.项目的全周期 二.产品经理的介绍 三.Axure安装 四.Axure的基本使用 1.Axure菜单栏和工具栏功能介绍,页面及概要区 一.项目的全周期 二.产品经理的介绍 同时做五个项目,每个项目100w,一个项目成本需要50-60w,那么五个…

汽车清除积碳和清洗节气门

汽车清除积碳和清洗节气门 汽车需要清除积碳的部位检查积碳方法: 清除积碳和清洗节气门风险:燃油宝 第一次清除积碳1万公里2万公里3万公里--5万公里6万公里以上 汽车需要清除积碳的部位 节气门喷油嘴进气道燃烧室 检查积碳方法: 建议每3到5…

react-router-dom 在 React Hook 中的常用组合拳

React Router DOM 是一个用于在 React 应用中实现路由功能的库。它提供了一组组件和钩子,可以帮助我们管理应用的导航和路由,结合 React Hook 的使用可以使我们的代码更加简洁和易于维护。 使用版本:"react-router-dom": "^6.…

SLAM算法与工程实践——相机篇:传统相机使用(2)

SLAM算法与工程实践系列文章 下面是SLAM算法与工程实践系列文章的总链接,本人发表这个系列的文章链接均收录于此 SLAM算法与工程实践系列文章链接 下面是专栏地址: SLAM算法与工程实践系列专栏 文章目录 SLAM算法与工程实践系列文章SLAM算法与工程实践…

从计算机底层深入Golang高并发

从计算机底层深入Golang高并发 1.源码流程架构图 2.源码解读 runtime/proc.go下的newpro() func newproc(fn *funcval) {//计算额外参数的地址argpgp : getg()pc : getcallerpc()//s1使用systemstack调用newproc1 systemstack(func() {newg : newproc1(fn, gp, pc)_p_ : getg…

web前端之正弦波浪动功能、repeat、calc

MENU 效果图htmlstylecalcrepeat 效果图 html <div class"grid"><span class"line"></span><span class"line"></span><span class"line"></span><span class"line"><…

[开源更新] 企业级身份管理和访问管理系统、为数字身份安全赋能

一、系统简介 名称&#xff1a;JNPF权限管理系统 JNPF 权限管理系统可用于管理企业内员工账号、权限、身份认证、应用访问等&#xff0c;可整合部署在本地或云端的内部办公系统、业务系统及第三方 SaaS 系统的所有身份&#xff0c;实现一个账号打通所有应用的服务。其有如下几…

C# OpenVINO 直接读取百度模型实现印章检测

目录 效果 模型信息 项目 代码 下载 其他 C# OpenVINO 直接读取百度模型实现印章检测 效果 模型信息 Inputs ------------------------- name&#xff1a;scale_factor tensor&#xff1a;F32[?, 2] name&#xff1a;image tensor&#xff1a;F32[?, 3, 608, 608] …

oracle aq java jms使用(数据类型为XMLTYPE)

记录一次冷门技术oracle aq的使用 版本 oracle 11g 创建用户 -- 创建用户 create user testaq identified by 123456; grant connect, resource to testaq;-- 创建aq所需要的权限 grant execute on dbms_aq to testaq; grant execute on dbms_aqadm to testaq; begindbms_a…

吴恩达《机器学习》12-2-12-3:大边界的直观理解、大边界分类背后的数学

一、大边界的直观理解 1. 大间距分类器的背景 支持向量机的大间距分类器着眼于构建一个能够在正负样本之间划定最大间距的决策边界。为了理解这一点&#xff0c;首先观察支持向量机的代价函数&#xff0c;其中涉及到正负样本的代价函数cos&#x1d461;1(&#x1d467;)和cos…

【Qt QML入门】Button

Button表示一个推按钮控件&#xff0c;用户可以按下或单击它。 import QtQuick import QtQuick.Window import QtQuick.ControlsWindow {id: winwidth: 800height: 600visible: truetitle: qsTr("Hello World")Button {id: btnwidth: 200height: 100anchors.centerIn…

[笔记] iperf3.1.3源码下载与交叉编译

由于需要测试一款40G网卡&#xff0c;下载了 iperf3.1.3 用于性能测试。 iperf3.1.3 源码下载 可以在 iperf 官网 下载源代码&#xff1a; 交叉编译 需要运行在 aarch64 linux 环境下&#xff0c;所以需要交叉编译。 进入iperf3 目录下&#xff0c;运行 ./configure 脚本…

JavaWeb之前端三件套

前端三件套 HTML1、入门程序2、HTML概念词汇解释3、常见标签3.1 标题标签3.2 段落标签3.3 换行标签3.4 列表标签3.5 超链接标签3.6 多媒体标签3.7 表格标签&#xff08;重点&#xff09;3.8 表单标签(重点)3.9 常见表单项标签(重点)3.10 布局相关标签 CSS1、CSS引入方式2、CSS引…

【Java】线程池的创建

目录 ​编辑 一、什么是线程池 二、创建和使用 导入必要的包&#xff1a; 创建线程池&#xff1a; 提交任务给线程池执行&#xff1a; 自定义Runnable和Callable任务&#xff1a; 关闭线程池&#xff1a; 我的其他博客 一、什么是线程池 在Java中&#xff0c;线程池是…

【Apollo】编译 Apollo 源码

https://github.com/ApolloAuto/apollo/blob/master/docs/01_Installation%20Instructions/apollo_build_and_test_explained.md 查看apollo.sh 的用法 ./apollo.sh --help可以编译整个模块&#xff0c;也可以单独编译某一个子模块./modules 为简单起见&#xff0c;Apollo 6.0…

快速多列查找匹配关键字

实例需求&#xff1a;根据第一列专业名称&#xff0c;在“专业分类指导目录”中&#xff0c;针对三个学历层次&#xff08;研究生、本科生、专科生&#xff09;分别查找对应专业类别&#xff0c;填写在对应位置&#xff0c;即截图中的黄色区域。 需要注意如下两点&#xff1a; …

linux磁盘空间清理

查看磁盘使用情况 查看磁盘分区上可以使用的磁盘空间 $ df -h若要查看文件类型和block&#xff0c;使用下面的命令 $ df -T查看每个文件和目录的磁盘使用空间&#xff0c;也就是文件的大小。 $ sudo du -sh /* $ sudo du -h --max-depth1 /清理旧的 Snap 包版本以释放磁盘空…

内部集成M0内核MCU Sub-1G 高性能低功耗的单片集成收发芯片DP4306F

DP4306F是一款高性能低功耗的单片集成收发机&#xff0c;集成M0核MCU&#xff0c;工作频率可覆盖200MHz~1000MHz&#xff0c;支持230/408/433/470/868/915频段。该芯片集成了射频接收器、射频发射器、频 率综合器、GFSK调制器、GFSK解调器等功能模块。通过SPI接口可以对输出功率…

Rancher中使用promtail+loki+grafna收集k8s日志并展示

Rancher中使用promtail+loki+grafna收集k8s日志并展示 根据应用需求和日志数量级别选择对应的日志收集、过滤和展示方式,当日志量不太大,又想简单集中管理查看日志时,可使用promtail+loki+grafna的方式。本文找那个loki和grafana外置在了k8s集群之外。 1、添加Chart Repo …

浏览器的事件循环机制(Event loop)

事件循环 浏览器的进程模型 何为进程&#xff1f; 程序运行需要有它自己专属的内存空间&#xff0c;可以把这块内存空间简单的理解为进程 每个应用至少有一个进程&#xff0c;进程之间相互独立&#xff0c;即使要通信&#xff0c;也需要双方同意。 何为线程&#xff1f; …