Smoke testing is a type of testing that is used to detect the most obvious errors that can occur in the very early stages of software development.
The origin of the term smoke testing comes from stove-makers, who were closing all working openings of the newly built furnace and watched if smoke came out of other places. Smoke testing also takes its origins from circuit engineers who connected new boards to the network for just a few seconds and then checked the circuits for overheating. If they found overheated parts, they would look for the source of the problem. If not, a similar test was performed several times before commissioning. As a joke, this type of testing was called ‘smoke‘, because if smoke appeared during the operation of the board, then something is clearly wrong.
Talking about software, smoke testing can be defined as a short cycle of tests that are done after a new build is released. This is done to check the functioning of a developed software system. After successfully passing the smoke test, the developed system is sent to the next cycle of more serious types of tests.
Acceptance testing and build verification testing share some similarities as both presuppose small tests that determine the future of the project. Smoke testing goes well with automation, which led to the popularity of automation of this type of testing.