冒烟测试是什么

冒烟测试是代码变更部署到测试环境后,对最基础、最关键功能进行的一次快速验证。它的目的不是找出所有深层问题,而是确认系统还能不能跑、值不值得进入后续更细的测试。

1. 为什么叫冒烟测试

这个词来自硬件测试:电路板修好后第一次通电,先看有没有冒烟。如果一通电就冒烟,说明基础状态都不对,没必要继续拿仪器测细节。

软件里的冒烟测试也是同样逻辑:先确认主流程没断,再决定是否进入完整回归测试。

2. 冒烟测试验证什么

冒烟测试通常覆盖最短关键路径:

  1. 服务是否能启动。
  2. 首页或健康检查接口是否正常。
  3. 用户是否能登录。
  4. 核心接口是否能返回成功。
  5. 数据库、缓存、消息队列等关键依赖是否连通。

它不追求覆盖所有边界条件,也不替代单元测试、集成测试、回归测试。

3. 和回归测试的区别

类型目标范围运行时机
冒烟测试判断系统是否基本可用很小,覆盖核心链路部署后、回归前
回归测试判断已有功能是否被破坏较大,覆盖主要功能版本发布前
单元测试判断函数或模块行为是否正确最小,代码级开发和 CI

冒烟测试失败时,后续回归测试通常没有意义,因为系统基础能力已经坏了。

4. 为什么要自动化

冒烟测试是 CI/CD 中最应该自动化的环节,因为它承担第一道门禁。

一个好的冒烟测试应该:

  • 快,最好几分钟内完成。
  • 稳,不依赖脆弱的外部状态。
  • 明确,失败后能快速定位到哪个基础链路断了。
  • 可重复,部署后自动执行。

如果冒烟测试跑一个小时,就失去了“快速反馈”的意义。

5. 实践建议

后端服务可以用健康检查接口、登录接口、核心读写接口组成冒烟集。前端应用可以用 Playwright 打开首页、登录、进入关键页面,确认没有白屏和核心请求失败。

冒烟测试要控制范围。它不是“缩水版全量测试”,而是“系统能否继续测下去”的门禁。