缺陷积压清单怎么统计老化程度和清理进展

用缺陷积压清单统计老化程度和清理进展,关键是先把清单口径固定下来:纳入哪些未关闭状态、从哪一天起算、按周还是按迭代取数。口径确定后,老化程度看存量结构,回答“积压里有多少长期未处理”;清理进展看流量变化,回答“本期处理速度是否快于新增”。两类指标合起来才能判断积压风险的方向。ONES 可承载缺陷清单、状态流转与迭代关联,为这类统计提供数据基础。



要点总览(TL;DR)


  • 先固定清单口径:纳入统计日仍未关闭的缺陷(含待验证、待回归),排除已关闭、已取消、重复合并条目,按周或按迭代取数并保存快照。
  • 老化程度看存量结构:缺陷年龄=统计日−创建时间,按年龄分档计算占比、中位年龄和超阈值未关闭数,阈值按严重级分别设定。
  • 清理进展看流量与净变化:净减少量=期内关闭数−期内新增数,关闭率=期内关闭数÷期初积压数,平均滞留时长=关闭缺陷滞留天数之和÷关闭数。
  • 条目数量本身不构成风险结论:总数持平但高龄档占比上升说明风险积累,需结合净减少量方向、年龄分布和严重级构成一起解读。
  • 指标反映清单状态与流转速度,阈值应基于团队历史基线设定,状态回退和重复合并需在报表附注中说明。


评估目标:老化程度与清理进展分别回答什么问题


缺陷积压清单常被当作一个数字来汇报,但条目总数只能说明存量规模,无法说明这些缺陷是刚提的、正在处理的,还是压了几周没人动的。把评估拆成老化程度和清理进展两类指标,是为了让每个数字对应一个明确的管理问题。


老化程度回答存量结构问题:当前未关闭的缺陷中,有多少已经存在较长时间,分布在哪些年龄区间,严重级高的缺陷是否集中在老化区间。它关注的是“积压的质量”,同样的 80 条积压,全部集中在近三天和一半超过两周,风险完全不同。


清理进展回答流量问题:在统计周期内,团队关闭了多少缺陷、新增了多少缺陷、净变化是增是减、关闭速度相对期初积压是否足够。它关注的是“积压是在被消化还是在继续累积”。


两类指标需要结合使用。只看老化程度,可能忽略本期新增正在加速;只看清理进展,可能被关闭数量掩盖存量中高龄缺陷的堆积。判断积压风险时,先看净减少量的方向,再看老化分档占比的变化,最后结合严重级分布确认高风险缺陷是否在收敛。



指标与范围:清单口径、统计对象与时间窗


指标要能复算,前提是每次统计使用同一套范围和周期。建议在开始统计前,把以下口径写成书面定义,并在每次报表中注明。


口径项 定义建议 说明
纳入范围 统计日仍未关闭的缺陷 包含待验证、待回归等已修复但未关闭的状态,这些条目仍占用积压
排除范围 已关闭、已取消、重复合并的缺陷 重复缺陷合并到主缺陷后,被合并条目不再单独计数,避免重复计入积压
时间窗 按周或按迭代 明确统计日、期初日、期末日;期初积压取统计周期开始时的未关闭数
分组维度 严重级、所属模块、责任人 严重级用于加权判断风险,模块用于定位集中区域
状态集合 列出纳入统计的具体状态名 状态名称在各团队可能不同,需固定一份状态清单

待验证和待回归状态的处理需要特别约定。这类缺陷已经完成修复动作,但尚未通过验证,仍属于未关闭范围。如果把它们排除在积压之外,会低估存量;如果与新建缺陷混在一起看年龄,又会高估老化程度。可行做法是在老化分档中单独标注“待验证”子集,或在报表中同时给出含待验证和不含待验证两个口径。


时间窗的选择影响指标可比性。按周统计适合节奏稳定的团队,按迭代统计适合迭代边界清晰的团队。无论选哪种,相邻周期的期初与期末要能衔接:本期期初积压应等于上期期末积压,否则需要说明差异原因。



数据口径与证据:从清单里取哪些字段


老化程度和清理进展的计算依赖少量关键字段。字段缺失或取值异常会直接导致指标失真,因此在取数阶段就要明确字段清单和处理规则。


