There are many different opinions about where exactly the name �Smoke test� comes from and where it was used the first time:
1. The �Smoke test� concept is derived from engineering environment:
During the start of operation of some new equipment, it was believed that the testing was successful, if the installation didn't smoke.
2. The term has got its name from stove-makers. After they had assembled an oven and closed all plugs, they stoked it and checked whether no smoke was coming from wrong places.
In software testing area, the term is used for surface inspection of all application modules for their efficiency and availability of fast detecting critical and blocking bugs. Smoke testing considerably minimizes the risk of problems arising by integration, and reduces the risk of product low quality. In software testing, smoke testing is a set of written tests that are performed in the system before transferring the software for further testing.
This is a "shallow and wide" approach to testing. A tester "touches" all major areas of the application, performs surface testing just looking for answers to basic questions. Smoke testing hasn't to be exhaustive; however, it should be sufficient enough. As the result of software testing, the tester can decide whether the project version is stable enough to be passed to the next, more careful testing phase.
For example:
Installation errors: If the software can't be installed, its testing is likely to be impossible at all.
Failure to connect to a database that is relevant to the client-server architecture. Subsorts of smoke testing are �Build Verification Testing� or �Acceptance Testing� performed by the testing team at the functional level. According to its results, the conclusion is made whether the installed software version is accepted for testing, operation, or delivery to the customer.
Smoke testing is the most cost-effective method for identifying and fixing software defects; and some people even believe that it is the most effective way of testing at all.