需求到测试追溯要解决的是“这条需求由谁实现、被哪些用例验证、执行结果如何”能否被逐条核查。做法是建立一条从需求到用例再到执行结果的关联链路,并让字段、步骤、角色和检查机制配套落地。下文给出追溯对象与字段、五步流程、角色分工、完整示例和检查清单,并说明如何借助ONES承载需求、任务与测试用例的关联记录。
要点总览(TL;DR)
- 需求到测试追溯的最小对象模型是需求、实现项、测试用例、执行结果四类,通过需求编号、验收标准、用例关联和执行状态四类字段串成可回溯路径。
- 落地按五步推进:需求拆分与编号、实现关联、用例映射、执行回填、覆盖核查,每步以可核查的输出作为完成标志。
- 追溯粒度按团队规模和变更频率选择,需求层级与用例粒度一旦确定应在项目内保持一致,避免覆盖矩阵口径混用。
- 需求负责人、开发、测试、项目/质量管理分别承担拆分、关联、映射与核查职责,需求变更、用例新增、缺陷回归是记录更新的三个触发条件。
- 用覆盖矩阵和缺口清单按迭代或里程碑检查,连续两个周期缺口清零且抽查可完整回溯,可认为追溯链路具备可核查性。
追溯链路要记录哪些对象和字段
追溯链路的最小对象模型由四类对象组成:需求、实现项、测试用例、执行结果。四类对象之间通过编号建立关联,形成“需求—实现—用例—结果”的可回溯路径。字段设计围绕这四类对象及其关联关系展开,先确定记录什么,再讨论怎么操作。
四类对象与关键字段
| 对象 | 必填字段 | 选填字段 | 填写说明 |
|---|---|---|---|
| 需求 | 需求编号、需求描述、验收标准、需求层级、负责人、状态 | 来源、优先级、关联基线、变更记录 | 需求编号全局唯一,验收标准写成可判定的条件,一条需求对应一组可验证的验收标准 |
| 实现项 | 实现项编号、类型(任务/提交/接口/模块)、关联需求编号、负责人、状态 | 代码分支、版本号、完成时间 | 每个实现项至少挂一个需求编号;一个需求可对应多个实现项 |
| 测试用例 | 用例编号、用例标题、验证的需求编号、对应验收标准、前置条件、步骤与预期结果 | 用例类型、优先级、自动化标记 | 用例必须标注它验证的需求及具体验收标准,避免只写需求编号不写验证点 |
| 执行结果 | 执行编号、关联用例编号、执行状态(通过/失败/阻塞/未执行)、执行时间、执行人 | 缺陷编号、环境、附件 | 执行结果回填到用例,再沿用例关联汇总到需求,形成需求的验证状态 |
追溯粒度的选择原则
追溯粒度决定维护成本。需求层级可按业务需求、系统需求、子需求分层,用例粒度可按“一条用例对应一条验收标准”或“一组用例对应一条需求”设定。粒度越细,覆盖判断越准确,记录维护量也越大。团队规模较小、需求变更不频繁时,可采用“需求条目对用例集”的粗粒度;需求分层明显、验收标准较多或需要应对外部审计时,宜细化到验收标准级别。粒度一旦确定,应在项目内保持一致,避免同一项目混用不同口径导致覆盖矩阵失真。
必填与选填的划分
必填字段承担关联和核查功能:没有需求编号无法关联,没有验收标准无法判断验证是否充分,没有用例关联无法生成覆盖矩阵,没有执行状态无法回溯结果。选填字段服务于分析和检索,如来源、优先级、版本号、缺陷编号。建议在流程建立初期只强制必填字段,运行一至两个迭代后再按实际查询需求补充选填字段,减少录入阻力。
五步建立需求到测试的追溯流程
五步流程按“需求拆分—实现关联—用例映射—执行回填—覆盖核查”顺序推进,每一步以可核查的输出作为完成标志。前一步的输出是后一步的输入,链路在流程推进中自然形成。
第一步:需求拆分与编号
输入是需求文档或需求池中的原始需求。动作是把需求拆分为可独立验证的条目,为每条分配唯一编号,并补写验收标准。输出是带编号和验收标准的需求条目清单。完成标志是每条需求都有编号、描述和至少一条可判定的验收标准,且需求之间层级关系清晰。拆分时以“能否独立验证”为判断依据,一条需求包含多个互不相关的验证点时继续拆分。
第二步:实现关联
输入是需求条目清单和开发任务安排。动作是创建任务、提交或模块记录,并在每条实现项上填写关联的需求编号。输出是挂接了需求编号的实现项列表。完成标志是每个进入开发的实现项都能指向至少一条需求,且每条已排期需求都有对应的实现项。开发过程中新增的实现项应在创建时即填写需求编号,避免事后补录。
第三步:用例映射
输入是需求条目及其验收标准。动作是编写或复用测试用例,在用例上标注验证的需求编号和对应验收标准。输出是带需求关联的用例集。完成标志是每条需求的每条验收标准至少有一条用例覆盖,且每条用例都能说明它验证的是哪条需求的哪个验证点。映射阶段可同步检查用例与验收标准的对应关系,发现验收标准无法转化为用例时回到第一步修订需求。
第四步:执行回填
输入是待执行的用例和测试环境。动作是执行用例,把执行状态、执行时间、执行人和缺陷编号回填到执行记录,执行记录关联用例,用例关联需求。输出是可汇总到需求层面的执行结果。完成标志是每轮测试结束后,所有已执行用例都有状态记录,失败用例关联了缺陷,需求层面能显示“已验证/验证失败/未验证”的状态。未执行用例应保留“未执行”状态,不默认视为通过。
第五步:覆盖核查
输入是需求清单、用例清单和执行结果。动作是生成需求—用例覆盖矩阵,逐条检查需求是否有用例覆盖、用例是否都关联了需求、执行结果是否可回溯。输出是覆盖矩阵和缺口清单。完成标志是缺口清单中的每一项都有处理结论:补用例、补关联、确认需求取消或标记为待处理。覆盖核查的产物直接进入下一节的检查清单。
在ONES中,需求、任务与测试用例可以在同一平台内建立关联,测试用例、缺陷、版本和发布过程关联到需求链路,需求变化时可沿关联关系分析受影响的任务、测试和交付内容。上述五步中的关联记录和覆盖核查可以借助这一链路承载,具体字段配置和关联方式需在实际环境中确认。
角色分工与各环节交付物
追溯记录无人维护是链路失效的常见原因。按环节明确责任人、交付物和交接时点,可以让每条记录都有归属。
| 角色 | 主要职责 | 交付物 | 交接时点 |
|---|---|---|---|
| 需求负责人 | 拆分需求、编写验收标准、维护需求编号与层级、处理需求变更 | 带编号和验收标准的需求条目、变更说明 | 需求评审通过后移交开发与测试;变更确认后通知下游 |
| 开发 | 创建实现项并挂接需求编号、在提交或任务完成时更新状态 | 关联需求的任务/提交记录、实现完成说明 | 开发任务启动时建立关联;提测前确认实现项与需求对应完整 |
| 测试 | 编写用例并标注验证的需求与验收标准、执行测试并回填结果、登记缺陷 | 带需求关联的用例集、执行记录、缺陷单 | 用例评审时确认映射完整;每轮测试结束后提交执行结果 |
| 项目/质量管理 | 组织覆盖核查、维护缺口清单、跟踪缺口处理、设定检查频次 | 覆盖矩阵、缺口清单、检查记录 | 每个迭代或里程碑结束时输出核查结果并推动闭环 |
追溯记录更新的触发条件
追溯记录在三种情况下必须更新:需求变更时,需求负责人修订需求条目和验收标准,并沿关联关系检查受影响的任务、用例和缺陷;用例新增或修改时,测试补充需求关联并更新覆盖矩阵;缺陷回归时,执行结果回填到原用例,缺陷编号保留在执行记录中。触发条件应写入团队协作约定,与变更评审、用例评审、回归测试等既有活动绑定,减少额外提醒成本。
评审与确认环节
建议设置两个确认点:需求评审时确认验收标准可验证、需求编号和层级完整;用例评审时确认每条验收标准都有用例覆盖、用例关联填写正确。两个确认点分别由需求负责人和测试负责人把关,项目/质量管理在覆盖核查时做最终确认。评审记录本身也是追溯链路的一部分,可作为过程证据保留。
示例:一条需求从提出到验证的完整追溯记录
以下为演示情景,用于说明字段填写和状态流转方式,不代表真实项目数据。
需求条目
需求编号 REQ-0142,描述为“登录页支持手机号验证码登录”,验收标准两条:AC-1 输入合法手机号可获取验证码并在60秒内完成登录;AC-2 验证码错误时提示错误且不进入系统。需求层级为子需求,上级需求为 REQ-0100“账号登录方式扩展”,负责人为产品经理,状态为“已评审”。
实现项与用例关联
实现项包括任务 TASK-0311“验证码发送接口”、TASK-0312“登录页验证码输入组件”、提交 COMMIT-0876“登录校验逻辑”。三个实现项均填写关联需求 REQ-0142。测试用例包括 TC-0451 验证 AC-1 的正常登录流程、TC-0452 验证 AC-1 的验证码有效期、TC-0453 验证 AC-2 的错误提示,三条用例均标注关联需求 REQ-0142 及对应验收标准。
执行结果与覆盖状态
第一轮执行:TC-0451 通过,TC-0452 失败并登记缺陷 BUG-0221,TC-0453 通过。需求 REQ-0142 的验证状态显示为“验证失败”,原因是 AC-1 存在未通过用例。缺陷修复后回归,TC-0452 通过,执行记录追加一条通过结果,需求状态更新为“已验证”。覆盖矩阵中 REQ-0142 对应三条用例,两条验收标准均有覆盖,无缺口。
需求变更后的更新
若后续提出“验证码有效期调整为120秒”的变更,需求负责人修订 AC-1 的描述并记录变更说明,沿关联关系找到 TC-0452,测试同步修改用例预期结果并重新执行,执行结果回填后需求状态重新经历“验证中—已验证”的流转。变更记录、受影响用例和新的执行结果共同构成变更后的追溯证据。
完成检查:追溯链路是否可核查
追溯机制是否真正建立,可以用一张检查清单逐项核对。检查以覆盖矩阵和缺口清单为主要依据,按迭代或里程碑执行。
| 检查项 | 核对方法 | 通过标准 |
|---|---|---|
| 每条需求都有实现关联 | 按需求清单逐条查看关联的实现项 | 已进入开发的需求均有至少一个实现项,无孤立需求 |
| 每条需求都有用例关联 | 查看需求—用例覆盖矩阵 | 每条需求的每条验收标准至少有一条用例覆盖 |
| 无用例覆盖的需求已处理 | 筛选覆盖矩阵中的空白项 | 空白项均有结论:补用例、确认取消或标记待处理并指定责任人 |
| 无未关联需求的用例 | 按用例清单检查需求关联字段 | 每条用例都能指向具体需求和验收标准,无孤立用例 |
| 执行结果可回溯到需求 | 从任一条需求出发查看其用例执行记录 | 需求层面能显示验证状态,失败项关联缺陷,未执行项保留未执行状态 |
| 需求变更后记录同步更新 | 抽查近期变更需求 | 变更说明、受影响用例、更新后的执行结果齐全 |
检查频次建议与迭代节奏对齐:每个迭代结束做一次全量覆盖核查,里程碑节点做一次含变更记录的完整核查。责任人由项目/质量管理担任,缺口清单的处理结论由需求负责人和测试负责人共同确认。连续两个检查周期缺口清单清零、抽查记录可完整回溯,可认为追溯链路已具备可核查性。
常见问题
需求变更后,追溯记录应该从哪一端开始更新?
从需求端开始。需求负责人先修订需求条目和验收标准并记录变更说明,再沿关联关系找到受影响的任务、用例和缺陷,由开发和测试分别确认实现项与用例是否需要调整。这样更新顺序与链路方向一致,避免先改用例导致需求与验证点脱节。变更记录、受影响用例和新的执行结果应一并保留,作为变更后的追溯证据。
需求层级较深时,追溯粒度应该定在哪一层?
以“能否独立验证”作为判断依据。如果上级需求只是业务目标的归集,本身没有可判定的验收标准,就把追溯粒度定在子需求层;如果上级需求也有明确验收标准并需要对外交付或审计,则上下层都建立关联。粒度越细覆盖判断越准确,维护量也越大,建议在项目启动时确定并在项目内保持一致,运行一两个迭代后再根据实际查询需求调整。
测试用例执行了但需求状态没有更新,通常是什么原因?
常见原因是执行记录与用例、用例与需求之间的关联缺失或指向错误。可以按三步排查:先确认执行记录是否关联到正确的用例编号;再确认用例上的需求编号和验收标准字段是否填写;最后确认需求层面的验证状态是否按用例执行结果汇总。若链路中任一环为空,需求状态就无法自动反映执行结果。把这三项纳入用例评审和每轮测试结束后的检查,可以减少此类问题。
小团队需求不多,是否也需要建完整的追溯链路?
需要保留链路,但可以简化字段。需求编号、验收标准、用例关联和执行状态这四项承担关联与核查功能,建议始终保留;来源、优先级、版本号、缺陷编号等选填字段可以按实际查询需要逐步补充。小团队可采用“需求条目对用例集”的粗粒度,减少录入量,同时保留覆盖矩阵用于识别无用例覆盖的需求。流程建立初期只强制必填字段,运行一至两个迭代后再扩充。
覆盖核查发现需求没有对应用例,应该怎么处理?
缺口清单中的每一项都要有处理结论,常见有四类:补写用例并标注需求与验收标准;确认该需求本轮不验证并标记待处理、指定责任人;确认需求已取消或合并,更新需求状态;确认验收标准本身不可验证,回到需求拆分环节修订。处理结论由需求负责人和测试负责人共同确认,项目/质量管理跟踪闭环。缺口长期挂起不处理,会让覆盖矩阵失去参考价值。
