需求测试关联表是一张把需求条目与测试用例逐条对应起来的记录表:行是需求或可验证的验收点,列是测试用例,交叉格标记该用例是否覆盖该需求点。它把“需求写了什么”和“测试测了什么”放在同一张表上,用于计算需求覆盖率、发现覆盖空白,并作为判断测试是否充分的依据。本文讲清它的定义、边界、在覆盖矩阵中的作用,以及如何用它判断测试充分性。
要点总览(TL;DR)
- 需求测试关联表把需求条目与测试用例逐条对应:行是需求或验收点,列是用例,交叉格标记覆盖状态,用于回答“每条需求由哪些用例验证”。
- 它只记录需求与测试之间的验证关系及覆盖状态、验证结论;代码行覆盖、插桩数据和需求到设计、开发、发布的全链路追溯不在其范围内。
- 关联表是明细数据,覆盖矩阵是按需求汇总后的视图,用于集中暴露未覆盖和部分覆盖的需求点。
- 判断测试充分性时,先确认需求行完整,再看覆盖状态,最后结合用例执行结果;未覆盖补用例,执行失败提缺陷并回归。
- 它与需求追溯矩阵、测试用例库、代码覆盖率的区别在于验证对象和范围不同,可以配合使用但不能互相替代。
需求测试关联表的核心定义
需求测试关联表的核心,是记录“哪条需求由哪些测试用例来验证”这一对应关系。它通常以二维表的形式存在:每一行对应一条需求或该需求下可独立验证的验收点,每一列对应一个测试用例,行与列的交叉格填写覆盖标记,表示这个用例是否验证了这条需求。
把行、列、交叉格拆开看,各自承担的信息很明确:
| 表结构要素 | 代表内容 | 填写示例 |
|---|---|---|
| 行 | 需求条目或可验证的验收点 | “登录支持手机号+验证码”“连续输错5次锁定10分钟” |
| 列 | 测试用例 | “TC-101 手机号验证码登录成功”“TC-108 连续错误锁定” |
| 交叉格 | 覆盖标记 | 已覆盖 / 部分覆盖 / 未覆盖,或直接打勾 |
它与普通用例清单的区别在于多了一个需求维度。用例清单只回答“我们有哪些测试”,按模块或功能罗列用例标题、步骤和预期结果;关联表则回答“每条需求分别由哪些测试来验证”。同样一批用例,放进清单里看不出需求是否被遗漏,放进关联表里,哪一行没有任何标记就一目了然。这个需求侧的对应关系,是关联表区别于用例清单的关键。
需要说明的是,行不一定等于需求管理系统里的一条需求记录。一条需求如果包含多个可独立验证的验收点,拆成多行更利于判断覆盖情况;反过来,粒度太粗的需求行会让覆盖标记失去区分度。行的划分标准应与验收标准保持一致。
它记录什么、不记录什么
明确关联表的记录范围,能避免把它当成万能追溯工具。它记录的是需求与测试之间的验证关系,以及这种关系的状态和结论。
属于关联表记录范围的内容包括:
- 需求标识:需求编号、标题或验收点描述,用于定位被验证的对象。
- 用例标识:用例编号或标题,用于定位执行验证的手段。
- 覆盖状态:该用例对该需求点是已覆盖、部分覆盖还是未覆盖。
- 验证结论:用例执行后,该需求点是通过、失败还是待验证。
不属于关联表记录范围的内容包括:代码行覆盖数据、插桩采集的执行轨迹、覆盖率工具的配置与源码。这些属于代码覆盖率工具的职责,验证对象是代码而非需求。关联表也不承担需求到设计、开发、发布的全链路追溯——那类追溯要串起需求、设计文档、代码提交、构建版本和发布记录,范围超出“需求—测试”这一层对应关系,归入需求追溯与覆盖管理的相邻主题。
把边界划清之后,关联表的定位就清楚了:它是一张聚焦验证关系的明细表,输入是需求条目和测试用例,输出是每条需求被验证的状态。
关联表如何支撑覆盖矩阵
关联表是原始明细数据,覆盖矩阵是按需求维度汇总后的视图。两者的关系类似流水账与统计报表:明细逐条记录对应关系,矩阵把明细按行聚合,回答“每条需求整体覆盖得怎么样”。
从关联表汇总到覆盖矩阵,通常按以下方式处理:
- 以需求行为单位,统计该行下所有交叉格的覆盖标记。
- 只要有一个用例标记为已覆盖,该需求点记为“已覆盖”;存在部分覆盖但无完整覆盖的,记为“部分覆盖”;整行没有任何覆盖标记的,记为“未覆盖”。
- 把每条需求的覆盖状态汇总成矩阵的一行,形成按需求排列的覆盖全景。
汇总后的矩阵主要用于发现覆盖空白点。明细表里空白分散在各行各列,不容易整体判断;矩阵把每条需求的覆盖状态压缩成一行,未覆盖和部分覆盖的需求会集中显现。团队据此可以快速定位哪些需求还没有测试设计,哪些需求只有部分验收点被验证。矩阵的价值在于暴露空白,而不是替代明细——定位到空白需求后,仍需回到关联表查看具体缺的是哪个验收点。
在实际协作中,需求与用例的关联关系需要被持续维护。ONES 测试管理支持测试用例与需求、任务关联,测试计划与迭代关联,形成测试流程闭环;用例与产品需求、研发任务建立关联后,需求侧和测试侧的信息可以放在同一处查看,为按需求汇总覆盖情况提供数据基础。具体的覆盖矩阵视图或需求覆盖率报表形态,需以实际部署版本的能力为准。
如何用它判断测试充分性
关联表用于判断测试充分性时,基本口径是:关键需求点是否都有对应用例,并且这些用例是否已经执行并通过。覆盖状态回答“有没有测”,执行结果回答“测得怎么样”,两者需要结合看。
可操作的判断步骤如下:
- 确认需求行完整:检查关联表的行是否覆盖了本次范围的全部需求和验收点,遗漏的需求行本身就会造成覆盖盲区。
- 检查覆盖状态:逐行查看是否存在未覆盖或部分覆盖的需求点。关键需求点存在未覆盖的,应视为测试不充分,需要补充用例设计。
- 结合执行结果:已覆盖但用例尚未执行的,覆盖只是设计层面的,不能算验证完成;已执行但失败的,说明该需求点当前未通过验证,需要修复后回归。
- 处理两类缺口:未覆盖的需求点,方向是补用例;执行失败的需求点,方向是提缺陷并跟踪修复。两类问题处理完后重新核对关联表,确认每条关键需求点都有通过的用例支撑。
这个口径有一个前提:充分性判断以需求为基准,而不是以用例数量为基准。用例再多,如果集中在少数需求上,其余需求仍然处于未验证状态。反过来,一条需求有多个验收点时,只覆盖其中一个也不能算充分。判断时应以关键需求点的覆盖与通过情况为准,非关键需求可以按风险接受未覆盖,但这一决定需要显式记录。
当用例执行未通过时,把失败结果转成缺陷并跟踪闭环,是让关联表结论可信的必要动作。ONES 测试管理支持未通过的用例快速创建缺陷任务,缺陷任务在测试与研发团队间流转;同时支持自动生成测试报告,快速反馈版本质量。这些能力让“覆盖状态—执行结果—缺陷跟踪”形成连续记录,便于在版本节点上复核测试是否充分。
相邻概念的区别
需求测试关联表容易与几个相邻概念混淆,按验证对象和范围对照,区别比较清楚。
| 概念 | 核心对象 | 回答的问题 | 与关联表的关系 |
|---|---|---|---|
| 需求测试关联表 | 需求与测试用例的对应关系 | 每条需求由哪些用例验证,覆盖状态如何 | 本概念 |
| 需求追溯矩阵 | 需求到设计、开发、测试、发布的多环节链路 | 一条需求从提出到发布经过了哪些环节和产物 | 范围更宽,关联表是其测试环节的一部分 |
| 测试用例库 | 用例本身的内容 | 有哪些用例,步骤和预期结果是什么 | 提供列方向的数据,关联表在其上增加需求对应关系 |
| 代码覆盖率 | 代码行、分支的执行情况 | 测试执行触达了多少代码 | 验证对象是代码,与需求维度的覆盖互补但不替代 |
与需求追溯矩阵的区别在于范围:追溯矩阵串起需求、设计、开发、测试、发布多个环节,关联表只处理需求与测试这一层对应。与测试用例库的区别在于侧重点:用例库强调用例内容的管理,关联表强调用例与需求的对应关系,用例内容本身不在这张表里展开。与代码覆盖率的区别在于验证对象:代码覆盖率衡量测试对代码的触达程度,关联表衡量测试对需求的验证程度,两者回答的是不同层面的问题,可以同时使用,但不能互相替代。
在更完整的研发管理方案中,测试用例、缺陷、版本和发布过程可以关联到需求链路中,帮助团队持续验证交付质量,并在出现问题时快速定位影响范围。ONES ALM 研发管理方案贯通需求、开发、测试等关键环节,形成完整数字线程,支撑影响分析与过程追溯;方案层面的具体追溯范围和功能组合需按实际部署核验。关联表在其中承担的是需求与测试之间的验证关系记录。
一个具体例子与常见误解
假设一个登录功能拆出三条需求,团队设计了四个用例,关联表填写如下(示例为演示情景):
| 需求 / 验收点 | TC-101 验证码登录成功 | TC-102 验证码错误提示 | TC-103 连续错误锁定 | TC-104 锁定到期解锁 |
|---|---|---|---|---|
| R1 支持手机号+验证码登录 | 已覆盖 | 已覆盖 | — | — |
| R2 验证码错误给出明确提示 | — | 已覆盖 | — | — |
| R3 连续输错5次锁定10分钟 | — | — | 部分覆盖 | 未覆盖 |
从这张表可以直接读出覆盖空白:R3 的“锁定到期解锁”没有任何用例覆盖,“连续错误锁定”只有部分覆盖,说明锁定后的解锁行为还没有被验证。R1 和 R2 的覆盖状态完整,但仍需看执行结果才能确认通过。团队据此补一个解锁场景的用例,并完善锁定用例的验收点,关联表才趋于完整。
围绕这张表,常见的误解有两个。其一,认为有表就等于测试充分。表只是记录对应关系,行是否完整、标记是否准确、用例是否执行通过,都影响结论;一张填满但用例未执行的表,不能证明需求已被验证。其二,认为填了用例就等于覆盖。把用例编号填进交叉格只是建立了对应关系,如果用例的断言并不检查该需求点的行为,覆盖标记就名不副实。填写时应以用例实际验证的内容为准,定期回看标记与用例内容是否一致。
常见问题
需求测试关联表的行应该按需求记录拆,还是按验收点拆?
取决于需求的粒度。一条需求如果包含多个可独立验证的验收点,拆成多行更利于判断覆盖情况;粒度太粗会让覆盖标记失去区分度。行的划分标准应与验收标准保持一致,确保每一行都能对应到明确的验证结论。
用例已经关联到需求,是否就可以认为测试充分了?
不能。关联只建立了对应关系,充分性还要看三点:需求行是否完整、覆盖标记是否准确、用例是否执行并通过。一张填满但用例未执行的关联表,只能说明测试设计存在,不能证明需求已被验证。
部分覆盖的需求点应该怎么处理?
部分覆盖说明该需求只有部分验收点被验证。处理方向是回到关联表查看缺的是哪个验收点,补充对应用例或完善已有用例的断言,使该需求点达到完整覆盖;如果剩余验收点按风险决定不覆盖,需要显式记录这一决定。
关联表里的覆盖状态和用例执行结果为什么要分开看?
覆盖状态回答“有没有测”,执行结果回答“测得怎么样”。已覆盖但未执行的用例,覆盖只停留在设计层面;已执行但失败的用例,说明该需求点当前未通过验证。两者结合,才能得出测试是否充分的结论。
在工具中维护需求与用例的关联,对覆盖判断有什么实际帮助?
关联关系集中维护后,需求侧和测试侧的信息可以在同一处查看,便于按需求汇总覆盖情况。ONES 测试管理支持测试用例与需求、任务关联,测试计划与迭代关联,形成测试流程闭环;未通过的用例可快速创建缺陷任务并在测试与研发团队间流转,支持自动生成测试报告。具体的覆盖矩阵视图或需求覆盖率报表形态,需以实际部署版本的能力为准。


















