核心思想
并非所有缺陷的代价都相同。帮助页面的排版错误与结账重复扣款,在发生概率和危害程度上都不同。基于风险的测试把这种不对称显式化:识别产品可能失败的方式,估计每种失败的概率和影响,再把精力放在二者乘积最大的地方。产出是一份有优先级的计划,而不是“平均测试一切”的承诺。
构建风险图景
不要凭感觉,要组合多种信息源。事故历史说明故障实际发生在哪里;架构图和爆炸半径分析说明一个组件会拖垮什么;使用数据说明哪些路径承载流量和收入;变更历史说明当前正在改什么。为每个区域记录概率、影响分数以及依据,使排序可以被质疑和修正。
应用评分
高风险区域值得更深入的技术:探索式会话、故障注入、性能测试和失败处理评审。中风险区域采用标准自动化覆盖。低风险区域仍要冒烟检查,因为“不太可能”不等于“不可能”。与统一的覆盖率目标相比,基于风险的分配能用同样预算更早发现严重缺陷;但如果影响评分草率,罕见的灾难性路径可能测试不足。
持续维护与示例
风险会随每次发布、新集成和流量变化而改变,应在计划节点和事故后重新审视模型,并跟踪预测的风险是否真的发生。例如,团队要给订阅变更上线,把账单按比例计费评为高概率高影响,把管理导出评为低概率中影响,把营销横幅评为低概率低影响:第一项使用基于属性的测试和分阶段发布,第二项增加一个集成测试,第三项只做视觉检查。