Overcoming The Ramp-up Delay, Cost and Resources Required To Automate Testing
Tags: testing, tdd, agile, devops
Published: 2019-07-04 16:02:34

To put a system in place for Automated Testing is not just about selecting a test automation tool but also involves setting up several elements and components that contribute to a successful test automation process.

Various components that comprise a fully functional test automation system are:

1. Right Test Automation Framework, to reduce the scripting efforts for the automation engineer
2. Automation testing tool(s) to write scripts
3. Some machines to host the automated test cases – A dedicated machine is needed to execute the test cases which means extra cost
4. CI/CD system/Integrations to make sure the test cases are executed consistently when needed, mostly after a check-in
5. Tools to gather information about test-coverage(Test Management)and code-coverage to make sure all the written code is being executed
6. Integrations with Collaboration tools, Bug reporting tools etc.
7. Test Data Management, to increase the coverage of the tests


The Test Automation ecosystem grows complex involving multiple components associated with it. Though incremental investment could result in incremental returns, the test automation ecosystem is a necessary investment in the early stage itself.


Putting all the above components together and making sure they work as expected is not an easy task either. The various steps involved before an automation suite can become functional are:

1. Decide if Automation is a feasible option
2. Analyze the test automation tools available in the market
3. Determine what resources are going to be involved in automation
4. List down the testing matrix
5. Test Case Creation
6. Execution, Reporting and analysis of the Test Results – Integrations with other tools in the ecosystem



##1. Decide if Test Automation is a feasible option
If you have very frequent releases and the testing resources are less, automation is the solution that can help save the manual testing time while the results of every test run shall be emailed after its execution. But the automation will only prove beneficial when the following conditions hold true:

There is a big set of regression test cases that need to be run quite frequently such that the cost of manual testing would exceed that of automation
The product is such that there are multiple modules that don’t get changed frequently. If a lot of changes are pushed in the product all the time then the cost of maintaining the test cases would be higher as compared to manual testing cost
A large set of test cases are automatable. Each UI element should also be considered for automation if the product/website is UI intensive.

##2. Analyze the tools available in the market
This is where most of the time is spent. It is always good to do POC with multiple tools before taking the final decision.

Once it is decided that automation is a viable option, the next step is to analyze the automation tools available in the market and decide a suitable tool depending on the budget and the nature of the product. One of the factors that needs consideration is what technology the product is built in and then ease-of-use of the automation tool should be considered as well.

Having the right automation tool is the most crucial because otherwise it can land you in many problems later resulting in a lot of time spent debugging. 
Check out this guide to select the right test automation tool.

Another factor that should not be missed is the skills of the existing resources which leads us to the next point. 



##3. Determine what resources are will be involved in Test Automation
After the test automation tool is decided, the obvious step is to decide how to go about with the automation process.

If using the test automation tool needs special skills and more resources to be hired, it would again be a time-consuming task and newly hired resources also mean more cost. If it is decided that the existing resources would be trained, it requires a bit of time and cost for training the old resources.

If at this point, the test automation tool is such that it requires minimal training for automation testers then that would be highly beneficial. If other stakeholders can also be involved in writing the test cases it directly means there is a major reduction in time and cost.

Such tools are the ones that allow for scriptless test automation solutions like **[Testsigma](https://testsigma.com)** are efficient and allows the test cases to be written in simple English language using NLP and maintained by AI. 

Also, along with human resources, infrastructure in the form of machines is needed that would host the test cases for execution. That again means added cost. This cost can be optimized if the infrastructure can be used as a service as well. Such services are already available in the market like AWS and Google Cloud Platform that can host your test cases and execute them at minimal costs. *Saucelabs* and *Testsigma* offer are test automation specific services that host test cases on the cloud and also provide the execution and reports.



##4. List down the testing matrix
This is more like preparing a checklist of all the different environments(OS, browsers, devices) supported by your product that will have to be tested via the automation suite. It can prove very costly if you plan to buy all the supported devices. Instead, subscribing to a service that has all the devices ready for testing and integration can prove beneficial here. Again, this need is met by some tools available online like [*Testsigma*](https://testsigma.com) and [*SauceLabs*](https://saucelabs.com/) that has a variety of browsers on multiple devices ready for testing, AWS Device farm is one such similar offering.



##5. Test Case Creation
This is the most time-consuming task. The time taken depends on the number and complexity of the test cases. Also depends on the chosen automation tool. The complexity of the test case creation can be reduced if an easy-to-use automation tool is chosen. For eg. if a scriptless automation tool is chosen this can help save a lot of effort and time.



##6. Execution, Reporting and analysis of the Test Results
The automated test cases would not make sense if they were not integrated with the CI/CD tools and run after all major check-ins. Running them often means quicker feedback. And this can be achieved when integration with CI/CD, reporting and analysis tools is in place.

Cloud services that also offer integration with these tools can help save substantial amount of time and resources.




Thus, although test automation can prove to be a major task initially if the right test automation tool with all the essential elements discussed above is chosen, it can avoid the huge initial time, cost and resources spent to get started with automation testing.