需求关联规则要解决的问题很具体:每条需求都能找到对应的实现记录和验证记录,需求变更时能沿关联关系找到受影响的对象。本文按“定范围—定步骤—定字段—定角色—做检查”的顺序,给出五步操作清单、可填写的关联规则字段表、角色交付物对照表和完成检查清单,帮助团队把“需求要可追溯”落成可执行的规则。
要点总览(TL;DR)
- 需求关联规则的范围以需求为锚点,向下连接实现侧(设计说明、开发任务、代码提交)和验证侧(测试用例、验证记录),实现与验证之间的关联作为可选补充。
- 制定规则按五步推进:盘点对象与唯一标识、定义关联类型、规定必填字段、规定创建时点与责任角色、规定变更与失效处理。
- 规则要写成可填写的字段表,源对象、目标对象、关联类型、关联理由、建立人、建立时间和复核状态共同构成一条可独立核查的关联记录。
- 关联建立跟着对象走:需求负责人发起关联,开发负责人和测试负责人分别确认实现侧与验证侧关联,评审角色在需求评审和变更评审时复核完整性。
- 规则落地后用抽样检查和覆盖率统计验证执行情况,发现问题回到对应步骤修正字段来源、时点角色或变更触发规则。
先定追溯链路:需求关联规则要覆盖哪些对象
制定规则的第一步是划定作用范围。范围不清,规则会越写越宽,最后变成一份没人执行的追溯宣言。建议以需求为起点,向下连接实现侧和验证侧两类对象,形成两条主链路,实现与验证之间的关联作为可选补充。
需求侧的对象包括需求条目、需求版本和验收条件。需求条目是关联的锚点,每条需求需要一个在项目内唯一且稳定的标识;需求版本用于区分变更前后的内容;验收条件决定后续验证对象要覆盖什么。实现侧的对象包括设计说明、开发任务和代码提交,它们回答“这条需求由谁、通过什么工作实现”。验证侧的对象包括测试用例和验证记录,它们回答“这条需求用什么方式验证、结果如何”。
| 对象类型 | 所属环节 | 关联方向 | 是否纳入本期规则 |
|---|---|---|---|
| 需求条目、需求版本、验收条件 | 需求侧 | 关联起点 | 纳入,作为锚点对象 |
| 设计说明 | 实现侧 | 需求→实现 | 纳入 |
| 开发任务 | 实现侧 | 需求→实现 | 纳入 |
| 代码提交 | 实现侧 | 需求→实现 | 纳入,按团队工具条件决定是否强制 |
| 测试用例 | 验证侧 | 需求→验证 | 纳入 |
| 验证记录(执行结果、评审记录) | 验证侧 | 需求→验证 | 纳入 |
| 实现对象与验证对象之间的关联 | 补充链路 | 实现→验证 | 可选,用于定位“哪个任务对应哪条用例” |
范围表还要写明本期不处理的内容。测试用例设计是否充分、测试覆盖率是否达标,属于测试覆盖与需求验证的范畴;跨项目、跨生命周期的ALM治理属于更大范围的治理议题。这两类内容可以在规则中留出接口,例如覆盖率统计只统计关联是否存在,不评价用例质量,但不在本文展开。
核心答案与操作步骤:五步建立需求关联规则
五步的顺序有依赖关系:先盘点对象和标识,才能定义关联类型;定义了类型,才能规定字段和时点;最后补上变更处理,规则才完整。每一步都给出输入、动作、输出和完成标志,便于逐项推进。
第一步:盘点对象与唯一标识
输入是现有的需求清单和下游的设计、任务、用例、验证记录清单。动作是逐类确认对象由哪个系统或文档承载、标识如何生成、是否稳定。输出是一份对象与标识来源清单。完成标志是:每类对象都能指出唯一标识的格式和产生位置,且同一对象在关联记录中只使用一种标识写法。
第二步:定义关联类型清单
输入是第一步的对象清单。动作是把关联按语义分为三类:实现类(需求→设计、任务、代码提交)、验证类(需求→测试用例、验证记录)、派生类(需求→子需求、需求→变更请求)。每类关联写一句语义说明,明确它回答什么问题。输出是关联类型枚举表。完成标志是:任意一条关联记录都能被归入且只归入一个类型,类型之间没有重叠解释。
第三步:规定每类关联的必填字段
输入是关联类型枚举表。动作是为每类关联确定必填字段,至少包括关联对象ID、关联人、关联时间、关联理由和状态。输出是字段表初稿,具体模板见下一节。完成标志是:拿一条真实需求试填,所有必填字段都能从现有系统中取到值,不需要额外口头补充。
第四步:规定创建时点与责任角色
输入是字段表和现有研发流程节点。动作是把关联建立挂到流程节点上,例如需求评审通过后由需求负责人建立实现关联,开发任务完成时由开发负责人补充代码提交关联,测试执行前由测试负责人建立验证关联。输出是时点与角色对照表。完成标志是:每个关联类型都能说出“谁、在哪个节点之后、必须完成建立”。
第五步:规定变更与失效处理
输入是前四步的产出。动作是定义需求变更触发关联复核的规则:需求版本升级时,原有实现关联和验证关联进入“待复核”状态,由需求负责人确认哪些关联继续有效、哪些需要重建、哪些关闭;关联对象本身被删除或替换时,关联记录保留并标记失效原因。输出是变更处理规则。完成标志是:模拟一次需求变更,能按规则走完复核、关闭或重建的完整路径。
关联规则字段表:把规则写成可填写的模板
规则写成文字容易停留在原则层面,写成字段表才能被逐条填写和核查。下表可直接复制为模板,每行代表一条关联记录。
| 字段 | 填写内容 | 必填/选填 | 填写说明 |
|---|---|---|---|
| 关联ID | 系统生成或按规则编号 | 必填 | 全局唯一,便于引用和审计 |
| 源对象类型 | 需求条目、需求版本等 | 必填 | 从对象类型枚举中选择 |
| 源对象ID | 需求唯一标识 | 必填 | 与需求库中的标识一致 |
| 目标对象类型 | 设计说明、开发任务、代码提交、测试用例、验证记录等 | 必填 | 从对象类型枚举中选择 |
| 目标对象ID | 目标对象唯一标识 | 必填 | 与目标系统或文档中的标识一致 |
| 关联类型 | 实现类、验证类、派生类 | 必填 | 按语义选择,一条记录只选一个 |
| 关联理由 | 一句话说明为何关联 | 必填 | 例如“该任务实现验收条件第2条” |
| 建立人 | 角色或姓名 | 必填 | 对关联内容负责的人 |
| 建立时间 | 日期 | 必填 | 用于判断关联是否在时点内建立 |
| 复核状态 | 待复核、有效、失效、已关闭 | 必填 | 需求变更后统一置为待复核 |
| 复核人 | 角色或姓名 | 选填 | 复核完成后填写 |
| 备注 | 补充说明 | 选填 | 记录失效原因、替代关系等 |
必填与选填的划分依据是“缺了这条字段,关联记录是否还能被独立核查”。源对象、目标对象、关联类型、理由、建立人、建立时间和复核状态共同构成一条可核查的记录,缺任何一项都会导致无法判断关联是否成立,因此设为必填。复核人和备注用于记录处理过程,不影响关联本身的成立,设为选填。
关联类型的枚举值需要配使用说明:实现类用于需求到设计、任务、代码提交的关联;验证类用于需求到测试用例、验证记录的关联;派生类用于需求拆分、需求到变更请求的关联。枚举值一经确定,新增类型要走规则变更流程,避免各团队自行扩展导致统计口径不一致。字段表由需求管理岗或过程改进岗维护,建议每季度或在流程节点调整时更新一次,更新后同步通知所有填写人。
在工具层面,ONES 以数字线程贯通需求、开发、测试、变更与发布,支撑影响分析、过程追溯和合规审计;其方案把测试用例、缺陷、版本和发布过程关联到需求链路中,便于在需求变化时沿关联关系定位受影响的任务、测试和交付内容。团队可以把上述字段表映射到工作项与需求条目的关联关系上,具体关联类型配置与必填校验方式以实际环境为准。
角色与交付物:谁在什么时点建立和复核关联
规则无人执行就会退化成文档。下表把每个角色的职责、交付物和交接时点固定下来,便于在流程中检查。
| 角色 | 职责 | 交付物 | 交接时点 |
|---|---|---|---|
| 需求负责人 | 维护需求条目、需求版本和验收条件;发起实现关联与验证关联;需求变更时发起关联复核 | 需求条目、验收条件、关联记录(实现类、验证类) | 需求评审通过后、需求变更评审后 |
| 开发负责人 | 确认实现关联;提交设计说明或开发任务;补充代码提交关联 | 设计说明、开发任务、代码提交记录及对应关联 | 设计评审通过后、开发任务完成时 |
| 测试负责人 | 建立验证关联;提交测试用例与验证记录;反馈验证结果 | 测试用例、验证记录及对应关联 | 测试执行前、验证完成后 |
| 评审角色(需求评审、变更评审) | 复核关联完整性;确认变更后关联的复核、关闭或重建结论 | 评审结论、关联复核记录 | 需求评审会、变更评审会 |
交接时点的设计原则是“关联跟着对象走”:对象在哪个节点产生或变更,关联就在该节点之后建立或复核。需求负责人是关联链路的发起者,开发负责人和测试负责人分别对实现侧和验证侧关联的准确性负责,评审角色在关键节点做完整性把关。小团队中一人兼任多个角色时,仍建议在记录中区分角色,避免复核变成自我确认。
示例:一条需求从提出到验证的关联记录
以下为演示情景,用于说明字段如何填写,不代表任何真实项目数据。
需求条目 REQ-0142“支持按项目导出需求清单”,验收条件为:导出文件包含需求编号、标题、状态三列;导出操作在权限校验通过后执行。需求评审通过后,需求负责人建立实现关联:设计说明 DES-031(关联类型为实现类,理由为“定义导出字段与权限校验逻辑”),开发任务 TASK-0876(实现类,理由为“实现导出功能与权限校验”)。开发完成后补充代码提交关联 COMMIT-5521(实现类,理由为“导出接口与权限校验代码”)。测试负责人建立验证关联:测试用例 TC-0455(验证类,理由为“覆盖导出字段完整性”),验证记录 VR-0233(验证类,理由为“执行通过,结果附截图”)。
随后需求变更:验收条件增加“导出文件包含负责人列”。需求版本升级,原有五条关联记录统一置为“待复核”。需求负责人复核后确认:DES-031 需更新,关联保留并备注“设计已同步修改”;TASK-0876 关联保留,新增子任务 TASK-0910 并建立实现类关联;COMMIT-5521 标记失效,备注“由新提交替代”;TC-0455 关联保留并补充用例步骤;VR-0233 标记失效,待重新验证后建立新的验证记录。整个复核过程在变更评审会上确认,评审结论记入关联复核记录。
完成检查:规则是否可执行、可核查
规则建立后,用以下清单逐项检查。检查的对象是规则本身和规则执行情况,两项都通过才算落地。
- 关联类型是否覆盖实现类与验证类两条主链路,派生类是否有明确使用场景。
- 每个必填字段是否都有明确来源系统或文档,且指定了填写责任人。
- 抽取若干条需求,检查是否具备完整的实现关联和验证关联记录,缺失项是否有说明。
- 抽取发生过变更的需求,检查关联记录是否被置为待复核并完成复核、关闭或重建。
- 覆盖率统计口径是否明确:统计分母是全部需求条目还是本期变更需求,统计频率是每迭代还是每月,统计结果由谁查看和跟进。
- 关联类型枚举和字段表是否有维护责任人,最近一次更新时间是否在约定周期内。
检查中发现的问题应回到对应步骤修正:字段取不到值,回到第三步调整字段来源;关联建立不及时,回到第四步核对时点与角色;变更后关联未复核,回到第五步补充触发规则。覆盖率统计只用于判断规则是否被执行,测试用例设计是否充分、测试覆盖率是否达标,仍需在测试覆盖与需求验证的专门流程中评估。
常见问题
需求关联规则和测试覆盖管理是什么关系,边界怎么划?
需求关联规则负责建立需求到实现、验证对象的关联关系,回答“这条需求有没有对应的实现和验证记录”。测试覆盖管理回答的是“测试用例设计是否充分、覆盖率是否达标”。两者可以衔接:关联规则中的覆盖率统计只判断关联是否存在,不评价用例质量;用例质量评估放在测试覆盖与需求验证的专门流程中。制定规则时把这条边界写进范围表,可以避免规则越写越宽。
团队规模较小、一人兼任多个角色时,关联规则怎么简化?
可以合并角色,但建议保留记录中的角色区分。例如同一个人既是需求负责人又是测试负责人,建立验证关联时仍分别记录发起人和确认人,避免复核变成自我确认。字段表可以精简选填项,必填字段(源对象、目标对象、关联类型、理由、建立人、建立时间、复核状态)建议保留,否则关联记录无法被独立核查。规则简化的是角色数量和流程节点,不是记录的可核查性。
需求变更后,原有实现关联和验证关联应该关闭还是保留?
取决于关联对象本身是否继续有效。需求版本升级时,先把原有全部关联置为“待复核”,再逐条判断:对象内容需要同步修改但关系仍成立的,关联保留并备注修改说明;对象被新对象替代的,原关联标记失效并备注替代关系,同时为新对象建立关联;对象不再需要的,关联关闭并记录原因。保留失效记录有助于回溯变更历史,直接删除会让追溯链断开。
关联覆盖率统计的分母和频率怎么定比较合理?
分母建议与规则目标一致:如果规则要求所有需求都具备实现和验证关联,分母就是全部在途需求条目;如果本期只治理变更需求,分母就是本期发生变更的需求。频率跟随团队节奏,按迭代统计便于在迭代回顾中跟进,按月统计适合跨团队汇总。统计结果要指定查看人和跟进动作,否则覆盖率数字只停留在报表上。统计口径一经确定,调整时同步更新规则文档。
代码提交这类实现对象是否必须强制关联到需求?
按团队工具条件和提交粒度决定。代码提交粒度细、数量多,强制逐条关联会增加填写负担,可以要求提交信息中引用需求标识,由工具自动建立关联;工具条件不具备时,先强制设计说明和开发任务两类关联,代码提交作为可选补充。是否强制写进范围表,并说明理由,避免执行时各团队理解不一致。
