Smoke Testing is a term from electrical engineering: Turn it on. If you see smoke: you’re done, it’s not working. Smoke Tests address the question: Does the program run. If they fail, no further testing is needed.
Smoke Tests are also called Build Verification Test insofar they are executed before any other test (of the build) and especially before the build progresses to any manual QA
In general Smoke Tests check the primary / most important functionality of a system, like: Does the program start? Does the user interface open? In that sense Smoke Test are considered Sanity Testing.