测试用例设计与管理可以拆成一条可执行链路:先确认测试范围与需求来源,再按设计方法产出用例,经过评审、入库、执行与维护形成闭环。本文聚焦用例的设计方法与内容质量,说明每个环节的输入、动作、输出和完成标志,并给出角色分工、评审标准与完成检查清单,帮助团队把这项工作真正落到日常交付中。
要点总览(TL;DR)
- 测试用例设计与管理是一条六环节链路:范围确认→设计→评审→入库→执行→维护,每个环节都要有明确的输入、输出和完成标志。
- 设计方法按输入形态选择:取值范围用等价类与边界值,业务流程用场景法,状态变化用状态迁移法;每条用例必须写清前置条件、步骤、预期结果、优先级和追溯关系。
- 角色分工要落到人:编写人负责初稿与追溯,评审人负责覆盖度与可执行性,测试负责人管范围与执行分配,产品与开发在评审中澄清需求和技术边界。
- 评审固定在设计完成后和需求变更后两个时点,入库标准是意见闭环、字段完整、追溯建立、归类完成;未入库的草稿不参与执行统计。
- 用可追溯性、覆盖度、评审记录、执行回填、变更同步、字段完整性六项清单做验收,任一项未通过就先补齐再进入执行。
测试用例设计与管理先定哪几件事
开始写用例之前,先把链路和每步的交付物定下来,能避免后面出现“用例写了一堆、没人评审、执行结果无处回填”的情况。测试用例设计与管理的基本链路是:范围确认→设计→评审→入库→执行→维护。六个环节各有明确的输入、动作、输出和完成标志,缺一环,闭环就断了。
| 环节 | 输入 | 动作 | 输出 | 完成标志 |
|---|---|---|---|---|
| 范围确认 | 需求文档、验收标准、风险点、变更记录 | 确定本轮测试对象、优先级与不测范围 | 测试范围说明,含需求条目清单 | 范围经产品与测试双方确认,需求条目可逐条对应 |
| 设计 | 需求条目、验收标准、历史缺陷 | 选择设计方法,编写用例条目 | 可执行的用例条目,含前置条件、步骤、预期结果、优先级 | 每条需求至少有一条对应用例,正向与异常路径均有覆盖 |
| 评审 | 用例初稿、需求条目 | 按检查项逐条核对覆盖度、可执行性、预期结果、可追溯性 | 评审记录与修改意见 | 评审意见闭环,修改后复审通过 |
| 入库 | 评审通过的用例 | 按模块归类,补齐属性与追溯关系 | 用例库中的正式用例 | 用例可被检索、可按需求追溯 |
| 执行 | 测试计划、用例、测试环境 | 分配执行人,记录通过/失败,失败项提缺陷 | 执行记录与缺陷单 | 计划内用例全部有执行结果,失败项均有缺陷关联 |
| 维护 | 需求变更、缺陷复盘、执行反馈 | 更新、补充或废弃用例 | 更新后的用例与变更记录 | 变更需求对应的用例已同步,废弃用例有说明 |
本文的范围是用例的设计方法与内容质量管理,包括怎么选方法、怎么写条目、怎么评审、怎么维护。跨项目的用例资产复用与用例库体系建设属于另一个主题,本文不展开;测试脚本实现与自动化框架选型也不在本文讨论范围内。把边界说清楚,团队在落地时才知道哪些事要在本文的机制里解决,哪些需要另行规划。
用例设计方法怎么选、怎么写出可执行的用例
设计方法的选择取决于输入条件的形态:输入是取值范围,用等价类和边界值;业务流程有多个分支,用场景法;对象有明确的状态变化,用状态迁移法。方法本身不复杂,难的是把方法产出的结果写成别人能照着执行的条目。
| 设计方法 | 适用条件 | 典型产出 | 容易漏掉的部分 |
|---|---|---|---|
| 等价类划分 | 输入字段有明确的合法与非法取值范围 | 有效等价类与无效等价类各若干条用例 | 只测有效值,忽略空值、超长、特殊字符等无效类 |
| 边界值分析 | 输入或数值有上下限、长度限制 | 最小值、最小值减一、最大值、最大值加一等边界用例 | 只测边界本身,漏掉边界两侧的临界值 |
| 场景法 | 业务流程有主流程与多条分支、异常路径 | 主成功场景与备选、异常场景用例 | 只写主流程,异常分支和中断恢复没有覆盖 |
| 状态迁移 | 对象有明确状态与允许的迁移条件 | 合法迁移路径与非法迁移尝试的用例 | 只测合法迁移,不验证非法操作是否被正确拦截 |
一条合格的用例应包含以下字段,缺字段的用例在执行时就会产生歧义:
- 用例标题:一句话说明验证什么,包含对象与条件,例如“手机号为空时提交注册表单”。
- 前置条件:执行前必须满足的环境、数据与账号状态。
- 操作步骤:按顺序编号,每步一个动作,写到执行人不需要猜测的程度。
- 预期结果:与步骤对应,写可观察的现象,例如提示文案、页面跳转、数据状态,避免“正常显示”这类无法判定的描述。
- 优先级:按业务影响与使用频率分级,核心路径为高优先级。
- 追溯关系:关联到具体需求条目或验收标准,便于后续核对覆盖度。
从需求推导用例时,先拆验收标准。每条验收标准通常对应一组正向用例,再针对每个输入条件和业务规则补充异常用例。一个实用的检查方式是:把需求中的每个“如果”“当……时”“不超过”“必须”都标出来,这些词背后往往就是分支条件和边界,只写正向路径的用例通常就是漏掉了这些位置。
角色分工与交付物:谁写、谁评审、谁维护
用例工作的质量很大程度取决于责任是否落到人。建议按以下方式划分角色,团队规模较小时可以一人兼多角,但职责本身要明确。
| 角色 | 主要职责 | 交付物 | 交接节点 |
|---|---|---|---|
| 用例编写人(测试工程师) | 根据需求与验收标准设计用例,保证字段完整、可执行 | 用例初稿、追溯关系 | 初稿完成提交评审 |
| 评审人(测试负责人或资深测试) | 按检查项核对覆盖度与可执行性,给出修改意见 | 评审记录、修改意见 | 评审通过后移交入库 |
| 测试负责人 | 确认测试范围与优先级,分配执行人,跟踪执行进度 | 测试范围说明、测试计划 | 计划确认后启动执行 |
| 产品经理 | 在评审中确认需求理解与验收标准一致,澄清歧义 | 需求澄清结论 | 评审会上或评审记录中确认 |
| 开发人员 | 参与评审,确认技术实现相关的边界与异常处理 | 技术侧边界说明 | 评审阶段提供输入 |
用例变更时的维护责任归属要提前约定。通行做法是:需求变更由提出方同步通知测试负责人,测试负责人指定原编写人或当前模块负责人更新用例,更新后在变更记录中注明原因与影响范围。执行过程中发现用例本身有误的,由执行人反馈给用例负责人修正,避免执行人各自改一份导致版本混乱。
用例评审与入库:怎么判断用例质量合格
评审有两个固定时点:用例设计完成后、需求变更后。前者防止带缺陷的用例进入执行,后者防止变更后的需求与旧用例脱节。评审不必追求形式,但要有记录,能回答“这条用例谁看过、改了什么”。
评审时按以下检查项逐条核对:
- 覆盖度:每条需求与验收标准都有对应用例;正向路径、异常路径、边界条件均有覆盖;高风险模块的用例密度高于一般模块。
- 可执行性:前置条件完整,步骤可照做,不依赖编写人的隐含知识。
- 预期结果明确性:预期结果可观察、可判定,不出现“正常”“合理”这类模糊表述。
- 可追溯性:用例能关联到需求条目,反向也能从需求查到用例。
- 独立性:用例之间尽量不依赖执行顺序,避免一条失败导致后续无法执行。
入库标准可以概括为:评审意见已闭环、字段完整、追溯关系已建立、按模块归类完成。评审不通过时,退回编写人按意见修改并复审,修改意见逐条标记处理结果;对于争议项,由测试负责人与产品经理当场确认结论并记录,避免反复来回。入库后的用例才进入测试计划,未入库的草稿不参与执行统计。
当用例数量增长、评审与执行涉及多个角色时,管理动作需要有承载的地方。ONES 测试管理支持测试用例与需求、任务关联,测试计划与迭代关联,形成测试流程闭环;用例可编写并组织到用例库中,用例属性支持自定义,模块支持树状结构与拖拽排序,用例库中的属性支持筛选。这些能力对应的是把“追溯关系、归类、检索”从表格搬到可流转的工作项上。执行阶段,测试计划可分配用例执行人,未通过的用例可快速创建缺陷任务并在测试与研发团队间流转,执行结果与缺陷处理在同一条链路里衔接。用例评审的具体流程承载方式,建议按团队实际使用的产品配置确认后再定。
一个完整示例:从需求条目到可执行用例
以下为演示情景,用于说明流程,不代表真实客户案例。
需求条目:用户注册时手机号必填,长度为 11 位数字,已注册手机号不可重复注册,注册成功后跳转至首页。
设计:手机号字段有长度与格式约束,用等价类与边界值;注册流程有成功与失败分支,用场景法。产出的用例条目示例如下:
| 字段 | 内容 |
|---|---|
| 用例标题 | 手机号 10 位时提交注册表单 |
| 前置条件 | 处于注册页,该手机号未注册 |
| 操作步骤 | 1. 在手机号输入框输入 10 位数字;2. 填写其余必填项;3. 点击提交 |
| 预期结果 | 提交被拦截,手机号输入框下方提示“请输入 11 位手机号”,页面停留在注册页 |
| 优先级 | 高 |
| 追溯 | 关联需求条目“注册-手机号校验” |
同一需求还应补充:11 位合法手机号注册成功并跳转首页、已注册手机号提交时提示重复、手机号含字母或符号时被拦截、手机号为空时提交被拦截。这样正向与异常路径都有覆盖。
评审:评审人提出两条意见——一是“已注册手机号”用例缺少前置数据说明,需注明该号码已在系统中存在;二是成功注册用例未写明跳转后的页面校验点,需补充首页关键元素。编写人修改后复审通过,用例入库并关联需求条目。
执行与维护:执行人按计划执行,10 位手机号用例通过,成功注册用例失败并记录实际现象,随即创建缺陷任务关联到该用例。开发修复后回归通过。后续需求变更为“手机号支持国际区号”,测试负责人指定模块负责人更新相关用例,新增区号选择的前置条件与对应边界用例,并在变更记录中注明影响范围。
完成检查:用例设计与管理的验收清单
判断这套机制是否真正落地,可以按下面的清单逐项核对。每项都要有可查的证据,口头确认不算通过。
| 检查项 | 通过标准 | 证据 | 未通过时的补齐动作 |
|---|---|---|---|
| 可追溯性 | 每条需求都能查到对应用例,每条用例都关联需求条目 | 需求—用例对照记录 | 补齐追溯关系后再进入执行 |
| 覆盖度 | 正向、异常、边界路径均有用例,高风险模块覆盖充分 | 评审记录中的覆盖核对结论 | 补充缺失路径用例并复审 |
| 评审记录 | 每批用例有评审时间、参与人、意见与处理结果 | 评审记录 | 补做评审,未评审用例不进入执行 |
| 执行回填 | 计划内用例全部有执行结果,失败项关联缺陷 | 执行记录与缺陷单 | 补录结果,失败项补建缺陷 |
| 变更同步 | 变更需求对应的用例已更新,废弃用例有说明 | 变更记录与用例更新记录 | 按变更清单逐条核对并更新 |
| 字段完整性 | 用例均含前置条件、步骤、预期结果、优先级 | 用例库字段检查 | 批量补齐缺失字段后再入库 |
清单中任何一项未通过,对应的用例批次应暂停进入执行或发布统计,先补齐再继续。把这份清单固定在每个迭代的测试收尾环节使用,用例设计与管理的闭环才有稳定的检查点,而不是依赖个人习惯。
常见问题
团队规模很小,用例编写、评审、执行都由一两个人承担,角色分工还有必要吗?
有必要,但可以简化。角色分工的价值在于让每类工作有明确的责任人和交付物,人数少时可以一人兼多角,职责本身仍然要区分开。例如同一个人先以编写人身份产出初稿,再以评审人身份按检查项逐条核对,两步之间留出间隔,能发现不少自己写时忽略的问题。测试负责人确认范围和优先级的动作也可以由同一人完成,但要留下范围说明和评审记录,作为后续追溯的证据。规模扩大或人员变动时,这套职责划分可以直接沿用。
需求变更频繁时,用例维护跟不上怎么办?
关键是把变更通知和用例更新绑定成固定动作,而不是靠记忆。需求变更由提出方同步通知测试负责人,测试负责人指定原编写人或当前模块负责人更新用例,并在变更记录中注明原因与影响范围。执行中发现用例本身有误的,由执行人反馈给用例负责人统一修正,避免多人各自改一份造成版本混乱。变更量大时,可以按模块分批更新,优先处理高优先级和本次迭代要执行的用例,其余用例标注待更新状态,避免带着旧用例直接执行。
用例评审不通过,或者评审中出现争议,应该怎么处理?
评审不通过时,用例退回编写人按意见修改并复审,每条修改意见都要标记处理结果,形成闭环。出现争议时,由测试负责人与产品经理当场确认结论并记录,争议点通常集中在需求理解不一致或验收标准表述模糊,确认后同步更新需求条目或验收标准,避免下一批用例重复出现同样问题。评审记录要能回答“这条用例谁看过、改了什么”,未通过评审的用例不进入入库和执行环节。
用例入库后,怎么保证执行结果和缺陷能对应回原用例?
做法是在执行环节保留用例与执行记录、缺陷之间的关联。执行人按测试计划执行用例,记录通过或失败,失败项创建缺陷任务时关联到具体用例,这样从缺陷能反查到用例,从用例也能看到执行历史和关联缺陷。ONES 测试管理支持测试计划分配用例执行人,未通过的用例可快速创建缺陷任务并在测试与研发团队间流转,执行结果与缺陷处理在同一条链路里衔接。用例评审的具体流程承载方式,建议按团队实际使用的产品配置确认后再定。
用例数量多了以后,怎么保证还能按需求和模块快速找到对应用例?
依赖入库时的归类和追溯关系。用例按模块归类,并关联到具体需求条目或验收标准,检索时既能从需求查到用例,也能从模块定位到用例集合。ONES 测试管理支持用例模块树状结构组织与拖拽排序,用例库中的属性支持筛选,用例可编写并组织到用例库中,属性支持自定义以适配不同业务场景。团队可以据此把追溯关系、归类和检索从表格搬到可流转的工作项上,减少人工对照的成本。
