要量化测试覆盖不足,可以按需求、功能、风险三个维度分别计算缺口:需求维度看未通过验证的需求,功能维度看未被用例执行覆盖的功能点,风险维度看高风险项中尚未覆盖的部分。三个维度使用同一统计范围和时间窗,再按风险加权汇总成缺口清单与优先级。本文给出可复算的公式、取数口径、计算步骤和一个假设版本的演示,并说明覆盖率结果的适用边界。
要点总览(TL;DR)
- 需求、功能、风险三个维度分别量化缺口:需求覆盖率=已通过验证需求数÷范围内需求总数,功能覆盖率=已执行用例覆盖的功能点数÷范围内功能点总数,风险覆盖缺口率=未覆盖高风险项数÷高风险项总数。
- 三个维度必须使用同一统计范围、同一截止时间和同一分母口径,结果才可比较、可复算;分母为零的维度标注不适用,不按0%计入汇总。
- 汇总时先按维度列出缺口对象,再按风险等级赋权(如高3、中2、低1)计算加权缺口分,排序依次比较是否高风险缺口、加权分、业务关键程度。
- 覆盖率只反映验证广度,不反映用例质量和缺陷发现能力,不能单独作为发布质量结论或测试团队绩效指标。
- 口径变化(功能点粒度、需求层级、风险评定标准、时间窗)时,新旧两期只比较缺口清单构成,不直接比较覆盖率数值。
评估目标:缺口要回答哪三个问题
覆盖缺口评估的目的,是在一个明确的版本、迭代或系统范围内,回答三个具体问题:哪些需求还没有得到验证,哪些功能点还没有被测试执行触达,哪些高风险项还没有覆盖。三个问题对应三类不同的遗漏,任何单一覆盖率数字都无法同时表达它们。
评估的输出物应是一份缺口清单加优先级排序,而不是一个百分比。清单中每条记录至少包含:缺口对象(需求、功能点或风险项)、所属维度、当前状态、风险等级、责任人和计划补齐时间。百分比可以作为汇总视图,但决策依据是清单本身。
评估开始前需要固定三件事:评估时点(例如版本提测后第几轮回归)、统计范围(哪些需求、功能模块和风险项纳入本次评估)、数据截止时间。范围一旦确定,三个维度都使用同一范围,后续结果才可比较、可复算。
指标与范围:三维度的分子分母怎么定
三个维度各有一个覆盖率指标和一个缺口指标,分子分母必须事先写清楚,并在多次评估之间保持一致。下表给出定义、公式与单位。
| 维度 | 覆盖率指标 | 公式 | 缺口指标 | 单位 |
|---|---|---|---|---|
| 需求 | 需求覆盖率 | 已通过验证的需求数 ÷ 范围内需求总数 | 未通过验证或未验证的需求数 | 个、百分比 |
| 功能 | 功能覆盖率 | 已执行用例覆盖的功能点数 ÷ 范围内功能点总数 | 未被任何已执行用例覆盖的功能点数 | 个、百分比 |
| 风险 | 风险覆盖率 | 已覆盖的高风险项数 ÷ 高风险项总数 | 风险覆盖缺口率 = 未覆盖的高风险项数 ÷ 高风险项总数 | 个、百分比 |
需求维度的分母是本次范围内全部需求,包括新增、变更和受影响的历史需求;分子只计“已通过验证”的需求,仅执行了用例但结论未确认的需求不计入分子。功能维度的分母是范围内功能点清单的总数,功能点粒度需要在评估前约定,例如按页面、接口或业务规则拆分,粒度变化会导致结果不可比。风险维度的分母是已评定的高风险项总数,风险等级来源需要独立于测试执行结果,避免用测试结果反推风险等级。
时间窗建议与版本或迭代周期对齐,例如“本迭代提测日至发布评审日”。跨版本累计统计适合观察趋势,单版本评估适合做发布决策,两者不要混用同一组数字。所有指标以评估截止时点的系统状态为准,截止后补录的数据不回溯修改本期结果,可在下期体现。
数据口径与证据:取数来源和判定标准
指标能否复算,取决于每个数字是否有明确的取数来源和判定规则。需求维度从需求管理系统取需求清单与验证结论,验证结论应有对应的测试记录或评审记录作为证据;状态停留在“测试中”的需求按未验证处理。功能维度依赖功能点与用例的映射关系,这份映射需要在需求评审或测试设计阶段维护,评估时按映射关系反查每个功能点是否有已执行用例。
风险维度的高风险项清单通常来自需求评审、架构评审、历史缺陷分析和业务影响评估,风险等级评定依据应书面化,例如按影响范围、发生概率和业务关键程度分级。高风险项清单在评估周期内保持稳定,中途新增的风险项需标注加入时间,避免与期初清单混算。
口径不一致是常见问题,需要预先约定处理规则:
- 状态未更新:以系统记录为准,同时标注“状态待确认”,不凭口头信息改为已覆盖。
- 缺失值:该对象标注“数据不足”,不计入分子,也不从分母中剔除,单独列出待补数据清单。
- 重复统计:一个功能点被多条用例覆盖只计一次;一个需求拆成多个子需求时,以评估前确认的需求层级为准,不重复计数。
- 用例执行无效:执行结果被判定为无效(如环境错误、用例本身失效)时不计为已覆盖,需重新执行后更新。
在工具层面,需求、用例与执行记录如果分散在多个表格中,取数成本和口径偏差都会上升。ONES 测试管理支持测试用例与需求、任务关联,测试计划与迭代关联,测试计划的进度和通过率可在计划视图中查看,这些记录可以作为需求维度和功能维度的取数基础;风险项清单的来源与等级字段则需结合项目实际配置确认。评估前应先用一个迭代试算,确认各字段能稳定导出再全面推开。
计算与评估步骤:从取数到缺口排序
计算按固定顺序进行,保证任何人用同一份数据能得到同一结果。
第一步,锁定范围与截止时间。导出范围内需求清单、功能点清单、高风险项清单和用例执行记录,记录导出时间与数据版本。
第二步,分维度计算覆盖率和缺口数。按上一节的公式分别算出三个覆盖率,并列出每个维度的缺口对象清单。缺口数用绝对数量记录,覆盖率用百分比记录,两者同时保留。
第三步,风险加权汇总。先给每个缺口对象标注风险等级,再设定权重。权重设定原则建议按风险等级分层,例如高风险缺口权重为3、中风险为2、低风险为1,权重在评估前确定并记录在评估说明中,同一版本内不调整。加权缺口分的计算方式为:各缺口对象的权重之和,可按维度分别汇总,也可合并为总分。
第四步,排序与优先级判定。排序规则建议依次比较:是否高风险缺口、加权缺口分、缺口对象所属业务关键程度。高风险且无任何覆盖的项排在最前,其次是高风险但仅有部分覆盖的项,再次是中低风险缺口。排序结果形成补齐计划,每项指定责任人与目标完成时间。
第五步,处理异常情况。分母为零时(例如本版本无高风险项),该维度标注“不适用”,不按0%计入汇总,也不参与加权总分计算。不同版本功能点粒度或需求层级发生变化时,两期覆盖率不做直接比较,改为比较缺口清单的变化。
例子:一个版本的缺口计算演示
以下数据为演示用假设数据,不对应任何真实项目。
假设某版本范围内共有需求40个,其中已通过验证28个;功能点120个,已被已执行用例覆盖90个;高风险项15个,已覆盖9个。权重设定为高风险3、中风险2、低风险1。
| 维度 | 计算过程 | 覆盖率 | 缺口数 |
|---|---|---|---|
| 需求 | 28 ÷ 40 | 70% | 12个需求未通过验证 |
| 功能 | 90 ÷ 120 | 75% | 30个功能点未覆盖 |
| 风险 | 9 ÷ 15 | 60% | 6个高风险项未覆盖,风险覆盖缺口率40% |
加权汇总时,先对缺口对象逐项标注风险等级。假设12个未验证需求中,高风险4个、中风险5个、低风险3个,加权分为4×3+5×2+3×1=25;30个未覆盖功能点中,高风险6个、中风险14个、低风险10个,加权分为6×3+14×2+10×1=56;6个未覆盖高风险项加权分为6×3=18。三维度加权缺口合计99分。
缺口清单排序示例:第一位是6个未覆盖的高风险项,它们直接构成发布风险;第二位是4个未验证的高风险需求;第三位是6个未覆盖的高风险功能点;之后按加权分依次排列中低风险缺口。这个排序说明,虽然功能维度缺口数量最多(30个),但风险维度的缺口对发布决策影响更大,补齐资源应优先投向高风险项。
解读与限制:覆盖率说明什么、不说明什么
覆盖率反映的是验证广度,即有多少需求、功能点和风险项被测试活动触达,它不保证测试能发现缺陷。一个功能点被一条粗粒度用例覆盖,与被执行多组边界用例覆盖,覆盖率数字相同,缺陷发现能力差别很大。因此解读结果时要同时看用例设计质量、执行有效性和缺陷发现情况,不能仅凭覆盖率判断版本质量。
单指标不能替代整体质量判断。需求覆盖率70%可能意味着大量需求未验证,也可能意味着部分需求被合并或取消但清单未更新,需要回到缺口清单逐项确认。风险覆盖缺口率适合做发布评审的输入,不适合直接作为测试团队的绩效指标,否则容易诱发只追求覆盖数量、忽视用例质量的行为。
口径变化会导致结果不可比,常见情形包括:功能点拆分粒度调整、需求层级变更、风险等级评定标准修改、统计时间窗从迭代改为版本。发生这些变化时,应在评估说明中记录变更内容,新旧两期结果只比较缺口清单的构成变化,不直接比较覆盖率数值。分母为零的维度标注为不适用,避免用0%制造虚假的严重程度。
常见问题
评估周期内需求被拆分或合并,需求覆盖率的分母怎么处理?
以评估前确认的需求层级为准,并在评估说明中记录本次采用的需求清单版本。拆分后的子需求按子需求计数,合并后的需求按合并后的条目计数,同一需求不重复计入分子和分母。如果拆分或合并在评估截止后才发生,本期结果不回溯修改,在下期评估中体现并注明变更。
高风险项清单在评估中途新增,是否要重新计算风险覆盖缺口率?
建议保持期初清单稳定,新增高风险项单独标注加入时间,作为“期内新增”列示,不并入期初分母重算。这样本期结果与上期可比,新增项的风险也能被看见。如果新增项属于发布阻断级别,可以单独列入发布评审的阻断清单,不必改动整体指标。
功能点粒度怎么定,才能让不同版本的覆盖率可比?
功能点粒度需要在首次评估前书面约定,例如按页面、接口或业务规则拆分,并形成功能点清单模板。后续版本沿用同一拆分规则;确需调整粒度时,在评估说明中记录调整范围和原因,新旧两期只比较缺口清单的构成变化,不直接比较覆盖率数值。
三个维度的加权缺口分可以直接相加成一个总分吗?
可以相加,但前提是三个维度使用同一统计范围和同一权重规则,且总分只用于同一版本内部的排序参考。不同版本之间、不同项目之间不宜直接比较总分,因为缺口对象的数量和构成不同。更稳妥的做法是保留分维度缺口数和加权分,总分仅作汇总视图。
用ONES测试管理取数时,需求验证结论和用例执行记录怎么对应?
ONES 测试管理支持测试用例与需求、任务关联,测试计划与迭代关联,测试计划的进度和通过率可在计划视图中查看(F1、F3)。评估时可按需求反查关联用例及其执行结果,把“已通过验证”的需求计入分子。风险项清单的来源与等级字段需结合项目实际配置确认,建议先用一个迭代试算,确认字段能稳定导出后再全面推开。