字段 用途 缺失或异常处理
创建时间 计算缺陷年龄的起点 为空的条目单列“时间缺失”清单,不参与年龄计算,并推动补录
关闭时间 计算滞留时长、判断期内关闭 早于创建时间的记录标记为异常,核实后修正
当前状态 判断是否纳入积压、是否属于待验证 状态回退的条目按当前状态重新归类,并保留状态变更记录
严重级 设定老化阈值、加权判断风险 未填写的条目归入“未分级”,单独统计占比
所属模块 定位积压集中区域 为空时归入“未分配模块”
责任人 分配清理任务、观察负载 为空时标记为待分配,不计入个人清理进展
老化阈值 按严重级设定不同年龄上限 阈值需团队自行设定并写入统计说明

老化阈值建议按严重级区分。例如严重级最高的缺陷设定较短的年龄上限,中低严重级可以放宽。阈值来源应参考团队历史基线,例如过去若干周期内该严重级缺陷从创建到关闭的常见时长,而不是直接套用外部通用标准。


数据快照与历史留痕是复算的前提。每次统计应保存当期清单的导出快照,记录统计日、字段取值和状态。状态回退、缺陷重开、重复合并都会改变历史数据,如果没有快照,事后很难还原当时的计算依据。对于状态回退的条目,建议在清单中保留回退次数或最近一次状态变更时间,便于在解读时识别异常波动。



计算步骤:老化程度与清理进展的公式


以下公式以“天”为年龄和时长单位,以统计周期为时间窗。所有比率的分母需在报表中注明,避免不同周期之间误比。


指标 公式 分子 分母 单位/时间窗
缺陷年龄 统计日 − 创建时间 — — 天,逐条计算
老化分档占比 某年龄档未关闭数 ÷ 未关闭总数 该档未关闭缺陷数 统计日未关闭缺陷总数 百分比,统计日快照
老化缺陷中位年龄 未关闭缺陷年龄排序后的中间值 — — 天,统计日快照
超阈值未关闭数 年龄超过对应严重级阈值的未关闭缺陷数 — — 条,统计日快照
净减少量 期内关闭数 − 期内新增数 期内关闭缺陷数 — 条,统计周期
关闭率 期内关闭数 ÷ 期初积压数 期内关闭缺陷数 期初未关闭缺陷数 百分比,统计周期
平均滞留时长 已关闭缺陷(关闭时间 − 创建时间)之和 ÷ 关闭数 各关闭缺陷滞留天数之和 期内关闭缺陷数 天,统计周期

老化分档建议至少划分三档,例如 0–7 天、8–14 天、15 天以上,档位边界与团队迭代长度匹配。分档占比之和应为 100%,可作为数据校验点。中位年龄比平均年龄更稳健,少数超长滞留缺陷不会把整体数值拉偏,适合作为存量结构的代表值。


关闭率的分母是期初积压数,不是期末数,也不是期内新增数。这样定义的含义是“期初的存量在本期被消化了多少”。净减少量则同时反映关闭和新增两个方向,两者需要一起看:关闭率上升但净减少量为负,说明新增速度仍然超过处理速度。



算例:一个迭代周期的积压清单计算示例


以下为一组演示数据,用于说明公式代入过程,数值不代表任何真实团队的表现。


假设某迭代周期开始时,未关闭缺陷为 120 条;期内新增 45 条,期内关闭 60 条;期末未关闭 105 条。期末清单按年龄分档:0–7 天 30 条,8–14 天 35 条,15 天以上 40 条。未关闭缺陷年龄排序后的中位数为 12 天。按严重级阈值统计,超阈值未关闭缺陷为 18 条。期内关闭的 60 条缺陷,滞留天数合计 540 天。


  • 净减少量 = 60 − 45 = 15 条,期末积压比期初减少 15 条,与 120 − 45 + 60 = 105 一致。
  • 关闭率 = 60 ÷ 120 = 50%,即期初积压在本期消化了一半。
  • 老化分档占比:0–7 天为 30 ÷ 105 ≈ 28.6%;8–14 天为 35 ÷ 105 ≈ 33.3%;15 天以上为 40 ÷ 105 ≈ 38.1%,三档合计 100%。
  • 平均滞留时长 = 540 ÷ 60 = 9 天。

解读这组结果时,净减少量为正说明积压在收缩,但 15 天以上档占比接近四成,说明存量中高龄缺陷仍占较大比重,清理动作需要向老条目倾斜。超阈值未关闭 18 条可作为下一周期的重点清理对象。


