☰
手工测试基础之测试用例如何编写
2026/10/13 11:04:51 网站建设 项目流程

1. 引言

在软件测试体系中,手工测试仍然占据重要地位,而测试用例的编写则是手工测试的核心环节。一份高质量的测试用例,不仅能够指导测试人员高效执行测试,还能帮助团队沉淀业务知识、提升回归测试效率。本文将从测试用例的基本概念出发,系统讲解测试用例的编写方法、核心要素、设计技巧以及常见误区。

小tips:学习阶段尽量不要使用AI,自己动手可以更深入理解知识。

2. 什么是测试用例

测试用例(Test Case)是为某个特定目标而编制的一组测试输入、执行条件以及预期结果,用于验证软件是否满足需求。简单来说,测试用例回答的是「测什么、怎么测、预期结果是什么」这三个问题。

一份完整的测试用例通常包含以下核心要素:

  • 用例编号:唯一标识,便于管理和追溯。
  • 用例标题:简明扼要地描述测试目的。
  • 前置条件:执行用例前需要满足的环境或数据准备。
  • 测试步骤:按顺序描述操作过程。
  • 测试数据:执行步骤时输入的具体数据。
  • 预期结果:执行后应得到的正确结果。
  • 实际结果:执行后真实得到的结果(执行时填写)。
  • 优先级:用例的重要程度,通常分为高、中、低。

3. 测试用例的编写流程

编写测试用例不是凭空想象,而是需要遵循一套规范的流程,才能保证用例的覆盖度和有效性。下面结合公司里最真实的工作方式,梳理一套可落地的编写流程。

3.1 分析需求文档

在动手编写用例之前,首先要仔细阅读需求文档、原型图或接口文档,明确功能点、业务规则和边界条件。只有充分理解需求,才能设计出有针对性的用例。

在公司实际工作中,需求往往不是一次讲清楚的。测试人员通常需要参加需求评审会,会上开发、产品、测试三方一起过需求,当场把模糊的业务规则、边界条件和异常场景确认清楚。会后还要把评审结论整理成需求澄清记录,作为编写用例的依据。如果需求文档不完整,不要急着写用例,先找产品经理逐条确认,避免用例建立在错误理解之上。

3.2 划分测试模块

将待测功能按照模块或业务场景进行拆分,例如登录模块、订单模块、支付模块等。模块划分有助于用例的组织和管理,也便于后续的覆盖率统计。

在实际项目中,模块划分通常与开发的分工保持一致。测试人员可以对照开发提交的代码变更清单(如 Git 提交记录、需求单关联的改动点),圈定本次迭代涉及的功能模块,再结合历史用例库,判断哪些模块需要新增用例、哪些模块只需回归。这样既能保证覆盖,又不会重复造轮子。

3.3 设计测试场景

针对每个功能点,从正常流程、异常流程、边界条件、数据组合等角度设计测试场景。可以使用等价类划分、边界值分析、场景法等测试设计方法来辅助。

在公司里,场景设计往往不是一个人闷头想,而是先拉上开发做一轮「功能走查」,让开发讲清楚每个接口的入参、出参和异常分支,测试人员据此补充边界和异常场景。同时要结合线上反馈和缺陷库,把历史踩过的坑沉淀成场景。设计完成后,建议先和开发、产品对齐一遍场景清单,确认没有遗漏再进入编写阶段。有的公司会要求开发出一份开发详设,可以根据开发详设补充用例细节。

3.4 编写并评审用例

将设计好的场景整理成标准格式的测试用例,并组织开发、产品、测试三方进行评审,确保用例覆盖完整、预期结果准确、步骤清晰可执行。

实际工作中,用例评审通常放在迭代开发的中期进行(一般开发详设评审结束后就可以开始了),而不是等开发全部完成后再评审。评审时重点核对三件事:一是用例是否覆盖了需求评审时确认的所有规则;二是预期结果是否与产品验收标准一致;三是步骤是否能在测试环境真实执行。评审通过后,用例会录入测试管理平台(如 TestRail、禅道、Xray 等,具体看公司要求使用哪一种测试管理平台),并关联到对应的需求单和缺陷单,方便后续追溯覆盖率。

4. 测试用例的设计方法

掌握常用的测试设计方法,能够帮助测试人员用较少的用例覆盖更多的场景,提升测试效率。

4.1 等价类划分法

将输入数据划分为若干等价类,每个等价类中的数据对测试结果的影响是等价的。从每个等价类中选取少量代表性数据进行测试,即可达到较好的覆盖效果。例如年龄输入框,可划分为有效等价类(0-120)和无效等价类(负数、大于120、非数字)。

