冒烟测试(Smoke Testing)是一种快速、浅层的验证性测试,用于确认软件构建的核心功能是否基本可用,不存在阻断性缺陷。

来源

术语源自电子硬件行业:新电路板通电后如果没有冒烟,就算通过了最基本的验证。软件领域借用这一比喻,表示”先跑一遍最基本的路径,看看会不会炸”。

特点

  • 广度优先,深度有限:覆盖主要功能路径,不深入边界条件和异常场景
  • 执行速度快:通常在几分钟内完成,适合作为 CI/CD 流水线的第一道关卡
  • 目的是快速筛选:如果冒烟测试不通过,后续的回归测试、集成测试等都没有必要执行

与相关概念的区别

测试类型范围深度时机
冒烟测试核心路径每次构建后
回归测试全量或变更相关发布前
单元测试单个函数/模块开发中
验收测试用户场景交付前

典型应用

  • CI/CD 中新构建的第一轮自动化验证
  • QA 拿到新版本后的手动快速验证
  • 部署到新环境后的健康检查(此时也称 sanity test)