Smoke testing, also known as build verification testing, is an initial level of testing performed on a software build or release candidate to quickly assess its basic functionality and stability. The purpose of smoke testing is to determine whether the software is stable enough to proceed with further, more extensive testing.
During smoke testing, a series of pre-defined tests or test cases are executed, typically focusing on the core functionalities or critical features of the software. The tests are designed to verify if the major functionalities are working as expected and to identify any show-stopping defects or issues that would prevent further testing.
The term “smoke testing” originates from hardware testing, where a device or component is checked for smoke or fire during initial power-on. In the software context, smoke testing is metaphorically similar, as it aims to identify any major issues that could indicate the software is “on fire” and requires attention before investing additional testing efforts.
Key characteristics of smoke testing include:
- Breadth over Depth: Smoke tests cover a wide range of functionalities but do not aim for in-depth testing of individual features.
- Time-Efficiency: Smoke tests are designed to be quick and focused, allowing a rapid evaluation of the software build.
- Early Detection: Smoke testing is performed early in the software testing life cycle, typically after a build is made available for testing.
- Go/No-Go Decision: Based on the results of smoke testing, a decision is made whether to proceed with further testing or to halt and address critical issues.
It’s important to note that smoke testing is not meant to be an exhaustive or comprehensive form of testing. It provides an initial check to ensure basic functionality before proceeding with more comprehensive testing approaches such as regression testing, integration testing, and functional testing.