第二章:测试策略制定

说实话,很多团队做测试,上来就闷头写用例。结果呢?测了一堆无关紧要的功能,核心风险点反而漏了。我见过太多次这种悲剧了。

测试策略,说白了就是回答三个问题:测什么?怎么测?测多少? 今天我就把这几年的实战经验掰开揉碎了讲给你听。

2.1 基于产品规格与用户场景的测试策略

我个人习惯,拿到一个产品,先不看代码。先看什么?看产品规格书用户场景文档

产品规格告诉你「这东西应该能做什么」,用户场景告诉你「用户实际会怎么用」。这两者往往有差距。我在项目中遇到过,规格书写着「支持1000并发」,但用户场景分析下来,实际峰值只有200并发。那测试重点就应该放在200并发下的稳定性,而不是死磕1000并发。

具体怎么做?我一般分三步:

  1. 拆解规格:把每个功能点列出来,标注优先级(P0/P1/P2)
  2. 还原场景:用户的操作路径是什么?异常情况有哪些?
  3. 交叉映射:把场景和规格对应起来,找出覆盖盲区

核心原则:测试策略不是功能的罗列,而是用户行为的模拟。你想想看,用户不会按着你的功能列表去操作,他们只会按自己的习惯来。

2.2 风险导向的测试优先级划分

资源永远是有限的。你不可能把所有测试都做一遍。那怎么办?用风险来排优先级

我常用的方法叫「风险矩阵法」。很简单,两个维度:发生概率影响程度

影响程度 高概率 中概率 低概率
严重 P0(必须测) P0(必须测) P1(重点测)
中等 P1(重点测) P1(重点测) P2(可选测)
轻微 P2(可选测) P2(可选测) P3(不测)

举个例子。支付模块的金额计算错误,影响程度是「严重」,发生概率是「中」。那它就是P0,必须优先测。而某个设置页面的文案错误,影响程度是「轻微」,概率再高也只是P2。

注意:我曾经犯过一个错——把所有功能都标成P0。结果团队累死累活,核心问题还是漏了。后来我学乖了:P0的用例数,不要超过总用例的20%。

优先级定下来之后,测试顺序也就清楚了:

  • 第一轮:P0用例,冒烟测试+核心功能验证
  • 第二轮:P1用例,边界条件+异常场景
  • 第三轮:P2用例,兼容性+性能摸底

2.3 测试覆盖率的定义与度量

覆盖率这东西,很多人理解偏了。以为覆盖率越高越好。其实不是。覆盖率是工具,不是目标

我见过一个团队,代码覆盖率做到了95%,但线上还是出了大问题。为什么?因为他们只测了「快乐路径」,异常分支根本没走到。覆盖率数字好看,但质量一塌糊涂。

常用的覆盖率指标,我列一下:

类型 定义 我的建议
行覆盖率 代码行被执行的比例 目标80%以上,但别盲目追求100%
分支覆盖率 if/else等分支被覆盖的比例 这个更重要,建议85%以上
函数覆盖率 函数被调用的比例 100%是基本要求
需求覆盖率 需求点被测试覆盖的比例 这个才是核心,必须100%

嗯,这里要注意:不要只看代码覆盖率,更要看需求覆盖率。代码覆盖率再高,需求没覆盖到,等于白测。

我的习惯:每次测试结束后,我会生成两份报告。一份是代码覆盖率报告,给开发看。一份是需求覆盖率报告,给产品看。两边都对得上,我才敢说「测试完成了」。

2.4 知识体系总览

说了这么多,我画了一张图,帮你把整个测试策略的知识体系串起来。你一看就明白了。

测试策略制定知识体系 测试策略 产品规格与用户场景 风险导向优先级划分 覆盖率定义与度量 拆解规格 还原场景 交叉映射 风险矩阵 P0/P1/P2 三轮测试 行覆盖率 分支覆盖率 函数覆盖率 需求覆盖率 核心:风险驱动 + 场景还原 + 覆盖率度量

这张图把整个测试策略的核心逻辑串起来了。你从中心出发,沿着三个方向展开,每个方向都有具体的落地方法。做测试策略的时候,对着这张图过一遍,基本不会漏。

最后说一句:测试策略不是写出来就完事的文档。它需要动态调整。项目进行中,风险变了,优先级就得跟着变。我见过太多团队,策略写完了就束之高阁,结果测到一半发现方向错了。记住:策略是活的,不是死的


公众号:蓝海资料掘金营,微信deep3321