Post-Go-Live Testing/Smoke testing allows us to quickly assess the status of an application by running a set of end-to-end tests targeted at checking the most important (or the most significant) user flows. It should be run just after a fresh deploy and ideally at regular intervals after that.
Business benefits of smoke testing:
Smoke Tests Give you Fast Feedback
Smoke tests should be put in place to ensure that your new code has not broken any existing functionality, and ideally, they should be run in production. In software testing, you don’t want to be reactive – you don’t want to wait until a feature breaks, have a user report it to you, and then push a fix. You want to know if something is wrong before your users ever experience anything wrong. As an engineer, smoke testing gives you that confidence you need to know you are releasing new features without breaking existing functionality, and they give you this feedback fast so that you can make changes quickly when necessary.
2. Ensure the application stability
1. Running smoke test just after fresh deployment ensure the application is stable and working after those changes.
2. Running tests on scheduled intervals ensures the app is working as expected in different states.
3. Ensure basic components of the application are working
4. detect showstopper bugs earlier
5. Faster detection and resolution of the bugs
Difference between smoke testing and regression testing:
Smoke test | Regression test |
---|---|
The coverage of smoke testing is wide and shallow | The coverage of regression testing is meant to be as thorough as possible. |
Its purpose is to roughly test as much functionality as possible in a short time | Ensures any existing functionality was not negatively affected by the new changes introduced by a new commit or release |
Smoke testing should be fast compared to regression testing as its main purpose is to quickly assess the main user flows within an application. | Regression testing is a bit slow in comparison to the smoke test as it is supposed to test the application thoroughly. |