缺陷修复跟踪需要关注哪些指标及如何判断有效

缺陷修复跟踪要关注四类指标:修复周期、逾期未修复数、复测失败积压和复测通过率。它们分别回答修复快不快、是否按时完成、验证环节是否堵住、复测质量是否稳定。判断跟踪是否有效,关键看这些指标能否按统一口径稳定取数、定位到具体缺陷和责任人,并随管理动作让逾期与积压下降,单一时点的数值高低说明不了问题。



要点总览(TL;DR)


  • 缺陷修复跟踪关注四类指标:修复周期(中位数加P90)、逾期未修复数、复测失败积压、复测通过率,分别对应修复速度、时限遵守、验证堵塞和复测质量。
  • 取数前先定清时间窗、分母、缺失值处理和严重级别分组,修复周期按确认时间筛选、分母为零记为无数据,口径稳定才能横向对比。
  • 计算按取数、计算、分组对比、设观察阈值、形成判断五步执行,阈值来自团队自身修复时限约定和历史基线,不套用外部通用达标线。
  • 判断跟踪是否有效看四条:口径可复算、异常能下钻到具体缺陷和责任人、管理动作后逾期与积压下降、连续三个窗口趋势一致。
  • 四项指标要组合解读,修复周期短可能伴随复测通过率下降,指标变好与问题真正解决是两回事。


评估目标:跟踪要回答哪三个问题


缺陷修复跟踪的指标服务于三个判断,指标选择围绕这三个问题展开,可以避免把能统计的数字都堆进报表。


  • 修复是否在约定时限内完成。判断方向是看缺陷从确认到修复完成的耗时分布,以及超过约定时限仍未关闭的数量。这个问题关注修复环节的响应和交付节奏。
  • 验证环节是否成为瓶颈。判断方向是看复测通过率,以及验证不通过后重新打开的缺陷是否在累积。修复完成得快、验证跟不上,整体交付依然会被拖住。
  • 积压是否在可控范围。判断方向是看未关闭缺陷的存量与变化趋势,尤其是逾期和复测失败两类积压。存量稳定或下降,说明跟踪在起作用;持续上升则需要排查流程或资源问题。

三个问题对应修复、验证、存量三个视角,缺一个都会让判断失真。只盯修复周期,可能忽略验证环节的堵塞;只看积压总量,又难以区分是修复慢还是复测反复。



指标与范围:修复到验证的指标清单


统计范围限定在缺陷从确认进入修复、到验证关闭的这一段,缺陷提出前的发现环节和关闭后的回归测试管理不在本文指标口径内。下表给出四个核心指标的定义、单位与范围。


指标 定义 单位 统计范围
修复周期 缺陷从确认(进入修复状态)到修复完成(提交待验证)的时长,取中位数,可附P90 小时或天 统计期内完成修复的缺陷
逾期未修复数 超过该严重级别约定修复时限、仍未完成修复的缺陷数量 个 统计时点仍处于未修复状态的缺陷
复测失败积压 验证不通过后被重新打开、当前仍处于待修复或修复中状态的缺陷存量 个 统计时点处于复测失败后未关闭状态的缺陷
复测通过率 统计期内复测通过并关闭的缺陷数 ÷ 统计期内进入复测的缺陷数 百分比 统计期内发生复测动作的缺陷

修复周期用中位数而非平均值,是为了减少个别长尾缺陷拉高整体数值的干扰;同时给出P90可以观察尾部情况,判断是否存在少数长期未修复的缺陷。逾期未修复数依赖事先约定的分级修复时限,没有这个约定,逾期口径就无法统一。



数据口径:分子分母与时间窗怎么定


同一组指标在不同口径下会得出不同结论,取数前需要把时间窗、分母、缺失值和分级统计四件事定清楚。


时间窗选择


时间窗按观察目的确定:看迭代内交付节奏,用迭代周期作为窗口;看长期趋势,用自然周或自然月并保持连续。窗口一旦确定,前后对比应使用相同长度,避免用两周数据和四周数据直接比较。修复周期按缺陷确认时间落入窗口来筛选,而不是按关闭时间,否则窗口末尾关闭的缺陷会把早期确认的耗时算进来,造成口径漂移。


分母定义


