28原则在测试中应用

测试里的 28 原则,通常指的就是 二八定律(Pareto Principle) 在测试领域的应用:

大约80%的问题,往往集中在20%的模块、代码、功能点或场景中。

也就是说:

  • 少数关键模块,往往承载大部分缺陷
  • 少数高风险路径,往往决定大部分线上故障
  • 少数核心用户操作,往往覆盖大部分真实业务流量

所以测试工作不能“平均用力”,而要 **重点突破高风险 20%**。


测试28原则的本质

1.测试资源有限

时间、人力、环境、回归周期都有限,不可能把所有场景都做到同样深度。

2.缺陷分布不均匀

缺陷并不是均匀分布在系统中的,而是往往集中在:

  • 复杂逻辑模块
  • 高频变更模块
  • 历史问题多的模块
  • 核心交易链路
  • 多系统交互边界
  • 权限、并发、事务、缓存等复杂场景

3.测试目标是风险控制,不是全覆盖幻想

真正有效的测试,不是追求表面上的“覆盖很多”,而是优先把最容易出事故、最影响业务的地方压住。


测试28原则如何落地

1.优先识别关键 20%

重点关注以下对象:

  • 核心业务链路
  • 高频使用功能
  • 高频变更模块
  • 历史缺陷密集模块
  • 涉及金额、权限、数据一致性的模块
  • 外部依赖多的接口和集成点

可以从这些维度评估:

  • 业务影响度
  • 技术复杂度
  • 改动频率
  • 缺陷历史
  • 用户访问频率
  • 故障恢复难度

2.测试设计向高风险集中

不是所有功能都做同等深度,而是分层:

  • 高风险模块:功能 + 异常 + 边界 + 并发 + 性能 + 安全
  • 中风险模块:功能 + 主要异常 + 关键边界
  • 低风险模块:冒烟 + 基本功能验证

3.自动化优先覆盖高价值 20%

自动化测试最该投在:

  • 核心主流程
  • 高频回归路径
  • 容易被改坏的模块
  • 接口契约测试
  • 配置变更后的关键校验

而不是把大量低价值页面点点点脚本堆起来。


3.基于缺陷数据持续调整

28原则不是一次性判断,而是要动态修正。

可以持续统计:

  • 缺陷按模块分布
  • 严重缺陷按版本分布
  • 回归漏测点分布
  • 线上事故按功能分布

这样就能逐渐识别出真正的“问题 20%”。