Smoke Testing

When I joined my first organisation and first project, I was put into testing by my manager. The idea behind making me a part of the testing team was to get me familiar with the functionalities in a better manner which would help me understand and work with the application better.
Slowly I started getting familiar with terms like System testing,Functional Testing,Load Testing,Regression Testing etc.But the testing term that made me curious was “Smoke Testing”. It was almost everyday when I used to hear the same term again and again and sentences like “Lets do the smoke testing”,”We have to finish the smoke in 20 mins”,”We have a new build in place,so we need to carry out a smoke testing” were common. I started getting more and more curious and thought why do they call it “Smoke Testing” when there is no smoke at all? Is it something related to cigarettes? And finally I got the answer through the most trusted/beloved/loyal/awesome friend of any software professional – GOOGLE 🙂 :). The description that why it is called Smoke Testing was as interesting as the name itself. They have taken this name from an ancient testing process where wooden boxes were tested for holes by filling them up with smoke.If smoke comes out from any leakage present in the box,they used to mend it. It also refers to tests made to closed systems of pipes to test for unseen leaks.
So when we go for this Important Testing Process everytime we have some change in the system or a new enhancement gets added, we should also know what are the things those should be tested during the smoke test. At the same time it is also important to decide what are to be put in the smoke testing process and what are to be excluded.

What is done and how a Smoke Test is implemented:

In general, to implement smoke tests/smoke testing procedures, the test team prepares a set of test cases those are executed everytime a new release or build is provided from the development team. These set of tests are used to test the major functional areas of the application. They generally  do not test in detail/ in depth by going to the low level details of the system. Rather they are high level tests those test that the overall functionality is working fine.
It is a good practice to make the developement team aware of the functionalities tested during the Smoke Test process to ensure quality awareness.

Now how do you determine what to include and what to exclude in a smoke testing process? The following points might be helpful for taking the decision.

– First of all decide that what are the critical/main/important/’most frequently used by users’  functionalities  those need to be working.
– Then look into the types of changes that have taken place since the last testing process/test cycle and what you need to cross check again to ensure that these changes as well as the other modules  which might get affected by these changes are working fine. In testing terms we call it “to check whether any of the changes have any regression impact or not”.
–  Finally, check some other areas in the system where a more detailed check is necessary which a tester should perform going beyond the steps mentinoed in the testcase. Of course this action needs to be prioritised as there might be a lack of time.

3 Major characteristics of Smoke Testing

– It generally follows an end-to-end testing process for the system. Testers should focus on stressing/loading the application to find the errors/bugs which may result in malfunctioning of the application further.
– Smoke Testing should not be exhaustive but it should be able to find out major defects.
– The main idea behind the Smoke Testing process is to make sure that the main functionalities of the application are working fine and the system is stable enough for further thorough testing process.

Advantages of Smoke Testing

1. It minimizes the risks associated with integration: It has always been a headache for developers and testers when 2 separate modules worked on by different people are combined/integrated. It happens quite often that the integrated code does not work properly.The daily build and smoke testing process manage to make the integration problems small and manageable and thus prevent problems with the integration process.

2. It reduces the risk of low quality: Timely smoke tests ensure that the system does not run down or fall into a state where there would be quality problems which would take more time to be fixed.

3. Uncover major problems: The probability of finding bugs/major bugs increases with a well designed smoke test. It also helps a tester to uncover defects/bugs earlier in the testing cycle.

4. Saves money and time: With all the above 3 advantages,a good smoke test ensures that a lot of cost and time is saved.

Spread the love