I have read several posts regarding smoke and sanity testing. All are almost confusing. Neither explaining them clearly,just repeating the matter except some two or three posts and based on that two or three posts i concluded that following is the formal process:
Smoke testing(generalized health checkup)---then--> Sanity Testing(checking some main functionalities to somewhat more deeper level)(Specialized health checkup)----------------then--------> Functional testing(full functionality checking at deeper levels)
Am i right in above concept?
I have confusion regarding when sanity is performed. Smoke is performed when build comes very first time. But when sanity is performed? Is sanity is performed only after every smoke OR it is performed every time build undergoes some change(i.e. even when smoke is not performed because smoke is performed only first time build comes) OR in both cases?
I think smoke testing was conducted when build comes on very first time to ensure that the software is stable enough to conduct another test process, while sanity testing was conducted to check whether any bug fixes in previous build are fixed and also ensuring that those fixes does not break any previously working functionality.
Sanity testing also conducted if there is new feature added to the software to ensure that the changes does not break the core functionality of the software. :)
I found answer as:
The cycle is like…
Development -> Smoke testing -> Functional testing.
When the software is changed….
Retesting -> Sanity testing -> Regression testing
The full post can be read at https://www.quora.com/What-is-the-relation-between-sanity-testing-and-regression-testing.
The name of smoke tests was taken from real life. This kind of tests means you need to turn on all your devices, machines etc. and look if they give smoke (they start to fire). In application it means that you log on and check if you can start to test. You look to some different components of applications and generally you don't think about business and logic. In sanity tests are a kind of functional test but they are made after smoke tests (smoke tests can be ommited). Sanity tests have the purpose to check logical and business correctness of application. You touch several places and check if application work correct according to requirements. Sanity tests often are used after changes made in system - they are sometimes called a small regression.