复测通过率的分母是统计期内进入复测的缺陷数,分子是其中复测通过并关闭的数量。分母为零时(窗口内没有缺陷进入复测),通过率记为“无数据”,不写成0%或100%,避免误读。逾期未修复数和复测失败积压是时点存量指标,没有分母,报告时注明统计时点。


缺失值与未关闭缺陷处理


修复周期只统计已完成修复的缺陷,仍在修复中的缺陷不进入分子分母,但应单独报告其数量,防止“只算完成的”让周期看起来偏好。状态流转记录缺失、无法确定确认时间或修复完成时间的缺陷,标记为不可计算并单独计数,不猜测填充。复测失败积压统计当前仍打开的缺陷,已关闭的历史复测失败不计入存量。


不同严重级别是否分开统计


建议分开统计。严重级别不同,约定修复时限通常不同,合并计算会让逾期口径失去意义。至少按“阻断/严重”与“一般/轻微”两档分别给出修复周期和逾期数,复测通过率可以整体统计,但出现异常时应下钻到严重级别定位。



计算与评估步骤:从取数到判断


指标计算可以按五步执行,每一步都留下可复算的记录,便于不同人得出相同结果。


  1. 取数。从缺陷跟踪系统中导出统计期内缺陷的状态流转记录,字段至少包括缺陷编号、严重级别、确认时间、修复完成时间、复测时间、复测结果、当前状态、责任人。导出时记录取数时间和筛选条件。
  2. 计算。按下列公式逐项计算:
    • 修复周期中位数 = 统计期内已完成修复缺陷的(修复完成时间 − 确认时间)排序后的中间值;缺陷数为偶数时取中间两个值的平均。
    • 逾期未修复数 = 统计时点满足“当前时间 − 确认时间 > 该级别约定修复时限”且未完成修复的缺陷计数。
    • 复测失败积压 = 统计时点处于“复测不通过后重新打开”且未关闭的缺陷计数。
    • 复测通过率 = 复测通过并关闭的缺陷数 ÷ 进入复测的缺陷数 × 100%。
  3. 分组对比。按严重级别、模块或责任团队拆分同一指标,找出拉高整体数值的具体分组。分组维度在多次统计中保持一致,否则对比失去意义。
  4. 设定观察阈值。阈值来自团队自身的修复时限约定和历史基线,例如以过去三个窗口的修复周期中位数为参照,设定可接受的波动区间。没有历史基线时先积累两到三个窗口的数据再定,不套用外部通用达标线。
  5. 形成判断。把四项指标放在一起看:修复周期上升且逾期数增加,指向修复环节产能或优先级问题;复测通过率下降且积压上升,指向验证环节或修复质量问题;指标平稳但积压缓慢增长,说明关闭速度跟不上新增速度。


例子:一个迭代周期的指标演算


以下为演示情景,数据为假设值,用于说明公式与解读方式。


某迭代周期内共有20个缺陷完成修复,修复耗时(小时)排序后为:4、6、8、10、12、14、16、18、20、22、24、26、28、30、32、36、40、48、60、72。中位数为第10、11个值的平均,即(22+24)÷2 = 23小时。P90约为第18个值附近,即48小时,说明尾部存在明显长尾。


该迭代约定:阻断/严重级缺陷修复时限24小时,一般/轻微级72小时。统计时点仍有6个缺陷未完成修复,其中严重级2个已确认30小时、一般级4个中1个已确认80小时,则逾期未修复数为3个。若统计时点未修复缺陷总数为6,逾期率为3÷6×100% = 50%。


迭代内进入复测的缺陷为18个,复测通过并关闭14个,复测通过率为14÷18×100% ≈ 77.8%。复测失败的4个缺陷中,2个已重新修复并再次进入复测,2个仍处于待修复状态,复测失败积压为2个,较上一窗口的5个下降。


解读:修复周期中位数23小时处于严重级时限边缘,P90达48小时说明少数缺陷修复明显偏慢,需要下钻到模块定位;逾期率50%偏高,且逾期集中在一般级,说明优先级安排可能偏向严重级而忽略了一般缺陷的时限;复测通过率77.8%配合积压从5降到2,验证环节在改善,但通过率仍有提升空间。四项指标合起来看,当前主要问题在修复环节的时限遵守,而非验证堵塞。



解读与限制:指标有效性的判断与误用


