Smoke Testing is a kind of prototype testing or a pre-test, where the test is carried out only to ensure, that the system or the software is stable enough for further testing to be carried out on it.
Smoke testing is the way to apply all possible test cases, just after the completion of the software build, so that it could be seen whether any damage or major fault will appear after the entire testing is carried out.
It is definitely, not the way to correct major flaws in the software before it is tested fully, but a very necessary step for measuring the stability of the system. This is sometimes, also called "Confidence Testing", as positive results in this testing, boosts the confidence of the tester and of the entire team.
Smoke testing can also be considered as a regression testing in the sense, that, it can also be applied anytime, in the phases of the software development, to carry out mini-tests.
It may be noted that this testing is carried out after the sanity testing and before the functional testing. Smoke test cases are carried out in the way the formal testing is carried out. The main difference is that the test cases are designed in a way, which will just check the software flaws.
It is important to understand, that, a build is a complete set-up requirement such as the data-files, software libraries, the components or the modules which are necessary to carry out even a smaller kind of tests.
Smoke testing is carried out when there these major criteria is fulfilled:
A simple example of a test case can be performed for login into a session and then adding an item into a cart. Below are the steps which can be tested:
Suppose, the user has to login into his account, by putting his/her credentials and then has to add an item in the cart and then may proceed to pay and then make the payment and then may log out from the session.
In the software testing industry, many get confused about these three different kinds of testing. One is regression testing, smoke testing, and sanity. It should be made clear, these three are totally different testing, and should not be misunderstood.
Since they are solely interrelated topics, therefore their ideas may get overlapped sometimes. Here is some clarifications about the three different kinds of tests.
Below diagram shows how these three testings is inter-linked.
Therefore, to conclude, about the relation of smoke, sanity and regression testing, this can be said that, all are inter-related and one should not get confused with their scope of work.
One test can be carried out earlier and another may be carried out later, based on the scenario, but that does not mean, that they are fully overlapped or not related at all.
Smoke Testing is a software testing type in which a small pre-test is carried out to check whether the software will able to stand with further tests and there will be no problem in carrying out the test.
Smoke testing can help reduce, cost, time and effort, as in the smoke testing, all the test attribute of the software is checked and therefore bigger problems are less likely to arise while carrying out the main testings.
This is a quick process, which ensures the improvement of the quality of the software product with a lesser chance of corrupting the software white testing.