Can anyone help me with the differences between sanity vs smoke testing with some good examples. im a bit confused after googling some articles. please reply
According to my latest lookup at ISTQB:
Synonyms: confidence test, sanity test, intake test
A test suite that covers the main functionality of a component or system to determine whether it works properly before planned testing begins.
so they are officially the same, although they probably have different history and different usage.
To me, the distinction between ‘sanity tests’ and ‘smoke tests’ depends on the context under which you’re doing the testing.
A ‘sanity test’, for me, is an initial look at a new build to see if there are any obvious glaring errors in functionality or presentation. It’s not normally done under pressure from the business, though the developer might be anxious to see if (for example) they’ve got a difficult fix right.
A ‘smoke test’, although it looks very similar, is usually (in my experience) applied when there’s business pressure - a demo, public launch or some other instance where visible failure would be an instant embarrassment. It consists of a quick run through the ‘happy path’ to see if the app can walk around on its own without bumping into the furniture, as a friend of mine once said. Often, it’s conducted with someone senior looking over your shoulder who hasn’t been closely connected with the project up until now, but has to go up in front of people who matter and pitch for the project. Reputations and jobs may be on the line, and could be impacted by simple but obvious problems that will take minutes to fix if they’re caught now.
A ‘smoke test’ may include instructions to someone doing a demo not to do X because that’s not finished yet.
Key difference between smoke testing and sanity testing:
-Smoke testing has a goal to verify “stability” whereas sanity testing has a goal to verify “rationality”.
-Smoke testing is done by both developers and testers whereas sanity testing is done by testers.
-Smoke testing verifies the critical functionalities of the system whereas sanity testing verify the new functionality like bug fixes.
-Smoke testing is a subset of acceptance testing whereas sanity testing is a subset of regression testing.
-Smoke testing is documented and scripted whereas sanity testing isn’t.
-Smoke testing verifies the entire system from end to end whereas sanity testing verifies only a particular component.