测试覆盖分析要回答“测到什么程度、哪些还没测”,依据来自四层:需求与验收标准是判定基准,测试设计与用例是覆盖对象,执行记录与缺陷数据是实际覆盖证据,需求—用例—执行—缺陷的关联关系是核对口径。本文按这四层给出依据清单、统计口径、角色分工和一份可参照的版本示例,范围限定在测试覆盖判定,不涉及插桩实现与研发全链路追溯体系建设。
要点总览(TL;DR)
- 测试覆盖分析的依据分四层:需求与验收标准定判定基准,测试设计与用例定覆盖对象,执行记录与缺陷数据提供实际覆盖证据,需求—用例—执行—缺陷的关联关系作为核对口径。
- 统计前先锁定需求基线版本和纳入范围,分母口径(按需求条目、验收标准或风险项)书面确定,中途变更需说明对分母的影响。
- 覆盖率必须与缺口说明一起输出,未覆盖、阻塞、部分覆盖三类缺口分别标注原因和责任人,只报百分比无法支撑评审。
- 测试负责人统一口径并汇总报告,需求负责人确认基线与验收标准,开发回填缺陷状态,需求与测试共同评审结论。
- 报告定稿前用完成检查清单逐项核对:范围、关联完整性、缺口标注、口径一致性、缺陷状态、评审确认和后续动作可跟踪。
测试覆盖分析的核心依据与操作步骤
覆盖分析容易做成“报一个百分比”,问题往往出在依据不齐:需求版本没固定、用例与需求对不上、执行记录散落在不同表格、缺陷状态没人回填。把四类依据先备齐,再按固定步骤统计,结论才经得起评审追问。
四类依据分别提供什么
| 依据类别 | 具体内容 | 在分析中的作用 | 缺失时的典型后果 |
|---|---|---|---|
| 需求与验收标准 | 需求条目、验收标准、优先级、变更记录 | 确定覆盖分母与“通过”的判定标准 | 覆盖率无法定义,验收标准模糊导致判定争议 |
| 测试设计与用例 | 用例清单、用例与需求的对应关系、用例优先级 | 确定覆盖对象,说明每个需求由哪些用例验证 | 无法判断需求是否被设计覆盖 |
| 执行记录与缺陷数据 | 用例执行结果、执行时间、缺陷单及修复状态 | 提供实际覆盖证据,区分通过、失败、阻塞 | 只能报计划覆盖,无法反映真实测试进展 |
| 追溯关联关系 | 需求—用例—执行—缺陷的链接与状态 | 作为核对口径,支持从缺口反查原因 | 数据对不上,缺口无法定位到具体需求或责任人 |
四步操作流程
第一步:确定基准版本与覆盖范围。输入是本次版本的需求清单和发布范围说明;动作是锁定需求基线版本,明确哪些需求条目进入本次覆盖统计,哪些因裁剪或延期排除并记录原因;输出是一份带版本号的范围清单;完成标志是需求负责人确认范围无遗漏、无多余。
第二步:建立需求到用例的关联。输入是基线需求条目和用例库;动作是逐条建立需求与用例的对应关系,一条需求可对应多条用例,同时标记没有对应用例的需求;输出是需求—用例关联表,以及“无用例覆盖”的需求清单;完成标志是每条纳入范围的需求都有明确归属,未关联项已列明。
第三步:按维度统计覆盖并标注缺口。输入是关联表、执行记录和缺陷数据;动作是按选定口径计算各维度覆盖率,把未执行、执行失败、阻塞的用例单独归类,并为每个缺口标注原因和责任人;输出是覆盖统计表与缺口清单;完成标志是每个缺口都有原因分类,没有“原因待查”的空白项。
第四步:输出覆盖报告并评审。输入是统计表、缺口清单和缺陷状态;动作是汇总成覆盖报告,写明结论、风险判断和后续动作,提交需求负责人与测试负责人评审;输出是经确认的覆盖报告;完成标志是评审意见关闭,报告定稿并归档到对应版本。
在需求、用例、缺陷需要保持关联的场景中,ONES 测试管理支持测试用例与需求、任务关联,测试计划与迭代关联,未通过的用例可快速创建缺陷任务并在测试与研发团队间流转。这类关联数据正好构成第三步统计和第四步报告的输入,减少手工对表。具体报表字段与统计口径仍需在实际配置中确认。
覆盖维度与统计口径怎么定
维度选择取决于这次分析要回答什么问题。面向发布决策,重点看需求覆盖和风险覆盖;面向测试过程管理,重点看用例执行率;面向复杂业务流程,补充场景覆盖。维度不宜一次铺太多,二到三个维度配合缺口说明,通常比一张塞满指标的报表更有说服力。
| 维度 | 分母口径 | 适用场景 | 需要同时说明的内容 |
|---|---|---|---|
| 需求覆盖率 | 按纳入范围的需求条目计数 | 版本发布前判断需求验证是否完整 | 未覆盖需求清单及排除原因 |
| 验收标准覆盖率 | 按验收标准条目计数 | 需求条目颗粒度粗、验收标准较细时 | 哪些验收标准没有对应用例 |
| 用例执行率 | 按计划执行的用例数计数 | 跟踪测试执行进度 | 未执行、阻塞用例的数量与原因 |
| 风险覆盖率 | 按识别的风险项计数 | 高风险模块或核心链路需要重点保障 | 每个风险项对应的验证手段与结果 |
| 场景覆盖率 | 按端到端业务场景计数 | 跨模块流程、用户主路径验证 | 场景清单及未覆盖环节 |
分母口径必须在分析开始前书面确定,并在报告中注明。同一份报告里混用“按需求条目”和“按验收标准”两种分母,前后数据就不可比。需求在版本中期发生变更时,应更新基线并说明变更对分母的影响,而不是悄悄调整数字。
缺口分类建议统一为三类:未覆盖指没有对应用例或未安排测试;阻塞指用例存在但因环境、依赖等原因无法执行;部分覆盖指用例已执行但只验证了需求的一部分验收标准。三类缺口都要写原因和责任人,只报百分比而不说明缺口,评审时无法判断剩余风险。
角色分工与各环节交付物
覆盖分析不是测试团队单方面填表。需求方提供判定基准,开发方回填缺陷状态,评审方确认结论,测试负责人负责口径统一和报告汇总。职责不清时最常见的现象是:覆盖率算出来了,但没人能确认缺口原因是否属实。
| 角色 | 主要职责 | 交付物 | 交接时点 |
|---|---|---|---|
| 测试负责人 | 制定统计口径与缺口分类规则,汇总统计结果,组织评审 | 口径说明、覆盖统计表、覆盖报告 | 分析启动前发布口径;评审前提交报告 |
| 需求负责人 | 确认需求基线与范围,明确验收标准,确认未覆盖需求的排除原因 | 基线需求清单、验收标准、范围确认记录 | 第一步开始前;缺口确认阶段 |
| 测试设计人员 | 建立需求与用例关联,维护用例优先级 | 需求—用例关联表、无用例覆盖清单 | 第二步结束时 |
| 开发人员 | 回填缺陷修复状态,说明阻塞问题的处理进展 | 缺陷状态更新、阻塞原因说明 | 统计前完成一轮回填;报告定稿前更新 |
| 评审角色(需求与测试共同) | 确认覆盖结论、剩余风险与后续动作 | 评审意见与确认记录 | 报告提交后、发布决策前 |
交接的关键是时点而非形式。需求基线在分析启动前锁定,关联表在统计前完成,缺陷状态在报告定稿前回填到位。任何一个环节延后,统计结果都会带着过期数据进入评审。
示例:一次版本测试覆盖分析怎么做
以下为演示情景,数据为示例填写,用于说明分析过程,不代表任何真实项目结果。
背景与范围。某版本计划发布,纳入范围的需求共 40 条,其中 3 条经需求负责人确认延期,不进入本次统计,实际分母为 37 条。基线版本标记为 V2.3,分析口径为需求覆盖率与用例执行率两个维度。
需求与用例关联填写。37 条需求中,34 条建立了对应用例,共关联用例 126 条;3 条需求没有对应用例,其中 2 条为新增需求尚未补充用例,1 条为界面文案调整,经确认由人工检查替代。关联表按“需求编号—需求描述—用例编号—用例优先级—关联状态”逐行填写,未关联项在关联状态列标注原因。
覆盖统计与缺口标注。126 条用例中,已执行 108 条,通过 96 条,失败 9 条,阻塞 3 条;未执行 18 条。按需求条目计算,有用例覆盖且至少执行一条用例的需求为 31 条,需求覆盖率约 84%。缺口清单记录:2 条需求无用例(责任人:测试设计人员,计划补充);3 条用例阻塞(原因:测试环境依赖未就绪,责任人:开发人员);18 条用例未执行(集中在低优先级需求,责任人:测试负责人,说明排期安排)。失败用例对应的 9 个缺陷已创建缺陷单,其中 5 个已修复待验证。
报告结论与后续动作。报告写明:核心需求均已覆盖并通过验证;2 条新增需求在补充用例后需重新统计;阻塞用例涉及的模块在环境就绪后补测;低优先级需求未执行部分作为已知风险记录,由需求负责人确认是否接受。报告经需求负责人与测试负责人评审后定稿,作为发布决策的输入之一。
完成检查:覆盖分析是否可交付
报告提交评审前,用下面这份清单逐项核对。每一项都应能给出明确的是或否,答“否”的项需要补齐后再提交。
- 基准版本与覆盖范围是否明确:需求基线有版本标记,纳入与排除的需求条目均有记录和确认人。
- 需求与用例关联是否完整:每条纳入范围的需求都有对应用例或明确的替代验证方式,未关联项已列明原因。
- 缺口是否标注原因与责任人:未覆盖、阻塞、部分覆盖三类缺口均有分类、原因和责任人,没有空白项。
- 统计口径是否前后一致:分母定义在报告中注明,全文使用同一口径,需求变更对分母的影响已说明。
- 缺陷状态是否完成回填:失败用例对应的缺陷有当前状态,修复待验证项已标明。
- 报告是否经评审确认:需求负责人与测试负责人确认结论与剩余风险,评审意见已关闭。
- 后续动作是否可跟踪:补充用例、补测、风险接受等动作有责任人和时间点。
这份清单同时可以作为下一次覆盖分析的启动检查:上一版本遗留的缺口是否已关闭,口径是否需要沿用或调整,都会直接影响新一版统计结果的可比性。
常见问题
需求在版本中期发生变更,覆盖分析的分母怎么处理?
先更新需求基线版本,再在报告中单独说明变更条目及其对分母的影响,例如新增需求使分母从 37 条变为 40 条,覆盖率随之重算。保留变更前后的统计结果,便于评审时对比。直接调整数字而不记录变更,会让前后数据不可比,也无法解释覆盖率波动的原因。
没有对应用例的需求,能不能直接算作未覆盖?
可以计入未覆盖,但需要区分原因。常见情况有两类:一类是测试设计尚未补充用例,属于待补工作;另一类是需求本身不需要用例验证,例如文案调整由人工检查替代。第二类应在关联表中标注替代验证方式并经需求负责人确认,报告中单列说明,避免与真正的覆盖缺口混在一起统计。
用例执行率高但缺陷较多,覆盖结论该怎么写?
执行率只反映测试动作完成情况,不反映验证结果。报告中应把执行率与通过率、缺陷状态并列呈现:已执行用例中失败多少、对应缺陷是否已修复待验证、阻塞用例涉及哪些模块。结论部分写明核心需求是否通过验证、剩余缺陷的风险等级,以及是否影响发布决策,由评审角色共同确认。
小团队人手有限,覆盖分析可以简化到什么程度?
可以只保留两个维度和一份缺口清单:需求覆盖率与用例执行率,配合未覆盖、阻塞、部分覆盖三类缺口的原因和责任人。基准版本、分母口径和评审确认这三项不建议省略,它们决定结论能否被复核。维度减少后,报告篇幅可以压缩,但缺口说明仍需逐条写清。
用 ONES 做覆盖分析时,关联数据能直接支撑统计吗?
ONES 测试管理支持测试用例与需求、任务关联,测试计划与迭代关联,未通过的用例可快速创建缺陷任务并在测试与研发团队间流转,这些关联数据可作为统计与报告的输入,减少手工对表。覆盖率的具体统计口径与报表字段需在实际配置中确认,报告结论仍应经过需求负责人与测试负责人评审。