4.2 边界值分析法

大量缺陷往往出现在输入范围的边界附近,因此边界值分析法重点测试边界及其两侧的值。例如年龄范围为 0-120,则需要重点测试 -1、0、1、119、120、121 这几个值。

4.3 场景法

场景法从用户实际使用角度出发,模拟用户完成某个业务操作的主流程和备选流程。例如电商下单场景,主流程为「浏览商品-加入购物车-提交订单-支付成功」,备选流程包括「库存不足」「支付超时」「取消订单」等。

4.4 判定表法

当多个条件之间存在组合关系时,可以使用判定表法。将条件和动作列成表格,穷举条件组合,确保每种组合都被覆盖。例如登录功能中「用户名是否正确」和「密码是否正确」两个条件,可组合出四种情况。

4.5 错误推测法

基于测试人员的经验和直觉,推测系统中可能存在的缺陷并设计用例。例如常见的空值提交、重复提交、超长输入、特殊字符等场景。

5. 测试用例编写规范

为了让用例清晰、易读、可维护,编写时需要遵循一些基本规范。

  • 标题简洁明确:用例标题应能一眼看出测试目的,例如「验证用户名为空时登录失败」。
  • 步骤编号清晰:测试步骤按 1、2、3 编号,每一步只描述一个操作。
  • 数据与步骤分离:将测试数据单独列出,便于参数化复用。
  • 预期结果可验证:预期结果要具体、可判断,避免「页面正常」「系统无异常」这类模糊描述。
  • 用例相互独立:每条用例尽量独立,不依赖其他用例的执行结果。
  • 覆盖正反场景:既要覆盖正常流程,也要覆盖异常和边界场景。

6. 测试用例示例

下面以「用户登录」功能为例,展示一份标准测试用例的编写方式。(实际工作中其实不会这么标注,具体的进公司后看同事之前编写的用例风格,保持同步即可)

用例编号用例标题前置条件测试步骤测试数据预期结果优先级
TC-LOGIN-001验证用户名和密码正确时登录成功系统已部署,用户已注册1. 打开登录页
2. 输入用户名和密码
3. 点击登录按钮
用户名:zhangsan
密码:123456
登录成功,跳转至首页高
TC-LOGIN-002验证用户名为空时登录失败系统已部署1. 打开登录页
2. 密码输入正确
3. 点击登录按钮
用户名:空
密码:123456
提示「请输入用户名」,登录不成功高
TC-LOGIN-003验证密码错误时登录失败系统已部署,用户已注册1. 打开登录页
2. 输入正确用户名和错误密码
3. 点击登录按钮
用户名:zhangsan
密码:wrong
提示「用户名或密码错误」,登录不成功高
TC-LOGIN-004验证密码长度边界值系统已部署,用户已注册1. 打开登录页
2. 输入正确用户名和边界长度密码
3. 点击登录按钮
用户名:zhangsan
密码:长度为 6 位和 20 位
6 位密码登录成功,20 位密码登录成功,超出范围提示错误中

7. 测试用例的维护与管理

测试用例不是一成不变的,随着需求变更和版本迭代,用例也需要持续维护。

  • 需求变更时及时更新:功能逻辑发生变化时,同步修改对应用例。
  • 定期评审清理:定期检查用例,删除冗余或已失效的用例。
  • 建立用例库:将用例按模块归档,形成可复用的用例资产。
  • 与缺陷关联:将用例与发现的缺陷关联,便于追溯覆盖情况。

8. 常见误区与注意事项

在实际编写过程中,测试人员容易陷入一些误区,需要特别注意。

  • 只关注正常流程:忽略异常、边界和容错场景,导致线上问题频发。
  • 预期结果模糊:写「页面正常」这类无法判断的描述,执行时难以判定通过与否。
  • 用例粒度过粗或过细:过粗覆盖不全,过细维护成本高,需要根据项目情况把握粒度。
  • 忽视前置条件:前置条件不明确,执行时容易因环境或数据问题中断。
  • 用例与需求脱节:没有紧跟需求变化,用例与当前功能不一致。

9. 总结

测试用例是手工测试的基石,编写一份高质量的测试用例需要结合需求分析、科学的设计方法和规范的编写习惯。通过等价类划分、边界值分析、场景法等手段,可以在有限的用例数量下获得较高的覆盖率。同时,测试用例需要持续维护,与需求变更保持同步,才能真正发挥其在质量保障中的作用。希望本文能帮助测试初学者建立起测试用例编写的系统认知,并在实际项目中不断实践和提升。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询