需求测试关联表把需求条目与测试用例逐对登记下来,是覆盖矩阵的数据来源,也是判断测试是否充分的证据基础。它让“这条需求测没测、测到什么程度”从口头判断变成可核查的记录。本文说明关联表的字段与粒度、它如何展开为覆盖矩阵、如何据此计算覆盖率并形成充分性结论,并用一个小例子澄清常见误解。
要点总览(TL;DR)
- 需求测试关联表按“一行一对需求—用例关系”登记,记录需求编号、用例编号、覆盖方式、关联状态与维护人,是多对多映射而非一条需求一行的汇总表。
- 覆盖矩阵由关联表透视生成:需求去重为行、用例去重为列,有记录即标记覆盖;矩阵中的空白要回到关联表补齐,只在矩阵上填格会导致下次展开失真。
- 充分性判断分三步:算需求覆盖率(写明分母范围)、逐条检查覆盖类型是否齐全、识别未覆盖需求与孤立用例;结论必须写明口径与阈值。
- 覆盖率是数量指标,充分性要结合覆盖类型与业务风险。演示例子中覆盖率100%仍可能因缺少异常场景判定为不完全充分。
- 常见误解包括用例多即充分、关联表建一次即可、只登记正向用例;对应动作是评审后更新关联、核对覆盖方式、发布前跑缺口清单。
需求测试关联表是什么
需求测试关联表是记录需求与测试用例对应关系的结构化清单。它的基本单位是一条“需求—用例”关系记录:某条需求由某个用例来验证,就登记一行。一条需求通常对应多个用例,一个用例也可能验证多条需求,因此关联表承载的是多对多映射,而不是一条需求一行的汇总表。
识别一张关联表是否合格,可以看它是否具备以下字段:
| 字段 | 作用 | 填写要求 |
|---|---|---|
| 需求编号 | 定位被验证的需求条目 | 与需求库编号一致,避免用需求标题代替 |
| 用例编号 | 定位执行验证的测试用例 | 与用例库编号一致,便于回查步骤与预期结果 |
| 覆盖方式 | 标明该用例验证的是正向流程、异常处理还是边界条件 | 按团队约定的枚举值填写,不用自由文本 |
| 关联状态 | 标识关联是否有效,如待确认、已确认、已失效 | 需求或用例变更后同步更新 |
| 维护人 | 明确谁负责这条关联的准确性 | 按需求归属或测试模块分工指定 |
记录粒度是关联表最容易走样的地方。若把一条需求的所有用例塞进一个单元格、用逗号分隔,表就退化成了备注栏:无法按用例统计,也无法在用例失效时精确删除对应关系。保持“一行一对关系”,后续的矩阵展开和覆盖率计算才有可靠的数据底座。
关联表不包括的内容也需要说清:它不记录用例的执行结果、缺陷详情和代码提交信息。这些属于测试执行记录与缺陷管理的范围,关联表只回答“谁验证谁”。
关联表与覆盖矩阵的生成关系
覆盖矩阵是关联表的透视视图。把关联表中的需求编号去重后作为行,用例编号去重后作为列,某行某列的单元格在关联表中存在对应记录时标记为覆盖,否则留空,就得到一张需求×用例的覆盖矩阵。矩阵本身不产生新数据,它的每一个标记都能回溯到关联表中的一条记录。
这个展开规则可以用一个小对照说明。假设关联表中有三条记录:R1—C1(正向)、R1—C2(异常)、R2—C3(正向),展开后的矩阵如下:
| 需求 | C1 | C2 | C3 |
|---|---|---|---|
| R1 | 覆盖(正向) | 覆盖(异常) | 空白 |
| R2 | 空白 | 空白 | 覆盖(正向) |
矩阵的价值在于把分散的记录变成可扫视的全局视图:哪条需求整行空白,说明它尚未被任何用例关联;哪条需求只有一格,说明覆盖方式单一。但矩阵中的空白单元格只是现象,修复动作要回到关联表——要么补充用例并新增关联记录,要么确认该需求确实无需该类验证并在关联状态中注明。只在矩阵上手工填格而不回写关联表,下一次展开时数据就会失真。
关联表与矩阵的分工可以概括为:关联表负责准确登记,矩阵负责快速呈现。团队规模较小时,一张维护良好的关联表加一次透视就够用;需求与用例数量上升后,矩阵视图能显著降低逐行核对的时间。
关联表如何支撑测试充分性判断
测试充分性判断回答的是“现有测试是否足以支撑本次交付的信心”。关联表提供三类可计算的证据:需求被覆盖的比例、每条需求的覆盖方式是否齐全、以及关联关系中的缺口。判断路径通常分三步。
第一步,计算需求覆盖率。用已关联至少一个有效用例的需求数,除以本次范围内的需求总数。分母要写明范围:是全量需求、本迭代需求还是本次变更涉及的需求,不同口径得出的数字不可直接比较。
第二步,检查覆盖类型完整性。逐条需求查看关联记录中的覆盖方式,确认正向、异常、边界等团队约定的必要类型是否齐备。覆盖率达标但某条核心需求只有正向用例,仍属于覆盖不足。这一步的产物是一份按需求列出的覆盖类型缺口清单,而不是一个总分。
第三步,识别两类缺口。未覆盖需求指在需求清单中存在、但在关联表中没有任何有效记录的需求;孤立用例指在关联表中未挂接任何需求的用例。前者提示验证缺失,后者提示用例可能对应已删除或未登记的需求,需要核实后补关联或归档。
充分性结论必须写明口径与阈值,例如“本迭代 12 条需求中 11 条已关联用例,覆盖率 91.7%;其中 2 条支付相关需求缺少异常场景用例,判定为有条件充分,需补充后复审”。只给一个百分比,读者无法判断缺口在哪里、是否可接受。阈值由团队按业务风险约定,涉及资金、权限等功能的需求通常要求覆盖类型齐全,展示类需求可适当放宽。
在工具层面,关联关系的维护方式直接影响这套判断的成本。ONES 测试管理支持测试用例与需求、任务关联,测试计划与迭代关联,形成测试流程闭环;用例可与产品需求、研发任务建立关联,使关联记录随需求和用例本身一起管理。ONES 还支持自动生成测试报告并自定义组装报告模板,便于把覆盖情况按团队约定的口径输出。需要说明的是,覆盖率的具体统计口径与矩阵呈现方式需以实际产品配置为准,团队应在使用前确认报告字段是否满足上述三步判断的需要。
关联表、覆盖矩阵与需求追溯的区别
这三个概念常在讨论中被混用,边界可以用一张对照表厘清:
| 概念 | 本质 | 回答的问题 | 不承担的内容 |
|---|---|---|---|
| 需求测试关联表 | 结构化的关系记录 | 哪条需求由哪些用例验证,以何种方式验证 | 执行结果、缺陷、代码与发布信息 |
| 覆盖矩阵 | 关联表的透视呈现 | 整体上哪些需求已覆盖、哪些存在空白 | 不产生新数据,不替代关联表 |
| 测试充分性判断 | 基于证据的结论 | 现有测试是否足以支撑交付信心 | 不是数据本身,需注明口径与阈值 |
| 需求追溯 | 跨环节的链路体系 | 需求从提出到发布经过了哪些环节、变更影响哪些内容 | 范围大于本文,属于另一主题 |
关键区别在于范围与角色。关联表聚焦需求与用例这一对关系,是点对点的证据;覆盖矩阵是这批证据的汇总视图;充分性判断是在证据上施加标准后得出的结论。需求追溯则把需求与设计、开发任务、缺陷、版本和发布串成链路,关联表可以作为其中一段,但不能替代整条链路。ONES ALM 方案把测试用例、缺陷、版本和发布过程关联到需求链路中,并借助数字线程在需求变化时分析受影响的任务、测试和交付内容,这属于追溯层面的能力;本文讨论的关联表与矩阵,是这条链路中测试验证环节的具体记录方式。
一个具体例子与常见误解
以下为演示情景,数据仅用于说明计算路径。某迭代有 3 条需求、5 条用例,关联表登记如下:
| 需求编号 | 用例编号 | 覆盖方式 | 关联状态 |
|---|---|---|---|
| R1 登录校验 | C1 | 正向 | 已确认 |
| R1 登录校验 | C2 | 异常 | 已确认 |
| R2 密码重置 | C3 | 正向 | 已确认 |
| R3 登录锁定 | C4 | 边界 | 已确认 |
| (无) | C5 | 正向 | 待确认 |
展开矩阵后可以看到:R1 有两个覆盖点,覆盖方式包含正向与异常;R2 只有正向一格,缺少异常场景;R3 只有边界一格;C5 未挂接任何需求,属于孤立用例。按需求覆盖率计算,3 条需求全部至少有一个有效关联,覆盖率为 100%。但按覆盖类型完整性检查,R2 存在缺口,因此充分性结论应写成“覆盖率 100%,R2 缺少异常场景验证,判定为不完全充分”,而不是简单宣布测试已充分。这个例子说明,覆盖率与充分性是两个层次:前者是数量指标,后者要结合覆盖类型与业务风险判断。
围绕这张表,有三种常见误解值得纠正。
误解一:用例数量多就代表覆盖充分。用例数量只反映测试投入的规模,不反映需求被验证的分布。十条用例全部集中在一条需求上,其余需求整行空白的情况并不少见。判断依据应是关联表展开后的需求维度视图,而不是用例总数。
误解二:关联表建好一次即可。需求拆分、用例重构、功能下线都会让原有记录失效。关联状态字段的意义正在于此:需求变更时沿关联关系找到受影响的用例,复核后更新状态;用例废弃时同步解除关联,避免矩阵中出现虚假覆盖。缺少维护机制的关联表,时间越久越不可信。
误解三:只登记正向用例。正向用例证明功能可用,异常与边界用例证明功能在非预期输入下仍然可控。只登记正向关联,矩阵看起来整齐,充分性判断却会失真。团队可以在关联表建立时就把覆盖方式设为必填,让缺口在登记环节暴露,而不是等到评审时才发现。
把这三条落到日常动作上:每次需求评审后同步更新关联记录,每次用例评审时核对覆盖方式是否齐全,每个版本发布前用关联表跑一遍覆盖率与缺口清单。关联表维护得越贴近实际,覆盖矩阵和充分性结论就越能作为交付决策的依据。
常见问题
需求测试关联表应该由谁维护,测试人员还是需求负责人?
维护责任按关联关系的两端分工更稳妥:需求侧确认“这条需求需要哪些类型的验证”,测试侧确认“这个用例实际验证了哪条需求、属于哪种覆盖方式”。常见做法是按需求归属或测试模块指定维护人字段,由测试人员在用例评审时核对覆盖方式,由需求负责人在需求变更时触发复核。无论具体分工如何,每条记录都应有明确的责任人,否则关联状态会长期停留在待确认。
需求发生变更后,关联表需要做哪些具体动作?
需求拆分、验收标准调整或功能下线时,先沿关联关系找到受影响的用例,逐条复核是否仍然有效:仍适用的保留并确认状态,需要调整的更新覆盖方式,已失效的解除关联。新增的验收点要补充对应用例并新增关联记录。这一步的关键是把关联状态字段用起来,让失效关系在矩阵展开时不再显示为覆盖,避免出现虚假覆盖。
覆盖率算到多少才算测试充分?
没有统一阈值,阈值应由团队按业务风险约定,并写进判断结论。涉及资金、权限、安全等功能的需求通常要求覆盖类型齐全,展示类需求可以适当放宽。比阈值更重要的是口径:分母是全量需求、本迭代需求还是本次变更涉及的需求,要在结论中写明,不同口径的数字不能直接比较。覆盖率达标但核心需求只有正向用例,仍应判定为覆盖不足。
孤立用例一定要删除吗?
不一定。孤立用例指在关联表中未挂接任何需求的用例,它可能对应已删除或未登记的需求,也可能是为技术验证、回归保障保留的用例。处理方式是先核实来源:能对应到现有需求的补关联,对应已下线需求的归档或标注停用,确属通用回归用例的可在关联表中注明用途并保留。直接删除会丢失可能仍有价值的测试资产。
用表格软件维护关联表和用测试管理工具维护,差别在哪里?
表格软件上手快,适合需求与用例数量少、变更不频繁的团队,代价是关联关系与需求、用例本身分离,需求变更后需要人工同步,容易遗漏。测试管理工具把关联记录和需求、用例放在同一处管理,变更时更容易沿关系找到受影响项。以 ONES 测试管理为例,其测试用例可与需求、任务关联,测试计划与迭代关联,并支持自动生成测试报告、自定义组装报告模板;覆盖率的具体统计口径与矩阵呈现方式需以实际产品配置为准,团队使用前应确认报告字段是否满足自身判断需要。


