边界情况需要提前约定。期初积压为零时,关闭率的分母为零,此时不计算关闭率,改为报告期内关闭数和新增数。期内关闭数为零时,平均滞留时长无定义,报表中标注“本期无关闭”,不填零以免被误读为滞留时间为零。年龄分档中某一档为空时,占比记为零并保留档位,保证各期报表结构一致。



解读与限制:条目数量与积压风险的关系


积压条目数量本身不构成风险结论。总数持平可能意味着新增与关闭大致平衡,也可能意味着一批老缺陷被新缺陷替换,风险并未下降。判断风险需要把数量、年龄分布和严重级放在一起看。


一个实用的判断顺序是:先看净减少量的方向,确认积压在收缩还是扩张;再看老化分档占比的变化,如果总数持平但 15 天以上档占比上升,说明风险在存量中积累;最后看超阈值未关闭数中严重级的构成,高严重级缺陷长期未关闭应优先处理。关闭率与净减少量要同时呈现,只报关闭数容易掩盖同期新增的规模。


指标的解释边界需要写进报表说明。老化程度和清理进展反映的是清单状态和流转速度,不能直接证明产品质量改善或团队能力提升,质量变化还需要结合缺陷发现阶段、回归结果等信息判断。阈值应基于团队自身历史基线设定,不同团队、不同模块的合理年龄区间可能差异很大,不宜套用统一达标线。


状态回退和重复缺陷会扰动指标。缺陷重开会使已关闭数回吐,导致关闭率虚高后回落;重复缺陷合并会减少清单条数,若未在口径中说明,可能被误读为清理进展。建议在报表附注中记录本期重开数和合并数,便于读者还原真实变化。


在工具承载上,缺陷清单、状态流转和迭代关联是上述统计的数据来源。ONES 测试管理支持覆盖全生命周期的缺陷管理,缺陷可关联至迭代;ONES Project 支持缺陷跟踪管理,可统计缺陷状态分布,并提供多种图表形态、自定义数据范围和维度进行项目度量。团队可基于这些能力维护清单口径、按迭代取数并观察状态分布,老化分档和关闭率等指标的具体计算方式仍以本文定义的公式为准。



常见问题


待验证、待回归状态的缺陷应该算进积压吗?


建议算进积压。这类缺陷已完成修复动作但尚未通过验证,仍占用团队的待办事项,排除在外会低估存量。为了不混淆老化判断,可以在老化分档中单独标注“待验证”子集,或在报表中同时给出含待验证和不含待验证两个口径,并在表头注明所用口径。


期初积压为零或本期没有关闭缺陷时,指标怎么报?


期初积压为零时,关闭率的分母为零,此时不计算关闭率,改为报告期内关闭数和新增数。期内关闭数为零时,平均滞留时长没有定义,报表中标注“本期无关闭”,不要填零,否则容易被误读为滞留时间为零。年龄分档中某一档为空时,占比记为零并保留档位,保证各期报表结构一致、可比。


缺陷重开和重复合并会怎样影响老化与清理进展指标?


缺陷重开会让已关闭数回吐,关闭率可能先高后低;重开的缺陷若保留原创建时间,年龄会继续累加,可能直接进入高龄档。重复缺陷合并会减少清单条数,若口径未说明,容易被误读为清理有进展。建议在报表附注中记录本期重开数和合并数,并保留状态变更记录,便于还原真实变化。


老化阈值应该怎么定,能否直接套用行业通用标准?


阈值建议按严重级区分,并参考团队自身历史基线,例如过去若干周期内该严重级缺陷从创建到关闭的常见时长。不同团队、不同模块的合理年龄区间差异较大,直接套用外部通用达标线可能得出误导性结论。阈值一旦确定,应写入统计说明并保持稳定,调整时注明生效周期。


在 ONES 里做这类统计,清单和状态数据从哪里来?


ONES 测试管理支持覆盖全生命周期的缺陷管理,缺陷可关联至迭代;ONES Project 支持缺陷跟踪管理,可统计缺陷状态分布,并提供多种图表形态、自定义数据范围和维度进行项目度量。团队可以基于这些能力维护清单口径、按迭代取数并观察状态分布。老化分档、关闭率等指标的具体计算方式仍以本文定义的公式为准,字段与状态配置需结合实际环境确认。