判断缺陷修复跟踪是否有效,可以对照以下几条核验,而不是看某一时点的数值高低。


  • 口径稳定可复算。不同人按同一口径取数能得到相同结果,时间窗、分母和缺失值处理规则有书面约定。
  • 可定位到具体对象。每个异常指标都能下钻到具体缺陷、责任人和模块,而不是只停留在汇总数字。
  • 能驱动改进。针对逾期和积压采取管理动作后,后续窗口的指标出现可观察的下降或趋稳。
  • 持续观察而非单点。至少连续三个窗口的趋势一致,才作为判断依据;单次波动可能来自窗口内缺陷构成变化。

指标也有明确局限。修复周期短不等于修复质量高,可能伴随复测通过率下降;复测通过率高也可能因为复测标准宽松。指标反映的是过程和结果的状态,与因果之间还有距离,指标改善需要结合具体缺陷记录和团队动作来解释。任何单一指标都不能代表整体质量,四项指标应组合使用,并区分“指标变好”与“问题真正解决”。


当团队把缺陷记录在统一的工作项中,并让缺陷关联到迭代、保留状态流转和复测记录时,上述指标才具备稳定取数的基础。ONES 测试管理支持覆盖全生命周期的缺陷管理,缺陷可关联至迭代;ONES Project 支持一键提交 Bug 至对应项目或迭代,记录和跟踪缺陷修复情况,并统计缺陷状态分布。团队可以借助这些记录核对确认时间、修复完成时间和复测结果,再按本文口径计算指标。具体报表是否直接提供上述指标,需以实际使用环境为准。



常见问题


团队还没有约定各严重级别的修复时限,逾期未修复数怎么统计?


逾期口径依赖事先约定的分级修复时限,没有这个约定,逾期数就无法统一计算。可以先按团队历史数据估算:取过去两到三个窗口内各严重级别缺陷从确认到修复完成的中位耗时,作为临时时限基线,经团队确认后写入缺陷管理规范。在时限正式确定前,报告里把逾期数标注为“按临时基线计算”,并说明基线来源,避免读者把它当成正式考核口径。时限确定后,前后窗口的逾期数不宜直接对比。


复测通过率的分母用“进入复测的缺陷数”还是“已关闭的缺陷数”,两者差别大吗?


差别可能很大,建议用“统计期内进入复测的缺陷数”作分母。用已关闭缺陷数作分母时,仍在复测中或复测失败后待修复的缺陷被排除在外,通过率会被高估,验证环节的堵塞反而看不出来。用进入复测数作分母,分子是其中复测通过并关闭的数量,能同时反映验证结果和验证进度。分母为零时记为“无数据”,不写成0%或100%。


指标连续两个窗口改善,可以认为缺陷修复跟踪已经有效了吗?


两个窗口的改善还不足以定论。缺陷构成会随迭代内容变化,某窗口严重缺陷偏少,修复周期和逾期数都可能自然下降。建议至少观察连续三个窗口,确认趋势一致,再结合具体缺陷记录核对改善原因:是修复产能提升、优先级安排调整,还是缺陷本身变简单了。如果改善同时伴随复测通过率下降,还要排查是否为了赶时限牺牲了修复质量。


修复周期用中位数,那P90这类分位数在什么情况下必须一起看?


当团队存在少数长期未修复的缺陷时,中位数会掩盖尾部问题,这时需要看P90。典型场景是:中位数稳定在时限内,但P90明显超出时限,说明大部分缺陷修复正常,少数缺陷被长期搁置。此时应下钻到具体缺陷和模块,确认是优先级被反复压低、依赖外部条件,还是责任人负载过高。如果缺陷量很少,分位数波动大,可以只报中位数并附上最长耗时缺陷清单。


把缺陷记录在统一工作项里,对指标取数有什么实际帮助?


指标计算依赖状态流转记录:确认时间、修复完成时间、复测时间和复测结果。缺陷记录在统一工作项中并关联到迭代时,这些时间点和状态变化有据可查,导出后可以直接按本文口径计算,减少人工补录和口径争议。ONES 测试管理支持覆盖全生命周期的缺陷管理,缺陷可关联至迭代;ONES Project 支持一键提交 Bug 至对应项目或迭代,记录和跟踪缺陷修复情况,并统计缺陷状态分布。修复周期、逾期未修复数等指标是否已有现成报表,需以实际使用环境为准。