需求验证的依据由四类材料构成:需求本身的可验证表述(验收标准、边界与约束)、需求到测试用例的覆盖对应关系、测试执行记录与结果证据、评审与确认记录。四类材料分别回答“验证什么”“测了没有”“结果如何”“谁认可”,缺一类,验证结论就缺少支撑。本文按建立顺序说明每类依据的产出方法、填写模板与完成检查项,适用于以测试覆盖为主要判定手段的需求验证场景。
要点总览(TL;DR)
- 需求验证依据由四类材料构成:可验证的验收条件、需求到用例的覆盖对应关系、执行记录与结果证据、评审确认记录,分别回答验证什么、测了没有、结果如何、谁认可。
- 把模糊需求改写为含条件、输入、预期结果、判定方式的验收条件;难以量化的需求约定判定人与判定口径,同样具备可验证性。
- 覆盖状态取已覆盖、部分覆盖、未覆盖、不适用四种取值,按需求逐条判定,汇总时以最差状态作为该需求的覆盖结论。
- 执行记录至少包含用例编号、环境、时间、执行人、结果,并与需求编号挂接;未关闭缺陷不得计入通过,标记已覆盖但无执行记录的应降为部分覆盖。
- 收口前按检查项逐条核对依据完整性,由需求提出方与测试方共同确认,形成可从验收条件回溯到确认记录的完整依据包。
需求验证要准备哪几类依据
需求验证的依据需要能回答四个判定问题,每个问题对应一类材料。收集依据时按依赖顺序推进:先有可验证的需求表述,才能设计用例;先有用例与需求的对应关系,执行结果才能回挂到需求;执行证据齐备后,评审确认才有实质内容可审。
| 依据类别 | 内容 | 判定用途 | 依赖关系 |
|---|---|---|---|
| 需求可验证表述 | 验收条件、输入、预期结果、边界与约束、判定方式 | 回答“验证什么、达到什么算通过” | 其他三类依据的输入 |
| 覆盖对应关系 | 需求条目与用例的双向编号、场景类型、覆盖状态 | 回答“每条需求有没有对应测试项” | 依赖可验证表述 |
| 执行结果证据 | 执行记录、实际结果、缺陷关联、证据留存位置 | 回答“测了之后结果如何” | 依赖覆盖对应关系 |
| 评审确认记录 | 评审结论、确认人、确认时间、遗留问题处置 | 回答“结论是否被需求方与测试方共同认可” | 依赖前三类材料齐备 |
四类依据之间存在明确的先后关系。验收条件未写清,用例设计就缺少判定标准;覆盖关系未登记,执行记录无法说明对应哪条需求;执行证据不完整,评审只能停留在形式确认。实际项目中可以并行准备,但判定完成时应按上述顺序逐层核对。
把需求改写成可验证的验收条件
原始需求常带有“响应要快”“操作要便捷”“兼容主流浏览器”这类表述,无法直接判定通过与否。改写的方法是把它转成可观察、可比较的结果:明确在什么条件下、输入什么、期望看到什么、由谁按什么方式判定。
| 字段 | 填写要求 | 示例 |
|---|---|---|
| 条件 | 触发验证的前置状态或业务场景 | 用户已登录且购物车中有商品 |
| 输入 | 操作、数据或外部事件 | 点击“提交订单”,库存充足 |
| 预期结果 | 可观察的系统输出或状态变化 | 生成订单号,订单状态为“待支付”,库存扣减1 |
| 判定方式 | 比对方法、判定人与判定口径 | 测试人员比对订单详情页与库存记录;结果一致即通过 |
改写示例:原需求“订单提交后要给用户反馈”,可改写为“条件:购物车非空且库存充足;输入:点击提交订单;预期结果:页面跳转至支付页并显示订单号,同时生成一条待支付订单记录;判定方式:测试人员核对页面显示与订单列表记录一致”。改写后,正常、边界、异常场景都有了可设计的起点。
确实难以量化的需求,例如界面美观度、文案语气,不必强行编造指标。处理方式是约定判定人与判定口径:由谁在什么材料上(设计稿、文案规范、评审会)做出判断,判断结论以什么形式记录。判定人和口径写进验收条件,这条需求同样具备可验证性。
建立需求到用例的覆盖对应关系
覆盖依据的核心是一张对应表,使每条需求都能查到对应测试项,每个用例也能回溯到它服务的那条需求。编号规则建议采用“需求编号—用例编号”双向登记:需求侧记录关联用例清单,用例侧记录所属需求编号,任一侧变更时同步更新另一侧。
每条需求的用例登记应覆盖三类场景:正常流程验证主路径;边界场景验证取值极限、数量上限、时间临界点;异常场景验证非法输入、依赖失败、权限不足等。三类场景是否齐全,本身就是覆盖充分性的判断依据。
| 覆盖状态 | 判定口径 |
|---|---|
| 已覆盖 | 该需求的全部验收条件均有对应用例,且正常、边界、异常场景按需求性质登记齐全 |
| 部分覆盖 | 存在对应用例,但部分验收条件或某类场景尚无用例,需注明缺口 |
| 未覆盖 | 该需求没有任何对应用例 |
| 不适用 | 该需求在当前版本范围外,或经需求方确认无需测试验证,须记录确认人与理由 |
对应表模板可设以下列:需求编号、需求摘要、验收条件编号、用例编号、场景类型(正常/边界/异常)、覆盖状态、缺口说明、更新日期。覆盖状态按需求逐条判定,一条需求下不同验收条件可以处于不同状态,汇总时以最差状态作为该需求的覆盖结论。
当需求、用例与执行结果需要在同一工作项体系中挂接时,ONES 测试管理支持测试用例与产品需求、研发任务关联,测试计划与迭代关联,形成测试流程闭环。这样覆盖对应关系可以直接建立在需求条目与用例的关联上,减少在表格与工具之间反复同步的成本。覆盖状态的具体呈现方式需按实际部署与套餐核验。
执行记录与结果证据怎么留
覆盖关系说明“计划测什么”,执行记录说明“实际测了什么、结果如何”。每条执行记录至少包含:用例编号、执行环境(版本、配置、数据条件)、执行时间、执行人、执行结果(通过/不通过/阻塞)。记录与需求编号挂接,使任一需求都能列出它的全部执行证据。
执行不通过时,缺陷记录应关联到对应用例与需求,注明缺陷编号、严重程度、当前状态。缺陷修复后重新执行,保留新一轮记录,不覆盖旧记录,形成可复核的执行历史。证据留存形式可以是测试管理系统中的执行记录、附有截图或日志的测试报告,关键是提供明确的复核入口:评审人能从需求出发,逐层查到用例、执行记录和缺陷处理结果。
ONES 测试管理支持用例分配执行人,未通过的用例可快速创建缺陷任务,缺陷任务在测试与研发团队间流转;同时支持自动生成测试报告,并支持自定义组装测试报告模板。执行记录的具体字段明细与留存形式需按实际部署核验。
角色分工与各环节交付物
依据无人负责就会在评审时集中暴露缺口。建议按环节明确产出人与确认人,交接时点与交付物绑定。
| 角色 | 职责 | 交付物 | 交接时点 |
|---|---|---|---|
| 需求提出方 | 提供需求背景与约束,确认验收条件与判定口径 | 已确认的验收条件 | 用例设计开始前 |
| 测试人员 | 设计用例、登记覆盖关系、执行并留存记录 | 覆盖对应表、执行记录、缺陷关联 | 提测前完成覆盖登记,执行后补齐记录 |
| 开发人员 | 修复缺陷、提供环境与版本信息 | 缺陷修复记录、版本说明 | 缺陷流转过程中 |
| 评审人(需求方与测试方共同) | 核对依据完整性,确认验证结论与遗留问题处置 | 评审确认记录 | 验证收口前 |
确认方式应留下可查记录:评审结论、确认人、确认时间、未通过项与不适用项的处理意见。口头确认容易在后续追溯中失效,建议以评审记录或需求状态变更的形式固化。
一个需求验证依据的完整示例
以下为演示情景,用于说明填写方式。需求:“用户提交订单后,系统生成待支付订单并扣减库存。”
验收条件拆解:条件为购物车非空、库存充足;输入为点击提交订单;预期结果为生成订单号、订单状态为待支付、库存扣减1;判定方式为测试人员比对订单详情与库存记录。另拆一条边界条件:库存为1时提交,预期库存归零且订单生成;一条异常条件:库存为0时提交,预期提示库存不足且不生成订单。
| 需求编号 | 验收条件 | 用例编号 | 场景类型 | 覆盖状态 | 执行结果 |
|---|---|---|---|---|---|
| REQ-101 | 正常提交生成待支付订单并扣库存 | TC-201 | 正常 | 已覆盖 | 通过 |
| REQ-101 | 库存为1时提交,库存归零 | TC-202 | 边界 | 已覆盖 | 通过 |
| REQ-101 | 库存为0时提交,提示库存不足 | TC-203 | 异常 | 已覆盖 | 首轮不通过,缺陷关联后复测通过 |
最终验证结论:三条验收条件均有对应用例且执行通过,缺陷已关闭,覆盖状态为已覆盖;需求提出方与测试方在评审记录中确认通过。若 TC-203 首轮不通过且缺陷未关闭,该需求只能判定为部分覆盖或验证未完成,不能以其他用例通过替代。
验证完成前的检查项
收口前逐项核对以下内容,任一项不满足即视为验证未完成:
- 每条需求都有可验证的验收条件,模糊表述已改写或已约定判定人与判定口径。
- 每条需求都能查到对应用例,正常、边界、异常场景按需求性质登记齐全。
- 覆盖状态取值明确,部分覆盖与未覆盖项写明了缺口,不适用项记录了确认人与理由。
- 每条已覆盖需求的执行记录字段完整,执行结果与覆盖状态一致:标记已覆盖但无执行记录的,应降为部分覆盖。
- 不通过项均有缺陷关联,缺陷状态与验证结论对应,未关闭缺陷不得计入通过。
- 评审确认记录包含结论、确认人、时间及遗留问题处置意见。
检查中发现依据缺失时,回到对应环节补齐再重新判定;发现覆盖状态与证据不一致时,以执行证据为准修正状态。完成检查后形成的依据包,应能支持任一需求从验收条件到确认记录的完整回溯。
常见问题
需求本身写得比较笼统,还能做覆盖判定吗?
可以,前提是先把笼统表述转成可判定的验收条件。做法是补齐条件、输入、预期结果和判定方式四个字段,把“响应要快”这类说法落到具体的操作、数据和可观察结果上。确实难以量化的需求,例如界面美观度、文案语气,不必强行编造指标,改为约定判定人与判定口径:由谁依据设计稿或文案规范做出判断,结论以什么形式记录。判定人和口径写进验收条件后,这条需求同样可以登记覆盖状态并参与验证判定。
一条需求下多个验收条件的覆盖状态不一致,怎么汇总?
覆盖状态按验收条件逐条判定,一条需求下不同验收条件可以处于不同状态。汇总时以最差状态作为该需求的覆盖结论:只要存在未覆盖的验收条件,该需求整体记为未覆盖;存在部分覆盖但无未覆盖项,记为部分覆盖;全部验收条件均有对应用例且场景登记齐全,才记为已覆盖。这样处理可以避免用已通过的用例掩盖尚未设计的验证点。
执行记录标记为通过,但缺陷还没关闭,能判定验证完成吗?
不能。验证结论要与缺陷状态对应,未关闭的缺陷不得计入通过。执行不通过时,缺陷记录应关联到对应用例与需求;缺陷修复后重新执行,保留新一轮记录,不覆盖旧记录。收口检查时如果发现覆盖状态与执行证据不一致,以执行证据为准修正状态,例如标记已覆盖但缺少执行记录的,应降为部分覆盖。缺陷关闭并复测通过后,该需求才能进入最终确认环节。
需求、用例和执行结果分散在不同表格里,怎么减少同步成本?
关键是让覆盖对应关系建立在需求条目与用例的关联上,执行结果再回挂到用例,形成一条可回溯的链路。ONES 测试管理支持测试用例与产品需求、研发任务关联,测试计划与迭代关联,形成测试流程闭环;用例可分配执行人,未通过的用例可快速创建缺陷任务,缺陷任务在测试与研发团队间流转,并支持自动生成测试报告、自定义组装测试报告模板。覆盖状态的具体呈现方式与执行记录字段明细需按实际部署与套餐核验。
不适用项和未覆盖项在收口时分别怎么处理?
两者处置方式不同。不适用项指需求在当前版本范围外,或经需求方确认无需测试验证,必须记录确认人与理由,收口时核对确认记录是否齐全即可。未覆盖项指该需求没有任何对应用例,属于依据缺口,需要回到用例设计环节补齐,补齐后重新判定覆盖状态。部分覆盖项则要写明缺口说明,明确缺少哪条验收条件或哪类场景,再决定是补用例还是调整版本范围。
