I
have gathered a few points about the difference between smoke and
sanity testing from the responses of two software testing groups. I
have added the points below.
However, my experience of executing the Smoke and Sanity testing has been the following:
Smoke Test:
When a build is received, a smoke test is run to ascertain if the build is stable and it can be considered for further testing.
Smoke testing can be done for testing the stability of any interim build.
Smoke testing can be executed for platform qualification tests.
Sanity testing:
Once
a new build is obtained with minor revisions, instead of doing a
through regression, a sanity is performed so as to ascertain the build
has indeed rectified the issues and no further issue has been
introduced by the fixes. Its generally a subset
of regression testing and a group of test cases are executed that are
related with the changes made to the app.
Generally,
when multiple cycles of testing are executed, sanity testing may be
done during the later cycles after through regression cycles.
|
Smoke |
Sanity |
1
|
Smoke
testing originated in the hardware testing practice of turning on a new
piece of hardware for the first time and considering it a success if it
does not catch fire and smoke. In software
industry, smoke testing is a shallow and wide approach whereby all
areas of the application without getting into too deep, is tested. |
A
sanity test is a narrow regression test that focuses on one or a few
areas of functionality. Sanity testing is usually narrow and deep. |
2 |
A smoke test is scripted--either using a written set of tests or an automated test |
A sanity test is usually unscripted. |
3 |
A Smoke test is designed to touch every part of the application in a cursory way. It's is shallow and wide. |
A Sanity test is used to determine a small section of the application is still working after a minor change. |
4 |
Smoke
testing will be conducted to ensure whether the most crucial functions
of a program work, but not bothering with finer details. (Such as build
verification). |
Sanity
testing is a cursory testing; it is performed whenever a cursory
testing is sufficient to prove the application is functioning according
to specifications. This level of testing is a subset of regression
testing. |
5 |
Smoke testing is normal health check up to a build of an application before taking it to testing in depth.
|
sanity testing is to verify whether requirements are met or not,
checking all features breadth-first.
|
------------- Suneeta K
|