冒烟测试是什么
冒烟测试是代码变更部署到测试环境后,对最基础、最关键功能进行的一次快速验证。它的目的不是找出所有深层问题,而是确认系统还能不能跑、值不值得进入后续更细的测试。
1. 为什么叫冒烟测试
这个词来自硬件测试:电路板修好后第一次通电,先看有没有冒烟。如果一通电就冒烟,说明基础状态都不对,没必要继续拿仪器测细节。
软件里的冒烟测试也是同样逻辑:先确认主流程没断,再决定是否进入完整回归测试。
2. 冒烟测试验证什么
冒烟测试通常覆盖最短关键路径:
- 服务是否能启动。
- 首页或健康检查接口是否正常。
- 用户是否能登录。
- 核心接口是否能返回成功。
- 数据库、缓存、消息队列等关键依赖是否连通。
它不追求覆盖所有边界条件,也不替代单元测试、集成测试、回归测试。
3. 和回归测试的区别
| 类型 | 目标 | 范围 | 运行时机 |
|---|---|---|---|
| 冒烟测试 | 判断系统是否基本可用 | 很小,覆盖核心链路 | 部署后、回归前 |
| 回归测试 | 判断已有功能是否被破坏 | 较大,覆盖主要功能 | 版本发布前 |
| 单元测试 | 判断函数或模块行为是否正确 | 最小,代码级 | 开发和 CI |
冒烟测试失败时,后续回归测试通常没有意义,因为系统基础能力已经坏了。
4. 为什么要自动化
冒烟测试是 CI/CD 中最应该自动化的环节,因为它承担第一道门禁。
一个好的冒烟测试应该:
- 快,最好几分钟内完成。
- 稳,不依赖脆弱的外部状态。
- 明确,失败后能快速定位到哪个基础链路断了。
- 可重复,部署后自动执行。
如果冒烟测试跑一个小时,就失去了“快速反馈”的意义。
5. 实践建议
后端服务可以用健康检查接口、登录接口、核心读写接口组成冒烟集。前端应用可以用 Playwright 打开首页、登录、进入关键页面,确认没有白屏和核心请求失败。
冒烟测试要控制范围。它不是“缩水版全量测试”,而是“系统能否继续测下去”的门禁。