首页/开发/代码质量与评审速查/度量组合诊断:复杂度 + 变更 + 缺陷三视图
技术债与度量63 条

度量组合诊断:复杂度 + 变更 + 缺陷三视图

单指标易误读,组合才接近真相:复杂度找「难」,变更历史找「动」,缺陷记录找「疼」;三者交集是重构与治理优先级最高的区域,再叠加覆盖率看安全网。

度量组合诊断是什么

单个指标容易误读,组合起来才接近真相:复杂度找出「难」的地方,变更历史找出「动」的地方,缺陷记录找出「疼」的地方。三者的交集就是重构与治理优先级最高的区域;再叠加覆盖率,可以判断这个区域有没有安全网,从而决定是先补测试还是先重构。

基本信息

三个视图复杂度(难)/ 变更历史(动)/ 缺陷记录(疼)
交集用途定位重构与治理的最高优先级区域
补充维度覆盖率与测试稳定性
口径要求三个视图使用同一时间窗,结论才可复现

下钻步骤

  • 先按变更频率排序,圈出真正在被修改的文件
  • 在候选集里叠加复杂度,得到热点清单
  • 再叠加缺陷密度,筛出又难又疼的地方
  • 检查这些位置的覆盖率与测试稳定性
  • 输出两张清单:重构计划与测试补齐清单
  • 一个季度后回看清单,确认复杂度与缺陷是否下降

三视图组合解读

场景组合含义建议
高频高复杂高缺陷热点核心区优先重构并补测试
高频复杂低缺陷靠人盯与运气补自动化防止退化
低频高复杂稳定冷区暂缓,登记观察
高频低复杂健康变更区维持现状
低频低复杂高缺陷边界条件集中补用例,未必重构

下钻顺序

下钻顺序
1. 列热点(变更 × 复杂度)
2. 叠加缺陷密度排序
3. 检查覆盖率与测试稳定性
4. 输出:重构计划 + 测试补齐清单

# 注意
- 三个视图统一时间窗(如近 6 个月)
- 排除生成代码、第三方目录与数据文件
- 结论保留数据快照,便于下季度对比
组合指标的价值在于减少争论:单说「这个文件复杂度高」容易被反驳「但从来没人改它」,把变更与缺陷一起摆出来,讨论焦点自然转向怎么改。
时间窗必须一致,否则结论不可复现:复杂度按当前快照、变更按近一年、缺陷按近三个月,三条曲线对不上,排序结果每月都会变,团队很快不再采信。

易错点

  • 用单一指标排序资源投入:方向感容易跑偏,低变更的复杂代码被反复讨论
  • 三视图口径时间窗不一致:结论不可复现,团队失去信任
  • 只看清单不动手:热点排出来了却无人认领,下一季度清单还在原地
  • 忽视覆盖率这一维:对没有安全网的热点直接重构,风险反而更高

数据来源与参考

  • 热点分析方法(Tornhill)与缺陷分析实践的组合工程化
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