triangle
How To Implement Smoke Testing In Production And Staging?

16-Aug-2022

How To Implement Smoke Testing In Production And Staging?

Smoke Testing

Smoke testing as a part of the end-to-end testing process allows testers to process rapid checks on an application or software’s condition. From checking the user flows to running new deployments after certain defined intervals, Smoke testing allows checking the stability of the given product.  

Unlike regression testing, smoke testing offers very thorough coverage on testing the functionality of the application under test in the shortest time. It is more of a detailed process that ensures that any new changes made to the application create no negative effect on the previously existing functionalities.  

More importantly, smoke testing needs to be rapidly compared to regression testing with the objective of creating a consistent central user flow in the given product. At BugRaptors, we have been indulged in both manual and automation testing services for years and therefore it becomes necessary for us to answer the most significant queries and concepts that impact the QA industry. 

In this blog, we will be aiming to underline the process of implementing Smoke testing in production and staging while sharing some necessary highlights on the subject.  

Let’s begin! 

Taking Insights Into Smoke Testing 

Most of the time, amateur testers have to encounter a challenge where they have to make a choice between implementing smoke testing in production or staging. However, when it comes to practical operations, it must necessarily be run on both.  

Since a detailed regression suite takes time to run at the right speed based on app size, smoke testing on staging allows you to have quick access to all the integral problems. It overcomes the chances of bearing a broken code or other significant problems after any new release is made.  

Moreover, smoke testing even brings you instant feedback on a new or committed release which is why most testers aim to run a smoke test before a detailed regression test is pursued. Besides, making these tests effective needs you to be quick as a properly defined upper limit runs around 5 minutes, 10 minutes, and 15 minutes for tiny, medium, and big apps respectively. In short, the lesser time it takes, the better.  

Nevertheless, before you work on smoke testing, you must understand that it is not always capable of covering the whole functionality of the system under test. This is because the motivation behind smoke testing is different from regression testing and thus when aiming for a great product, regression testing must be done after a smoke.  

Wondering How You Can Improve Your Approach To Regression Testing? 

Read Here: Automated Regression Testing: Mistakes & Best Practices 

And just in case, you are not planning for regression testing, having a smoke test suite allows you to find all the critical bugs long before they turn into trouble, taking you towards positive production.  

Learning The Implementation: Creating A Smoke Testing Solution 

As we have said earlier, smoke testing should be done immediately after a new deployment is made while ensuring consistent runs at perfect intervals. If you have a well-defined CI infrastructure or build procedure in place, the initial implementation for smoke testing is easy to pursue. Besides, you only need to add one step more in the build script when planning to run the smoke tests.  

The Standard Process 

  • Test Framework Selection 

Once you are done adding a step to the test process, all you need to foster is test framework selection. And just in case you are working on JavaScript, you may find numerous good options for end-to-end testing frameworks such as Selenium, Cypress, WebdriverIO, etc.  

All these options have their own benefits and limitations. For instance, Cypress and Taiko are only designed to support chromium-based browsers while Selenium is one of the most complex frameworks to handle. 

  • Select A Test Runner (If Required) 

If you are working on some test framework that does not bring you an integrated test runner, then you may have to consider selecting a test runner that aligns well with your selected framework. Some of the few options that you might want to consider can be Cucumber, Jest, Mocha, etc. 

  • Code Your Tests 

Once done, you can begin to code your tests. It can either be done manually or with a test recorder like selenium IDE. However, this might need you to know that working on Selenium IDE reduces all your framework options.  

When your tests are ready, it needs you to confirm that they are properly gone through a repository of the main app and ensure that CI gets it when the code is run or executed.  

  • CI Platform Selection (If Missing) 

In case you do not have a proper CI in place, it does not mean you cannot run smoke tests. It only needs you to explore the available options. Some of these include Circle CI, Gitlab CI, Github Actions, or Semaphore.  

  • Running A Test Suite At Frequent Intervals 

If you need to run smoke tests from time to time, it would require you to work on an entirely different process. It does not require you to have CI infrastructure as it needs you to have access to an infrastructure which is continuously switched on. This leaves you with two options.  

Either you can have a machine in the cloud to run your tests. But first, it would require you to fix a corn job for starting the smoke test suite at the right interval. Besides, you must prefer to set up your tests in a serverless environment. In this situation, without server function could work to run at defined intervals without any requirement or absence of any corn job. 

The Second Option: Using A Web Testing Tool 

Since the standard approach to web smoke testing can be a little complicated task to pursue, having a proper CI infrastructure in place could help you get things done easily. And if you want to run your test suite consistently, it would need you to have the right tool.  

Moreover, working on a standard process for an extensive time period causes a shift of focus from handling the infrastructure rather than putting tests. And therefore, considering these options, it becomes important to have a tool that can meet the need of running the test innumerable times in the given span.  

Some of the outputs that you can yield by having the right tools can be: 

  • Having a proper tool allows you to make and run tests with more convenience. It does not need you to select any frameworks, test runners, CI platforms, or test recorders in order to complete the operation.  

  • Having a proper tool that has all the integrations available makes it easy for you to run the test suites whenever needed.  

  • Tools can help you define the interval for running the test suite as they bring you an inbuilt scheduler.  

  • Last but not least, it allows you to fetch the complete report of the previously run tests along with all the stats. 

Suggested Read: Assuring Quality for an Employment Website through Regression Testing

Conclusion 

Putting it in the simplest words, Smoke testing is an extremely important part of the software development pipeline. Though it is usually overseen or ignored due to the massive costs and complicated process that only drives suboptimal results, having access to modern tools could make the entire task easy.  

Moreover, the use of tools for running your smoke testing initiatives could help you have extensive benefits on time, costs, and overall satisfaction with the development.  

And just in case, you need some expert assistance to meet your smoke testing goals, feel free to reach our experts at info@bugraptors.com  

 

author

Shaifali Sharma

Shaifali is an ISTQB certified QA engineer, working at BugRaptors. She is a testing professional having diverse exposure in various projects and application testing with comprehensive understanding of all aspects of SDLC. She is well versed with Manual testing, Mobile application testing, performance testing, load testing, Web applications testing and able to create effective documentation related to testing like test case, test report etc.

Comments

No comments yet! Why don't you be the first?
Add a comment