2. 测试策略制定
好,咱们进入第二章。测试策略,说白了就是回答三个问题:测什么?怎么测?先测哪个?
我刚入行那会儿,总觉得测试就是拿着 checklist 一条条跑。后来吃过亏才明白——没有策略的测试,就像没有地图的探险。你跑得再快,也可能掉坑里。
基于风险的测试策略
什么叫基于风险?很简单:把有限的测试资源,集中在最容易出问题、出了问题后果最严重的地方。
我习惯把风险拆成两个维度:
- 失效概率——这个模块容易坏吗?
- 失效影响——坏了之后,设备还能用吗?会烧机吗?会伤到晶圆吗?
两个维度一交叉,就得到四个象限:
| 影响 \ 概率 | 低概率 | 高概率 |
|---|---|---|
| 高影响 | 重点监控,定期抽测 | 最高优先级,必须全覆盖 |
| 低影响 | 最后测,甚至不测 | 常规覆盖即可 |
我的经验:高影响+高概率的区域,往往集中在电源模块、射频功率输出、晶圆传输机械手这几个地方。这些地方一旦出问题,轻则破片,重则整机报废。我在项目中遇到过两次,都是因为赶进度跳过了高压互锁测试,结果现场打火。从那以后,这块我从来不敢省。
具体怎么评估?我一般用三步:
- 列出所有功能模块——比如真空系统、气体输送、温控、射频匹配、机械手定位。
- 给每个模块打分——概率 1~5,影响 1~5。
- 算风险值——概率 × 影响,排序后决定测试深度。
小技巧:打分别光靠拍脑袋。翻翻历史故障记录、问问现场维护工程师,他们手里的数据比任何理论都靠谱。
测试金字塔模型
测试金字塔,你肯定见过。但我想说的是——别把它当教条,要当工具。
经典的测试金字塔分三层:
- 底层:单元测试——测单个模块、单块板卡、单段代码。跑得快,成本低。
- 中间层:集成测试——测模块之间的接口、通信、时序配合。
- 顶层:系统测试——整机跑流程,模拟真实生产场景。
为什么叫金字塔?因为越往下,测试数量越多,执行越快,成本越低。越往上,测试数量越少,但覆盖的场景越真实。
我见过不少团队,上来就怼系统测试。结果呢?一个简单问题,排查三天。为什么?因为底层单元测试没做,问题被层层放大,最后根本不知道是哪一环出的错。
避坑指南:我曾经在一个刻蚀设备项目上,跳过单元测试直接做整机联调。结果射频匹配器怎么都调不稳。查了两天,最后发现是控制板上的一个电容焊反了。如果先做板级单元测试,10 分钟就能发现。嗯,从那以后,我再也不敢跳层了。
不过,半导体设备有它的特殊性。我建议把金字塔稍微调整一下:
你看,底层单元测试要占 60%~70% 的用例量。集成测试 20%~25%。系统测试 5%~10%。这个比例,是我在多个项目里磨出来的。
测试优先级划分
优先级怎么定?光靠拍脑袋不行。我一般用三个维度来排:
- 功能关键性——这个功能坏了,设备还能跑吗?
- 失效风险——结合前面的风险矩阵。
- 测试依赖——有些测试必须等别的测完才能做。
举个例子,我习惯把测试用例分成 P0、P1、P2 三级:
| 优先级 | 定义 | 典型用例 | 执行要求 |
|---|---|---|---|
| P0 | 阻塞级,不通过不能继续 | 安全互锁、紧急停止、真空泄漏 | 每次构建必须全过 |
| P1 | 关键功能,影响设备性能 | 温度控制精度、射频功率稳定性 | 每日回归,允许有条件的延迟 |
| P2 | 边缘场景或非核心功能 | UI 显示、日志格式、报警记录 | 迭代结束前完成即可 |
我的习惯:P0 用例我要求自动化率 100%。为什么?因为这些用例一旦失败,整个测试流程就得停。手动跑?太慢了,而且容易漏。P1 可以 70%~80% 自动化,剩下的靠人工。P2 嘛,看资源,能自动就自动,不行就手动。
你想想看,如果 P0 没跑完就去做 P2,万一 P0 挂了,前面全白干。所以我的原则是:先保命,再优化,最后锦上添花。
避坑指南:我曾经在一个项目里,把 UI 测试排在了安全测试前面。结果 UI 测了两天,发现安全互锁根本没生效。那两天全白费。从那以后,P0 的排序我盯得死死的,谁来说情都不好使。
小结一下
测试策略不是写出来给人看的,是拿来用的。基于风险,你才知道劲往哪儿使。金字塔模型,帮你把测试分层,别一锅端。优先级划分,让你在有限的时间里,先做最重要的事。