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

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

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

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,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

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

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

相关推荐
LCG元3 小时前
【面试问题】JIT 是什么?和 JVM 什么关系?
面试·职场和发展
美团测试工程师7 小时前
九大高效的前端测试工具与框架
软件测试·测试工具·jmeter
m0_748245527 小时前
吉利前端、AI面试
前端·面试·职场和发展
kkflash311 小时前
提升专业素养的实用指南
学习·职场和发展
sinat_3070215312 小时前
大数据政策文件——职业道德(山东省大数据职称考试)
大数据·职场和发展
GPT012313 小时前
大模型日报 2024-12-20
程序人生
测试者家园13 小时前
ChatGPT生成接口文档的方法与实践
软件测试·chatgpt·测试用例·接口测试·接口文档·ai赋能·用chatgpt做软件测试
Sudo_Wang15 小时前
力扣150题
算法·leetcode·职场和发展
Heaven64515 小时前
6.8 Newman自动化运行Postman测试集
软件测试·自动化·接口测试·postman·newman
呆呆的猫17 小时前
【LeetCode】9、回文数
算法·leetcode·职场和发展