Before jumping straight into Smoke Testing, let's just first understand where this Smoke Testing comes from? In any Software Development Life Cycle, the phase of development comes first before the testing phase. Development further break into different phases, it can be in multiple releases or multiple Agile cycles. Development can be done by an individual or by a team but it many cases it is a combined effort of a development team. The code developed by all the team is combined together or merged together. After merging of several code file it turns into an executable file which is known as a Build. This build is further put on to the test environment and handed over to QA people to test the functionality produce by the development team.
Each time a developer fix anything in the code or write a new code for different functionality, it goes again through the same process. So there are number of development builds planned in any given project. It is always a risk that the build does not work properly on the environment. As there can be numerous of reasons like configuration issues, code issues, regression issues or environmental issues.
So far we understood that how the development cycles work. Now let's jump into What is Smoke Testing?
What is Smoke Testing?
Smoke Testing is performed after software build to ascertain that the critical functionalities of the program is working fine. It is executed "before" any detailed functional or regression tests are executed on the software build. The purpose is to reject a badly broken application, so that the QA team does not waste time installing and testing the software application. It is a part of Functional Testing.
It can be performed by the developers or testers. Sometimes developers also test the application after the deployment, before handing it over to QA to test. Or sometimes QA team Smoke Test the application before accepting any new build from the developers to avoid any time wastage.
If the Test fails, build is declared as unstable and it is NOT tested anymore until the smoke test of the build passes.
Why Smoke Testing?
Every QA Team always prepares a set of functional test cases to test any functionality. These test cases can be 10 or 100 or more than that. The idea behind Smoke Testing is to enable a tester to execute these test cases. If there are major P1's available in the environment due to which the QA team is not able to execute a minimum number of test cases, it is no point of running a complete test round on the build.
What to Test in Smoke Testing?
A set of very high-level test cases are prepared which are meant to execute before any proper testing. These tests can be manual or automated. The objective is not to perform exhaustive testing, the tester needs to check the navigation’s & adding simple things, tester needs to ask simple questions “Can tester able to access software application?”, “Does user navigates from one window to other?”, “Check that the GUI is responsive” etc.