做了三年测试后,我才真正理解“专项测试”的价值

30 阅读4分钟

刚工作那会儿,我对专项测试的理解非常朴素: 性能测试,就是跑个 JMeter; 稳定性测试,就是跑一晚 Monkey; 自动化,就是多写点脚本。

直到线上出了一次事故,我才真正意识到: 我“做过专项测试”,但从没“做好专项测试”。

这篇文章,记录的是我从“会用工具”到“具备专项测试思维”的真实转变。


一、那次事故,把我从“工具型测试”敲醒

有一次我们版本发布前,我负责做性能专项。 流程很完整:

  • 跑了压测
  • 出了报告
  • TPS 看起来也不错

版本上线后,晚高峰直接报警。 用户大量反馈:页面卡死、支付失败。

事后排查发现: 并不是主接口扛不住,而是验证码服务在并发下大量超时,线程池被打满,拖垮了整个链路

而我当时的压测里,压根没把验证码服务纳入场景。

那一刻我突然意识到: 我不是没做专项测试,而是我根本没站在“风险”的角度设计测试


二、从那以后,我开始先问一个问题:系统最怕什么

后来每次接到专项任务,我不再直接打开工具,而是先做一件事: 找研发聊架构,找产品聊核心路径,看历史事故。

比如:

  • 登录模块,最怕并发撞库
  • 支付模块,最怕金额异常和幂等问题
  • 消息系统,最怕堆积和消费延迟
  • 客户端,最怕弱网 + 重连异常

当我开始用“系统视角”而不是“测试视角”看问题时,专项测试突然变得清晰了。

工具只是执行手段,设计能力才是核心。


三、一次稳定性专项,让我第一次真正“测出价值”

印象最深的是一次稳定性专项。

当时大家的惯性做法是: 晚上跑 Monkey,第二天说“没崩溃”。

但我加了一步: 在 Monkey 过程中,手动模拟异常环境:

  • 强制断网再恢复
  • 杀掉后台服务
  • 模拟磁盘写满
  • 模拟登录态过期

结果测出了一个很隐蔽的问题: 用户断网重连后,客户端一直在重试请求,但 token 已失效,服务端持续返回异常,导致请求队列堆积,最终卡死。

这个问题如果在线上出现,就是“偶现卡死、极难复现”的那种典型疑难 bug。

修完之后,研发专门跟我说: “这个问题如果不是你们提前测出来,线上一定会炸。”

那是我第一次真切感受到: 专项测试不是配合流程,而是实打实在“挡事故”。


四、我对自动化测试的认知,也踩过很多坑

刚做自动化时,我一度非常追求数量: 一口气写了两百多条 UI 自动化用例。

结果很快发现:

  • 页面一改,大面积脚本挂
  • 成功率长期只有 60%-70%
  • 大家开始不信任自动化结果

后来我开始转变思路:

  • 核心路径优先,而不是全量覆盖
  • 页面定位尽量不用坐标、少用 XPath
  • 每条失败必须能快速定位原因
  • 比起数量,更关注“长期稳定跑得住”

慢慢地,自动化才从“负担”变成“资产”。


五、我现在判断一个专项有没有价值,看这三点

现在如果让我评估一个专项测试是否“做得好”,我会看:

第一,它是否覆盖了真实用户的高风险场景 不是“我能想到什么就测什么”,而是“用户最怕什么我就测什么”。

第二,它是否输出了可推动决策的结论 比如:

  • 当前系统最大承载是 2000 并发
  • 瓶颈在 Redis
  • 扩容应用实例提升不大

而不是一句:“压测已完成,整体正常。”

第三,如果线上出问题,我是否早就设计过类似场景 如果答案是“是”,那专项测试就有价值。


六、从专项测试中,我获得的不只是技术成长

这几年最大的感受是: 专项测试能力提升后,整个人的技术视野会发生变化。

你会开始:

  • 更关注系统架构
  • 更理解业务链路
  • 更容易和研发深入讨论
  • 更容易在团队中建立专业影响力

专项测试,本质上是在训练你用“工程师视角”看系统,而不是只用“执行者视角”跑用例。


写在最后

以前我以为: 会用 JMeter、会写自动化脚本,就是专项测试能力。

后来才明白: 真正的专项测试能力,是这三件事:

  • 看得出系统哪里最危险
  • 设计得出能打到痛点的测试
  • 说得清问题背后的工程逻辑

工具会过时,框架会变化,但这种能力,会一直伴随你的技术生涯。