What is a Smoke Test?
Smoke testing is non-exhaustive software testing, to prove that the most crucial functions of a
program work, but not bothering the finer details. A smoke test is similar to the basic type of
hardware testing, in which the device passed the test if it didn’t catch fire the first time when it
was turned on. The term is also used metaphorically, especially in computer programming, where
it is also called a "sanity test
Most of the software companies follow the “daily build and smoke test” process. Each day every
file is compiled, linked, and combined into an executable program and the program has to pass
through a “smoke test,” a relatively simple check to see whether the product “smokes” when it
runs. After performing a smoke test the tester can come to a conclusion that the software can be
accepted or rejected for a major round of testing.
Benefits of Smoke Testing
Reduces Integration Risks
I have encountered many instances in the past where the entire software gets
screwed up when the source code is integrated. The composite code does not
work well. The integration issues will lead to a delay in the delivery of the
product/project. The smoke tests may help to reduce the integrations issues to a
The product which worked on second day and failed on the third day .One can
easily find out what has gone wrong from the previously working build.
The morale gets boosted .Everyone will be happy to see the improvement in the
product working as one is seeing that in a day to day basis
When you build the every day, the features that are present and absent are obvious.
Once can get a sense of how close it is to completion.
How to Smoke Test?
1. Code Merge : The programmer compares his copy of the source files with the master
source files, checking for inconsistencies between recent changes made by other
developers. The programmer then merges the code changes with the master source files.
Source code control tools can be used for this purpose.
2. Private Build : The programmer builds and tests the software to ensure that newly
implemented feature works as expected.
3. Execute the smoke test: The developer runs the current smoke test against the private
build to be sure the new code won’t break the build.
4. Code Checkin:. The developer checks his or her private copies of the source code into
the master source files.
Article on Smoke Testing
5. Generate the daily build: The build team generates a complete build of the software from
the master sources.
6. Run the smoke test: The build team runs the smoke test to evaluate whether the build is
stable enough to be tested.
7. Fix problems immediately: If the build team encounters errors that prevent the build from
being tested (that break the build), the developer who checked in the code is notified, and
that developer fixes the problem immediately.