When to use Automation testing

Automation is a must for any software development project. It’s a way to facilitate testing and improve the quality of your application. Below you will find some cases when automation is the right choice for your testing activities.

Smoke testing 

Smoke testing is perfect for cases when you perform a small number of main sanity checks for your application every time you implement new functionalities. A smoke test is performed to reveal simple failures in the functionality of the software product. It’s a very common case to automate, as it is very useful and is run quickly. Quick feedback is the main advantage here. Besides, you can run tests even on the production version of an application and ensure everything is functioning after a deployment.  

Tools we use: Selenium, Appium, API endpoints checks automation 

Regression testing 

Regression testing is rerunning all functional tests to ensure that previously developed and tested software still functions correctly. The scope of regression may vary from 50 test cases for small applications to thousands of test cases for big IT-systems. 

Is automation worth it? To answer this question you need to calculate ROI. 

It is used to evaluate the forecasted profitability of an investment and shows if the investment's gains compare favourably to its cost. In our case ROI is a ratio between the cost of manual execution of regression scope (i.e. the number of planned test iterations multiplied on the cost of one iteration) and the cost of automation of regression testing. Automation is preferable when you deal with a lot of testing iterations. 

Tools we use: Selenium, Appium, API automation 

Programming languages we use: Java, C#, Python, JS 

Repetitive tasks

Mundane repetitive tasks are ideal for automation. Aren’t you tired of deleting or clearing a database before running tests? Manually crunching the numbers, collecting and sending reports with the results of your testing is time-consuming. Automation assists testers to reduce repetitive tasks and shorten the time necessary to generate quality testing success. Invest in a tool or automation strategy that will do the task for you!

Tools we use: SQL script runners, Bash, Shell 

Data validation tests 

Here’s another common scenario to automate:

You have a couple of test cases that can only be run with different test data. For example, you want to check how users interact with the main page on your website, but your main page has a different number of page views depending on the user's country. Or, for instance, there are different user permissions in your application and some functionality may be unavailable for certain users because of the settings. 

The workflow is the same but test data and test results are different. The optimal choice is to automate all these cases instead of executing them manually. 

Load/Performance tests 

This is a unique case, as load/performance tests are only possible with automation. Naturally, you could hire a legion of new employees, provide them with a ton of new devices and conduct a load test on your app, that is, if you have a lot of money and time to waste. We suggest having load/performance tests and running them before huge releases. It’s essential to see how the app performance changes from release to release, how many users your application can process and how many server instances you need for your app to work properly. The only way to know these data is to use load/performance tests. 

Tools we use: JMeter, Blazemeter, Custom native tools/frameworks.

 

We've reviewed the most common cases to be automated. However, in practice, there are many more cases when automation can be applied. If you’re not sure whether you need automation, want to evaluate the costs of it, or would like to learn more about automation tools – all you need to do is contact us!  We have years of experience in test automation, and we’re ready to help you with any automation challenges you might face in your project!