一说这一术语源自硬件行业:对一个硬件或硬件组件进行更改或修复后,直接给设备加电,如果没有冒烟,则该组件就通过了测试。In computer programming and software testing, smoke testing (also confidence testing, sanity testing, build verification test (BVT) and build acceptance test) is preliminary testing to reveal simple failures severe enough to, for example, reject a prospective software release. Smoke tests are a subset of test cases that cover the most important functionality of a component or system, used to aid assessment of whether main functions of the software appear to work correctly. - wikipedia
冒烟测试(smoke testing)指的是将代码更改嵌入到产品的源树之前对这些更改进行验证的过程,它用于确认代码中的更改会按预期运行,且不会破坏整个版本的稳定性。
据百度百科,冒烟测试测的是软件的基本功能,而不是对软件版本包的深入测试,它是针对软件版本包进行详细测试之前的预测试。
执行冒烟测试的主要目的是快速验证软件基本功能是否存在缺陷,如果冒烟测试的测试用例没有通过,那么就不必进行入下一步的测试。
深入理解
- 冒烟测试其实是微软首先提出来的一个概念,和微软一直提倡的每日build(构建版本)有很密切的联系。具体说,冒烟测试就是在每日build(构建版本)建立后,对系统的基本功能进行简单的测试。这种测试强调程序的主要功能进行的验证,而不会对具体功能进行更深入的测试。因此冒烟测试还有另一种叫法BVT(Build Verfication Testing)。
- 冒烟测试应该随着每一次构建而走,它应该是一个开关而不是一个研发流程中的测试阶段。
- 冒烟测试的最佳实践还是最好被自动化,在CI中每一个build都去自动执行主流程的测试,确保其是一个基本可用的版本,如果冒烟测试除了问题,那么就打回重构而不需要进一步的测试,这样可以通过提前发现问题减少测试的工作量。
参考文献
冒烟测试 - 百度百科
Smoke testing - wikipedia
你真的了解什么是冒烟测试么?