软件验收测试用例怎么写?需求覆盖、评审要点与常见误区
作者:李辉 · 验收专家 | 审核:内容审核(软测实验室)
验收会开到一半,甲方拿着需求规格说明书逐条核对:“这一项功能,你们的测试用例在哪?覆盖了吗?”开发团队翻遍文档,只找到几张零散的测试执行记录,验收当场被叫停,上线时间跟着顺延。类似场景在软件项目验收中并不少见,问题往往不出在系统本身,而在于验收测试用例没有提前写扎实。用例写得规范、覆盖完整,验收会才能开得有据可依。
验收测试用例与日常测试用例的差别
日常迭代测试重在发现缺陷,用例可以随时增删调整;验收测试用例面向的是正式验收场景,背后站着合同条款、需求基线和测评依据,写法上有明显不同。
依据来源不同:以合同与需求规格为硬约束
验收测试用例必须能逐条追溯到合同技术条款和需求规格说明书,需求文档里的每一条“系统应……”,都应在用例中有对应的验证点。GB/T 15532-2008《计算机软件测试规范》将验收测试列为独立的测试阶段,其输入正是经过甲乙双方确认的需求基线,脱离需求编写的用例在评审时站不住脚。
通过判定不同:判的是“能否交付”
日常测试关注缺陷密度和修复率,验收测试关注的是每条需求的验证结果是否满足验收准则,结论直接影响项目能否通过验收、进入付款与移交环节。因此每条用例都要写清“怎样算通过”,不留模糊空间。
使用对象不同:给甲方和评审专家看
验收会上,甲方代表和专家会抽查用例。用例表述要让非技术背景的评审者也能看懂:验证的是什么需求、怎么执行、结果如何判定。写得只有开发自己能懂的用例,等于没写。
动笔前先建需求追踪矩阵
验收测试用例不是从零开始写,而是从需求条目“翻译”过来。没有追踪矩阵,覆盖缺口只能靠人脑记忆,漏项几乎不可避免。
三列映射:需求编号、用例编号、验证结论
用一张表格建立映射:左列列出合同和需求规格中的全部条目,中列填覆盖它的用例编号,右列留作执行后的验证结论。表格建完,空缺处一目了然,就是要补写的用例。
用覆盖率倒逼用例补齐
功能需求通常要求逐条覆盖;性能、安全、可靠性等非功能需求,按合同约定的指标对核心场景覆盖。若项目需要出具第三方验收测试报告,测评机构同样会按需求覆盖率核对用例的完备性。像北京尚云(尚拓云测)这类第三方测评机构在实施验收测试时,会先审查需求追踪矩阵,再执行测试。

一条合格的验收测试用例包含哪些要素
参照国标的七项要素
GB/T 9386-2008《计算机软件测试文档编制规范》给出了测试用例说明的标准结构:用例标识符、测试项、输入说明、输出说明、环境要求、特殊规程要求、用例间依赖关系。落地到验收场景,建议再加两列:对应需求编号、验收准则,形成完整的可追溯链条。
示例:一条登录功能的验收用例
| 要素 | 内容示例 |
|---|---|
| 用例标识 | AC-LOGIN-003 |
| 对应需求 | 需求规格 3.2.1 条:连续 5 次口令错误锁定账户 |
| 输入说明 | 对同一账户连续输入 5 次错误口令 |
| 预期输出 | 第 5 次失败后账户锁定,页面提示锁定时长;锁定期内正确口令也无法登录 |
| 环境要求 | 验收环境,版本与配置与生产一致 |
| 依赖关系 | 前置用例 AC-LOGIN-001 通过后执行 |
这张表的价值在“预期输出”可判定:锁定行为、提示内容都写得清清楚楚,执行者不需要临场解释,评审专家也能直接对照需求。

用例评审、基线管理与三个高频误区
评审怎么开:让甲方逐条签字确认
用例定稿前组织一次评审会,甲乙双方逐条确认覆盖关系与验收准则,确认后形成用例基线并签字。后续需求发生变更,走变更流程并同步更新用例版本,保证用例与需求始终一致。
误区一:用例照搬开发自测记录
开发自测用例粒度粗、预期结果往往缺失,直接拿去应付验收,容易被专家抽查问住。验收用例应当独立编写或系统性重构,而不是简单改名换姓。
误区二:只覆盖正常流程
只写“正常操作能通过”的用例,一旦评审现场抽查边界值、异常输入、权限越界场景,就会露馅。异常与边界场景的用例占比建议保持在三成以上,重点覆盖涉及资金、权限和数据完整的业务环节。
误区三:环境与数据不做约定
用例在开发环境跑通,到了验收现场却因数据不同复现失败,双方各执一词。用例的“环境要求”一栏应写明验收环境的版本、初始化数据和账号权限,并在验收前完成环境核验。

距离验收还有时间窗的项目,建议按三步推进:把合同和需求规格逐条拆解成追踪矩阵;按国标七要素补齐并重构用例,重点补齐异常场景;组织甲方评审签字,冻结用例基线。基线一旦确认,执行阶段照单验证即可,验收会上的争议会大幅减少。如果项目周期紧,或需要出具具备 CNAS/CMA 资质的验收测试报告,也可以把用例审查与测试执行交给第三方测评机构,验收材料一次成型,避免反复返工。
