评估基于风险的测试效果,建议围绕四组指标:风险覆盖、高风险用例执行率、缺陷逃逸和测试投入分布。四组指标需要在同一时间窗、同一风险清单版本下计算,并按风险等级分层查看。单看其中一项容易得出片面结论,组合解读才能判断测试资源是否投向了高风险区域、漏出的缺陷是否集中在高风险区。
要点总览(TL;DR)
- 评估基于风险的测试效果,核心看四组指标:风险覆盖、高风险用例执行率、缺陷逃逸、测试投入分布,四者需在同一时间窗、同一风险清单版本下分层计算。
- 风险覆盖回答“高风险项是否被纳入测试”,高风险用例执行率回答“计划内的高风险用例是否真的执行”,两者结合才能区分范围选对与执行没跟上。
- 缺陷逃逸需按严重级别和风险等级拆分,并约定观察截止日与缺陷归属规则;观察窗过短会低估逃逸,过长会混入其他版本问题。
- 测试投入分布用各风险等级的用例数或执行工时占比,与风险权重对比,判断资源是否向高风险倾斜。
- 不建议设通用达标线,以本团队近几个版本的历史值为基线,指标用于调整风险清单、测试计划和资源分配,不用于个人绩效排名。
评估目标:回答“风险测试有没有把力气用对”
这里评估的对象是“基于风险的测试策略”,即团队是否依据风险等级选择了测试范围、安排了执行顺序、分配了人力。单个测试用例写得好不好、某次执行是否规范,属于用例质量与执行纪律的范畴,不在本文指标覆盖范围内。
评估要回答四个具体问题,对应策略运行的四个可观察面:
- 风险选择:识别出的高风险项是否被纳入测试范围,是否存在高风险项完全没有对应用例的情况。
- 执行到位:计划执行的高风险用例是否实际执行,未执行的部分是否有明确原因。
- 结果验证:上线后漏出的缺陷是否集中在高风险区,还是大量出现在已判定为低风险的区域。
- 投入匹配:用例数量或测试工时是否按风险等级倾斜,高风险区是否获得了与之匹配的投入。
评估结果的使用方向是调整下一轮的风险清单、测试计划和资源分配。例如发现某类高风险项连续两个迭代覆盖不足,就应补充用例或提前介入;发现低风险区投入占比过高,就应压缩该区域的测试深度。把指标直接用于个人绩效排名,会诱导执行人挑选容易通过的用例,反而破坏风险分层的真实性。
指标与范围:四组核心指标及统计边界
四组指标分别刻画覆盖、执行、结果和投入,公式与统计口径如下表。所有指标均以“被测版本或迭代”为统计对象,以“冻结后的风险清单版本”为分层依据,时间窗取该版本的测试启动日至测试关闭日。
| 指标 | 公式 | 分子 | 分母 | 单位 | 时间窗 |
|---|---|---|---|---|---|
| 风险覆盖 | 已覆盖风险项数 ÷ 识别风险项数 | 至少关联一条已执行用例的风险项数 | 风险清单中该等级的风险项总数 | 百分比 | 测试启动日至关闭日 |
| 高风险用例执行率 | 高风险用例实际执行数 ÷ 高风险用例计划执行数 | 状态为已执行的高风险关联用例数 | 测试计划中列入执行范围的高风险关联用例数 | 百分比 | 同上 |
| 缺陷逃逸 | 逃逸缺陷数 ÷ 同期缺陷总数 | 测试关闭后由线上或下游环节发现、且归属本版本的缺陷数 | 本版本测试期缺陷数与逃逸缺陷数之和 | 百分比 | 测试关闭日至约定的观察截止日 |
| 测试投入分布 | 各风险等级投入 ÷ 总投入 | 该等级关联用例数或执行工时 | 全部等级关联用例数或执行工时 | 百分比 | 测试启动日至关闭日 |
分层统计是这套指标的基本要求。整体风险覆盖 80% 可能由“高风险全覆盖、低风险大量空缺”构成,也可能相反,两种情况的策略含义完全不同。因此每个指标都应至少输出高、中、低三档,风险等级划分更多的团队可按实际档位展开。缺陷逃逸还需按严重级别拆分,因为一个高危逃逸缺陷与若干轻微显示问题对策略的启示并不相同。
统计范围要写清楚三件事:被测版本或迭代的标识、所依据的风险清单版本号、缺陷来源范围(仅线上反馈,还是包含下游集成测试与客户报障)。范围一旦变化,跨期比较就失去意义。
数据口径与证据:风险清单、用例与缺陷如何对齐
指标能否复算,取决于三类数据是否有稳定的关联键。建议在测试启动前完成以下字段约定:
- 风险清单:每个风险项有唯一编号、风险描述、风险等级、评级依据和评级人。风险等级在测试期内冻结,确需调整时保留变更记录,指标按冻结版本计算。
- 用例关联:每条用例标注其覆盖的风险项编号,允许多对多关联。执行记录至少包含执行状态、执行人、执行时间、所属测试计划。
- 缺陷关联:测试期缺陷标注发现阶段和关联风险项;逃逸缺陷需有发现来源(线上监控、客户反馈、下游团队)、发现时间、严重级别,以及“测试期未发现”的确认证据,例如对应场景无用例、有用例但未执行、或执行通过但场景未覆盖。
缺失数据的处理规则要事先写明,否则不同人算出的结果无法对齐:
- 未评级风险项单列为“未评级”档,不并入中风险,也不从分母中剔除,同时在报告中标注其数量。
- 未关联任何风险项的用例计入总投入,但不计入任何等级的风险覆盖。
- 重复关联按去重后的风险项计数,一条用例关联同一风险项多次只算一次覆盖。
- 执行状态缺失的用例按“未执行”处理,并在数据质量说明中列出数量。
这些关联关系需要工具承载才能稳定取数。ONES 测试管理支持测试用例与需求、任务关联,测试计划与迭代关联,并支持自定义用例属性及按属性筛选,团队可以据此为用例补充风险项编号、风险等级等字段,再按属性筛选出各等级的用例集合。未通过的用例可快速创建缺陷任务并在测试与研发团队间流转,缺陷可关联至迭代,为缺陷归属版本和后续逃逸判定提供记录基础。风险清单本身的管理方式、风险等级字段是否内置,需按实际配置确认;若工具内没有专门的风险对象,可用自定义属性或独立的需求/任务类型承载风险项编号。
计算与评估步骤:从取数到形成判断
建议按以下顺序执行,每一步都有明确的完成标志:
- 冻结风险清单。确认版本号、风险项总数及各等级数量,形成本次统计的基准。完成标志是清单版本与评级记录可追溯。
- 关联用例与缺陷。导出用例的风险项关联、执行状态、执行工时,以及缺陷的发现阶段、严重级别、关联风险项。完成标志是缺失关联和缺失状态的数量已统计并说明。
- 按等级汇总。分别计算高、中、低及未评级档的四组指标,输出分子分母原始值,而不只给百分比。
- 计算四项指标。按上表公式代入,保留原始计数以便复核。
- 与基线和计划对比。对比上一迭代或上一版本的同类指标,以及本迭代测试计划中的预期投入比例,识别偏差方向。
- 形成结论与动作。针对偏差提出具体调整,例如补充某类高风险项用例、调整下轮执行顺序、复核低风险判定是否过于宽松。
分母为零的情况需要单独规定。某等级没有风险项时,该等级的风险覆盖和高风险用例执行率记为“不适用”,不记为 0%,否则会把整体均值拉低;某版本没有缺陷时,缺陷逃逸同样记为“不适用”,并说明观察窗口是否足够。跨版本汇总时,只对分母非零的版本做加权,权重取分母值。
交叉解读是形成判断的关键。风险覆盖高但高风险用例执行率低,说明范围选对了、执行没跟上;执行率高但缺陷逃逸集中在高风险区,说明用例覆盖了风险项却没有真正验证到风险场景;投入分布与风险权重背离,则提示资源分配环节存在问题。任何单项指标异常都应回到另外三项中找解释,再下结论。
算例:一个迭代的四项指标怎么算、怎么读
以下为演示情景,数据为虚构,仅用于说明计算过程。
某迭代冻结的风险清单共 40 个风险项:高风险 8 个、中风险 16 个、低风险 16 个。测试计划列入执行范围的用例共 200 条,其中关联高风险的 60 条、中风险 90 条、低风险 50 条。执行结束后,高风险用例执行 54 条,中风险 82 条,低风险 40 条。风险覆盖方面,8 个高风险项全部有已执行用例覆盖,16 个中风险项覆盖 13 个,16 个低风险项覆盖 9 个。本版本测试期发现缺陷 45 个,测试关闭后 30 天观察窗内又发现归属本版本的逃逸缺陷 5 个,其中 3 个属于高风险项、1 个属于中风险项、1 个属于低风险项。执行工时按等级统计为高风险 120 小时、中风险 100 小时、低风险 30 小时。
| 指标 | 高风险 | 中风险 | 低风险 | 整体 |
|---|---|---|---|---|
| 风险覆盖 | 8/8 = 100% | 13/16 = 81.3% | 9/16 = 56.3% | 30/40 = 75.0% |
| 用例执行率 | 54/60 = 90.0% | 82/90 = 91.1% | 40/50 = 80.0% | 176/200 = 88.0% |
| 缺陷逃逸 | 3/(高风险相关缺陷数+3) | 1/(中风险相关缺陷数+1) | 1/(低风险相关缺陷数+1) | 5/50 = 10.0% |
| 投入分布(工时) | 120/250 = 48.0% | 100/250 = 40.0% | 30/250 = 12.0% | 250 小时 |
解读这份结果:高风险覆盖达到 100%,投入工时占比 48%,高于高风险项在清单中 20% 的数量占比,说明资源确实向高风险倾斜。但高风险用例执行率 90% 意味着有 6 条计划内高风险用例未执行,需要核查原因;同时 5 个逃逸缺陷中有 3 个落在高风险区,提示高风险用例虽然执行了,验证深度或场景设计可能不足,应回看这 3 个缺陷对应的风险项与用例内容。低风险覆盖 56.3%、执行率 80%,在资源有限时属于可接受的取舍,但需确认未覆盖的低风险项确实经过判定而非遗漏。
该算例的局限在于:缺陷逃逸的分母需要各等级缺陷数才能算出分层比例,示例中未完整给出;30 天观察窗对长周期问题可能偏短;风险评级由人工完成,等级划分本身存在主观性。实际使用时应对齐完整数据并说明观察窗设定。
解读与限制:哪些结论能下、哪些不能
这四组指标反映的是测试范围的选择、执行的完成度和资源的分布,不能单独证明产品质量,也不能证明某个缺陷的出现与某项测试动作之间存在因果关系。风险覆盖 100% 只说明每个风险项都有已执行用例,不说明这些用例能有效暴露该风险对应的故障。
风险评级的主观性会传导到全部指标。评级偏松会让高风险区看起来覆盖良好,评级偏严会让投入分布显得失衡。可行的做法是记录评级依据,定期由测试与业务方共同复核高风险项清单,并在报告中说明评级口径是否发生变化。
缺陷逃逸受发现周期和统计窗口影响明显。观察窗过短会低估逃逸,过长则会混入其他版本引入的问题。需要在统计前约定观察截止日与缺陷归属规则,跨期比较时保持窗口一致。测试期缺陷发现得少,也可能是因为执行不充分,此时逃逸率反而可能被低估,需结合执行率一起看。
不建议为四项指标设定通用达标线。不同业务的风险偏好、发布节奏和历史水平差异很大,更合理的做法是以本团队近几个版本的历史值作为基线,结合风险偏好设定观察区间,出现明显偏离时触发复盘。指标的服务对象是测试策略的调整,把它变成个人排名依据,会改变数据填报行为,使后续统计失真。
常见问题
风险覆盖达到100%,是否说明基于风险的测试已经做到位?
不能直接这样判断。风险覆盖 100% 只说明每个风险项都至少关联了一条已执行用例,不说明这些用例能有效暴露该风险对应的故障。需要结合另外三项指标一起看:高风险用例执行率是否接近计划值、逃逸缺陷是否仍集中在高风险区、投入分布是否与风险权重匹配。如果覆盖满、执行率也高,但高风险区仍持续漏出缺陷,问题更可能出在用例场景设计或验证深度上,应回看对应风险项的用例内容。
某个风险等级没有风险项或没有缺陷时,指标该怎么记?
分母为零时,该等级的指标记为“不适用”,不记为 0%。记为 0% 会把整体均值拉低,造成误读。跨版本汇总时,只对分母非零的版本做加权,权重取分母值。缺陷逃逸在无缺陷版本上同样记为不适用,并说明观察窗口是否足够长,避免把“没发现”误当成“没有逃逸”。
风险评级由人工判定,主观性会不会让指标失去参考价值?
主观性会影响全部四项指标,但可以通过口径管理降低干扰。建议每个风险项记录评级依据和评级人,测试期内冻结等级,确需调整时保留变更记录;定期由测试与业务方共同复核高风险项清单;报告中说明评级口径是否发生变化。这样跨期比较时,至少能区分是指标变化还是评级标准变化。
缺陷逃逸的观察窗口应该设多长?
没有统一答案,取决于业务发布节奏和问题暴露周期。窗口过短会低估逃逸,过长会混入其他版本引入的问题。可行做法是在统计前约定观察截止日和缺陷归属规则,例如以版本上线后固定天数内、由线上监控或客户反馈发现且归属本版本的缺陷为准,并在跨期比较时保持窗口一致。长周期业务可适当延长窗口,同时在报告中注明。
这些指标的数据在测试管理工具里怎么取?
关键是三类数据有稳定的关联键:风险项编号与等级、用例与风险项的关联及执行状态、缺陷与风险项及版本的关联。ONES 测试管理支持测试用例与需求、任务关联,测试计划与迭代关联,并支持自定义用例属性及按属性筛选,团队可以为用例补充风险项编号、风险等级字段,再按属性筛出各等级的用例集合;未通过的用例可快速创建缺陷任务并在测试与研发团队间流转,缺陷可关联至迭代。风险清单本身是否作为独立对象管理、风险等级字段是否内置,需按实际配置确认,没有专门风险对象时可用自定义属性或独立工作项类型承载。


















