This is one of the frequently asked question during interviews.
Smoke
|
Sanity
|
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. |
A smoke test is scripted--either using a written set of tests or an automated test. | A sanity test is usually unscripted. |
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. |
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. |
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. |
Smoke testing is after build releasing we will test high level functionalities working or not. | Sanity testing is we will test all functionalities working properly or not. |
It covers the major functionality of the application without bothering with finer details. | Tester conducts the Sanity test to ensure the stability of the application build. Tester finds weather the application builds is stable for complete application or not. |