Many software QA testing professionals ask us, What is Smoke testing. Unlike other forms of software testing, smoke testing is hugely influenced by hardware testing. While testing hardware components, testers perform smoke testing to identify fire or smoke when the device disconnects from its power source. The testers perform smoke testing to assess the basic functionality of the build while testing a software application. Normally, smoke testing or build verification testing is performed before the build is delivered for exhaustive testing. In case smoke testing fails, the build is considered as unstable. The build is further delivered for exhaustive testing only after passing the smoke tests. Hence, smoke testing is completely different from other types of software testing.
What is Smoke Testing? Understanding Important Aspects of Smoke Testing
A Non-Exhaustive Testing
Smoke testing is performed to assess the overall quality of the build of a software application. While performing smoke testing, testers check if the application’s critical functionalities are working flawlessly. Hence, they do not verify all functionalities of the build. The testers verify only the relevant and important functionality of the build. Hence, smoke testing is considered as a non-exhaustive testing. At the same time, it is also considered as wide and shallow testing due to covering important functionalities of an application.
An Initial Testing Process
In addition to being a non-exhaustive testing, smoke testing is also an initial testing process. Normally, smoke testing is performed by developers before delivering the build to QA professionals for exhaustive testing. In case the smoke test fails, the build is not delivered to QA professionals for further testing. The developers decide if the critical functionalities of the build are working properly based on the test results. The test results even help developers to determine if the build is ready for further and elaborate testing.
Often testers have to put extra time and effort to install and test a software application elaborately. The testing time further increases if some of the critical functionalities of the software application are not working properly. The primary aim to smoke testing is to reduce testing time by ensuring that all critical functionalities of the application are working fine before the testing process starts. The developers perform smoke testing once the build is ready and before delivering the build for further testing. Hence, smoke testing helps both developers and testers to ensure that the build is stable enough for further and exhaustive testing.
Different from Sanity Testing
There are a number of testers who consider smoke testing is identical to sanity testing. But sanity testing, unlike smoke testing is performed once the software build is received by testers from the developers for exhaustive testing. The primary objective of sanity testing is to ensure that all bugs or issued created due to changes made to the code or functionality are fixed. But smoke testing is normally performed by the developers to ensure that software build is ready for elaborate testing. Also, the testers do not cover all features or functionalities of the software build while performing smoke What is Smoke Testing. Here is an interesting article on whether we really need Sanity testing.
Smoke testing can be performed by both developers and testers. But the professionals must perform this form of software testing with valid data and positive scenarios. Also, they need to document smoke testing properly. The professionals still have option to perform smoke testing both manually and automatically. They even have option to choose from a wide range of test automation tools. Hence, the developers can easily accelerate smoke testing process by using automated scripts. It is always a great idea to automate the smoke testing process if the builds are ready frequently or the software delivery cycles are short.
Test Case Creation
As noted earlier, smoke testing is not performed to check if all functionalities of the application are working fine. The testing aims to check if the critical functionalities of the application are working fine. Hence, the testers are not required to perform exhaustive testing. But the testers cannot perform smoke testing without creating test cases in advance. They must create and execute test cases before checking if the critical functionalities of the application are working fine. They can even write test cases covering only the critical functionalities. Also, the testers have option to execute the test cases either manually or through automation tools.
Many testing professionals nowadays perform smoke testing to finding bugs and integration issues before the real testing process starts. They can even perform smoke testing without writing too many test cases. Also, the test cases can be executed both manually and through automation tools. Hence, the testing professionals can perform smoke testing without putting extra time and effort. But they must perform smoke testing to ensure that the build is ready for elaborate testing and reduce overall testing time.
As noted earlier, smoke testing is a form of non-exhaustive testing. Unlike other forms of software QA testing, it does not cover all functionalities of the application. The testers perform smoke testing to ensure that the critical functionalities of the software are working fine. Also, they perform smoke testing with a small set of test cases. Hence, they cannot use the test cases to identify the critical bugs and performance issues in the software. But the professionals still need to perform smoke testing along with other forms of software testing to reduce overall testing time.
On the whole, smoke testing or build verification testing is a non-exhaustive and wide testing. Normally, the testing is performed to check if the critical functionalities of the software application are working fine. Developers often perform smoke testing before delivering the build to QA professionals for elaborate testing.