测试用例编写规范要回答的是“用例写成什么样才算合格、由谁写、谁评审、什么条件下能进入执行”。一份可落地的规范通常包含统一字段与写法约定、从需求到用例的设计步骤、角色分工与交付物、可逐项判断的评审检查四部分。本文给出可直接套用的文档骨架、字段表、设计流程、正反示例和评审清单,并说明如何借助工具承载需求关联与评审记录。
要点总览(TL;DR)
- 测试用例编写规范由五块组成:适用范围、字段定义、写法约定、设计步骤、角色与评审规则,篇幅服从可执行性。
- 核心字段建议保留编号、标题、前置条件、操作步骤、预期结果、关联需求,其余字段可按团队规模裁剪。
- 设计流程按“收集需求与验收标准→拆分测试点→选择设计方法→编写用例→建立覆盖对照”推进,等价类、边界值、场景法、状态迁移按测试点性质选用。
- 评审以字段完整、步骤可执行、预期结果可观察、覆盖需求条目、一条用例一个验证点为阻断项,阻断项清零才进入执行。
- 规范落地看三个信号:新成员初稿阻断项下降、覆盖对照表能回答需求有无用例、需求变更后失效用例被及时标记。
一份测试用例编写规范应包含哪些内容
规范文档的篇幅服从可执行性。一份能让新成员照着写、让评审人照着判的规范,通常由五块内容组成:适用范围、字段定义、写法约定、设计步骤、角色与评审规则。五块之间是递进关系——先界定管什么,再规定写什么、怎么写、按什么流程写,最后规定谁来判、按什么标准判。
适用范围放在文档开头,写明规范覆盖哪些产品线、哪些测试类型(功能、接口、兼容性等),以及哪些场景可以简化。范围写清楚,后续字段和评审标准才有统一口径,避免不同项目各写一套。
字段定义是规范的核心。字段不必多,但要保证他人拿到一条用例能独立执行。下表是一份可直接裁剪使用的核心字段表:
| 字段 | 填写要求 | 是否必填 |
|---|---|---|
| 用例编号 | 按模块或需求前缀加序号,全局唯一,便于引用与追溯 | 必填 |
| 标题 | 写清验证对象与关键条件,如“手机号未注册时登录提示账号不存在” | 必填 |
| 前置条件 | 执行前必须满足的系统状态、账号状态、数据状态 | 必填 |
| 测试数据 | 本用例使用的具体输入值,或指向数据集的说明 | 按需 |
| 操作步骤 | 按顺序编号的可执行动作,每步一个动作 | 必填 |
| 预期结果 | 与步骤对应的可观察现象,含界面提示、数据变化、状态流转 | 必填 |
| 优先级 | 按业务影响与使用频率分级,如高、中、低 | 必填 |
| 关联需求 | 对应的需求条目或验收标准编号 | 必填 |
字段可按团队规模裁剪。小团队可以合并测试数据与前置条件,但编号、标题、步骤、预期结果、关联需求五项建议保留,它们分别支撑追溯、检索、执行和覆盖判断。
写法约定用简短条款固定下来,常见的有三条:一条用例只验证一个判断点;步骤写到他人可照着操作的程度;预期结果写成可观察的现象,避免“正常”“正确”这类无法判定的表述。这三条直接决定评审时能否逐项判断。
规范还要划清与相邻工作的边界。规范管的是用例的内容质量与评审准入;用例库的分层组织、跨项目复用属于资产管理范畴;自动化脚本如何实现属于工程实现范畴。边界写清楚,规范就不会被写成一本包罗万象的手册,执行时也少争议。
从需求到用例:设计步骤与写法约定
设计流程按“输入—动作—输出”推进,每一步都有明确的完成标志,避免写到一半才发现覆盖不全。
第一步,收集输入。输入包括需求条目、验收标准、接口文档或界面说明。完成标志是每条待测需求都有可引用的编号,验收标准能拆出至少一个可判断的结论。验收标准含糊时,先找需求方澄清,澄清结论回写到需求条目,再进入下一步。
第二步,拆分测试点。把每条需求拆成若干“可独立判断对错”的测试点,形成测试点清单。拆分时关注三类来源:正常业务流程、异常与边界输入、状态与权限变化。完成标志是测试点清单能逐条对应回需求编号,且没有两个测试点验证同一件事。
第三步,选择设计方法。按测试点性质选用方法,不必每条都用全套:
- 输入取值范围明确的,用等价类划分与边界值分析,覆盖有效值、无效值和边界两侧;
- 涉及多步骤业务流程的,用场景法,写主流程与关键分支流程;
- 对象有明确状态变化的,用状态迁移法,覆盖合法迁移与非法迁移;
- 多个条件组合影响结果的,用判定表梳理条件与动作的对应关系。
第四步,编写用例。按字段表逐项填写。标题写“条件+验证对象+预期方向”,步骤写操作,预期结果写现象。一条用例只保留一个验证点,多个判断点拆成多条,便于失败时定位。
第五步,建立覆盖对照。输出一张覆盖对照表,列出需求编号、测试点、对应用例编号、优先级。完成标志是每条需求至少有一条用例覆盖,高优先级需求的主流程与关键异常都有对应用例。覆盖对照表同时是评审时的核对依据。
测试数据单独约定准备方式:固定数据集(如测试账号、基础配置)由团队统一维护并注明版本;用例内临时构造的数据写在测试数据字段;涉及敏感信息的数据做脱敏处理。复用同一数据集时,在用例中引用数据集名称而非重复抄写,减少维护成本。
写法上还有两个细节值得固定。步骤中的操作对象写具体名称,如“在登录页手机号输入框输入 13800000000”,避免“输入手机号”这类需要读者自行补全的表述。预期结果按步骤顺序对应书写,一步操作对应一条可观察现象,出现多条现象时拆成子项编号。
角色分工与各环节交付物
规范能否执行,取决于每个环节是否有人负责、有物可交。下表按角色列出动作与交付物,完成标志用于判断该环节是否可以进入下一环节。
| 角色 | 主要动作 | 交付物 | 完成标志 |
|---|---|---|---|
| 测试设计者 | 拆分测试点、选择设计方法、编写用例 | 测试点清单、用例初稿、覆盖对照表 | 每条需求有对应用例,字段填写完整 |
| 需求或开发角色 | 澄清需求歧义、确认预期结果 | 澄清结论、预期结果确认意见 | 有争议的预期结果已达成一致并回写 |
| 评审人 | 按检查清单逐项核对,给出结论 | 评审意见、通过或阻断结论 | 阻断项全部关闭,结论已记录 |
| 用例维护责任人 | 处理需求变更、标记失效用例、更新版本 | 变更记录、失效用例清单 | 变更后覆盖对照表同步更新 |
测试设计者是第一责任人,对用例的可执行性负责。需求或开发角色的参与集中在预期结果确认上,尤其是涉及业务规则和计算逻辑的部分,这类内容仅靠测试侧推断容易出错。评审人可以是同组测试成员,也可以是跨组互评,关键是按同一份清单判断。维护责任人通常由模块负责人兼任,负责需求变更后及时更新用例,避免用例库长期积累失效内容。
交付物的完成标志要写进规范,而不是停留在口头约定。例如“用例初稿完成”指字段完整且覆盖对照表已填;“评审通过”指阻断项清零且结论已记录。标志明确,交接时就不需要反复确认进度。
当团队使用测试管理工具承载这些动作时,需求关联、评审流转和状态记录可以放在同一处。ONES TestCase 支持测试用例与需求、任务关联,测试计划与迭代关联,形成测试流程闭环;用例属性可自定义,便于把上述字段表落到工具中;未通过的用例可快速创建缺陷任务,缺陷在测试与研发团队间流转。评审意见与结论的记录方式需结合团队实际配置确认,规范中可先约定记录载体与必填内容。
示例:一条合格用例与一条待修改用例
下面用登录失败提示场景做正反对比,把字段和写法约定落到具体文本上。
合格用例示例。
- 用例编号:LOGIN-012
- 标题:手机号未注册时使用密码登录,提示账号不存在
- 前置条件:系统运行正常;手机号 13900000001 未注册任何账号
- 测试数据:手机号 13900000001,密码 Abc12345
- 操作步骤:1. 打开登录页;2. 在手机号输入框输入 13900000001;3. 在密码输入框输入 Abc12345;4. 点击“登录”按钮
- 预期结果:1. 登录页正常展示手机号、密码输入框与登录按钮;2. 输入内容完整显示;3. 密码以掩码显示;4. 页面停留在登录页,弹出提示“账号不存在”,不跳转首页
- 优先级:高
- 关联需求:REQ-LOGIN-003
待修改用例示例。
- 标题:登录测试
- 步骤:输入账号密码,点击登录,检查结果
- 预期结果:登录正常或提示错误
这条用例的问题可以逐项指出:标题没有写验证对象和条件,无法判断测的是成功还是失败;步骤缺少具体输入值,他人无法照着执行;预期结果用“正常或提示错误”覆盖了两种相反结果,执行后无法判断通过与否;一条用例混入了成功与失败两个验证点。修改方式是拆成两条用例,分别对应登录成功与账号不存在两种情形,各自补齐前置条件、测试数据和可观察的预期结果,并把关联需求补上。
从示例可以归纳出可迁移的写法规律:标题回答“在什么条件下验证什么”;步骤回答“怎么做”,每步一个动作并带具体输入;预期结果回答“看到什么”,写界面提示、页面跳转、数据变化等可观察现象;一条用例只回答一个问题。按这四条检查,大部分含糊用例都能被识别出来。
评审与完成检查:规范落地的判断标准
评审时点建议放在用例初稿完成、覆盖对照表填好之后,进入执行之前。参与角色包括测试设计者、评审人,涉及业务规则的用例邀请需求或开发角色参加。评审以检查清单逐项核对,结论分为通过与阻断两类。
| 检查项 | 判断方式 | 不满足时的处理 |
|---|---|---|
| 字段完整 | 必填字段无空缺,编号唯一 | 阻断,补齐后重审 |
| 步骤可执行 | 他人按步骤可独立操作,输入值明确 | 阻断,补充具体操作与数据 |
| 预期结果可观察 | 每条预期结果对应可看到的现象或可查的数据变化 | 阻断,改写为可观察表述 |
| 覆盖需求条目 | 覆盖对照表中每条需求至少一条用例,高优先级需求含关键异常 | 阻断,补充缺失用例 |
| 优先级合理 | 高优先级对应主流程与高频场景 | 可评审后调整,不单独阻断 |
| 一条用例一个验证点 | 不存在多个判断点混写 | 阻断,拆分后重审 |
通过标准是阻断项全部关闭,评审意见已逐条回应,结论记录在案。阻断项与建议项要分开记录:字段缺失、步骤不可执行、预期结果不可观察、覆盖缺口属于阻断项,必须在进入执行前解决;表述优化、优先级微调属于建议项,可记录后择期处理。这样区分可以避免评审变成无休止的讨论。
证据留存包括三样:评审记录(参与人、意见、结论)、覆盖对照表(需求与用例的对应关系)、变更记录(需求变更后哪些用例被修改或失效)。三样材料在需求变更和版本回溯时直接可用。若团队在工具中管理用例,ONES TestCase 支持为不同用户组配置权限,并可为用例库、测试计划单独配置权限,评审记录与变更记录的存放位置可按权限范围划分;用例库中所有用例属性支持筛选,便于按关联需求或状态检索待审用例。
规范本身也需要维护。建议指定一名规范维护人,收集执行中反复出现的争议点,按版本更新文档,每次更新记录修改条款与生效时间。当某条约定连续多次在评审中引发分歧,说明表述需要细化,而不是靠个案裁量。规范版本与用例模板版本保持对应,避免新旧模板混用。
判断规范是否真正落地,可以看三个可观察信号:新成员按规范写出的初稿,评审阻断项数量逐步下降;覆盖对照表能随时回答“这条需求有没有用例”;需求变更后,失效用例能被及时标记而不是长期滞留。三个信号稳定出现,说明规范已经从文档变成了团队的日常动作。
常见问题
团队规模小,字段表可以精简到什么程度?
可以合并测试数据与前置条件,但编号、标题、操作步骤、预期结果、关联需求五项建议保留。这五项分别支撑追溯、检索、执行和覆盖判断,删掉任何一项都会让评审缺少判断依据。精简的前提是团队对合并后的字段填写口径有共识,并在规范中写清楚合并规则,避免不同人写出不同结构。
需求验收标准写得含糊,用例还能先写吗?
可以先拆测试点,但预期结果部分建议等澄清结论回写到需求条目后再定稿。验收标准含糊时,测试侧自行推断业务规则容易出错,尤其是计算逻辑和权限规则。实际操作中可先按已明确的部分编写用例,把有争议的预期结果标记为待确认,在评审时邀请需求或开发角色逐条确认,确认结论同步回写需求条目和用例。
评审时建议项和阻断项怎么区分,避免评审拖长?
把影响执行判断的问题列为阻断项,包括字段缺失、步骤他人无法照着操作、预期结果不可观察、需求覆盖有缺口、多个验证点混在一条。表述优化、优先级微调这类不影响执行的问题列为建议项,记录后择期处理。评审结论以阻断项是否清零为准,建议项不阻塞进入执行。这样区分后,评审讨论有明确边界,不会因为措辞反复拉扯。
需求变更后,已有用例怎么处理才不至于长期失效?
建议指定模块负责人兼任用例维护责任人,需求变更时同步检查关联用例,把受影响的用例标记为待修改或失效,并更新覆盖对照表。变更记录写清哪些用例被修改、哪些失效、对应哪次需求变更。规范中可约定变更后多长时间内完成用例更新,以及更新完成前这些用例不进入执行范围。定期按关联需求检索用例,能帮助发现长期未更新的内容。
用工具管理用例时,规范中的字段和评审记录怎么落地?
可以把字段表映射为工具的用例属性,通过自定义属性承载编号、优先级、关联需求等字段。ONES TestCase 支持测试用例与需求、任务关联,用例属性可自定义,用例库中所有用例属性支持筛选,便于按关联需求或状态检索待审用例;还支持为不同用户组以及用例库、测试计划单独配置权限,评审记录与变更记录可按权限范围划分存放位置。评审环节的专门流程需结合团队实际配置确认,规范中可先约定记录载体与必填内容。
