I have encountered many people being confused with the concept of Smoke Testing and what it entails. In this blog, I will be describing its origin as well as its meaning to clear any clouds of smoke that are present in your mind.
The Birth of Smoke Testing
During the initial stages of the software development, people needed a way to ensure their initial builds were functioning and not be an example of a catastrophic build. This is where smoke testing came into the story.
Basically, Smoke testing refers to testing the crucial functionalities of the build before diving deeper into performing exhaustive tests. Whenever you are presented with a build to test the changes or new features, you perform a few positive tests to check if the features work as intended. This is done to prevent wasting the time and resources of the SQA department. If the positive tests of the build do not work, testing any other edge case would be in vain.
Different Analogies and My Findings
Though the general concept of smoke testing remains the same, I have come across different analogies regarding the origin of smoke testing.
Hardware Development
In hardware development, a small amount of electrical power is applied to check if any smoke comes from the device. The appearance of smoke clearly states the failure of the device.
Relating the above concept to the software world, the SQA engineers send requests for needed features and test whether they work. If the build breaks with initial requests, know that the build is not stable enough for in-depth testing. Continuing testing these unstable builds will just be a waste of time.
Plumbing Industry
In the plumbing industry, smoke testing is done to ensure the pipe is not leaking. In other words, smoke is blown into the pipe and the pipe is checked for any leakage. Applying this method in the SQA field means that simple user flows are created in the application, and the software is checked for any existing bugs in its critical functionalities. You can move forward with more edge test cases if the initial checks are cleared.
My Analogy
Even though the definite origin of the smoke testing may be cloudy and have variations, both the origin states that it tests the software's basic functionality and is one of the first tests performed by the SQA engineers.
The meaning behind the smoke testing may vary depending on the team you work with. You are good to go if you create a baseline and know what your smoke tests will entail! Just remember to not let there be any gap in the understanding among the team members.
Your concept and another person's concept of smoke testing may differ. However, this variation in meaning opens the door for exploration of the options and gives you the space to apply what suits the scenario best.
Smoke Testing – The Guardian
Whenever you get handed any new phone, I’m sure the first things you’d do are see its touch sensitivity, screen resolution, how your camera clicks look like, UI components or any similar action that'd be considered basic in your daily use. You don’t dig deep inside every setting and app immediately.
Likewise, it is never recommended to dive right away into exhaustive testing with any build the development team provides. You look at the surface first, meaning you check the basic positive functionality of the product provided. This will gatekeep any unstable builds and preserve our time and resources.
As someone working to ensure the quality of the final product, we need to determine the quality of the initial build to be stable enough for further testing – which is where smoke testing shines the best.
Ritual, Not Process
As an SQA engineer, I treat smoke testing as a ritual whenever the development team gives me a new build. You must wonder if it’s feasible to test all the crucial functionalities every time you’re given a new build, especially in agile development. A fun fact about smoke testing is that it adapts to the build and/or projects.
If your goal is to only test a new or an improved feature, your smoke testing should revolve around that feature. Anything else should be related to regression testing. Moreover, you can twist its contents according to your needs and requirements. We’re not chasing smoke like the electricians or the plumbers; we reinforce our armour with validation.
Clearing The Smoke
Whenever someone asks, “Where’s the smoke?” I look at my ritual and say it's not about ensuring there's smoke but rather ensuring no smoke will come when I perform further tests. Smoke testing acts as a litmus test to check if the build is ready for test. It indeed is an unsung hero in the world for SQA engineers.
The origin of the smoke may vary from the understanding you and your team have, depending on the origins you derive it from. Irrespective of all of this, it is irrefutable that smoke test offers quick feedback to your project, along with helping the QA engineers move forward with more in-depth testing.
Interested in learning more about tests and quality assurance? Subscribe to our blog and stay updated with our fresh blogs every week!