Sanity test & smoke test usually are the same thing. From what I've seem, they are normally termed smoke when executed in the development phase and sanity in other testing phases.
Sanity /Smoke tests cover the basic functionality of the system, to verify this is operating correctly before any in depth testing can take place. They are commonly included as a build acceptance criteria.
Some history, smoke testing is a phrase coined from the days when IC manufactures used to test the same to check if any IC burns out during testing. Somehow in current times very few places we can see literal smoke testing but as a legacy we still use the term smoke testing. Sanity testing is a direct term, does not have any history - at least for the phrase.
To me they are generally the same. People here used the term interchangeably. If i have to make a distinction between them, i would say Sanity Testing is faster and smaller than Smoke Testing. Smoke Testing usually has a set of apps to run and sanity testing will probably try to logon to the apps and quit. Can sanity testing the same as monkey testing ????
Sanity testing is definitely different than monkey as well as donkey testing as while sanity testing we usuall do not kick the *** of product while in monkey as well as donkey testing we are allowed to use "free flow".
Although sanitary testing is not a right place to discuss here but those who are still facing severe recession can try that also for basic needs of survival.
I would suggest we should discuss sanity and smoke testing so that sanitary, monkey and donkey testing discussions do not distract us from the current focus.