Automation testing has been in the IT industry for quite some time. The aim of automation testing is to speed up the test execution activity as against doing the same in manually. Then the question came what to automate and what not to automate. The answer was, automate something where the functionality of the application does not change often so that the effort spent on automation scripting gives Return of Investment (ROI) when the automation scripts get executed multiple times. Hence, traditionally automation was more towards identification of regression suite and automate only those test cases which do not change frequently. But today the world is changing, today applications have adapt of customer demands almost immediately. The development duration have gone down from months to days. With the advent of DEVOPS, continuous testing and deployment is becoming the norm of the business. To adopt to this speed of development, the concept of Progressive automation came into existence. Now what is progressive automation, how is it different from regressive automation and how it helps business?
Progressive automation is to automate almost every test case instead of executing test cases manually. This is typically seen with the projects that run in agile methodology. You will see insprint automation, which means, automation of the use cases that are developed in the same sprint. WOW, this looks like a revolution, isn’t it? When you automate every test case and during software development the requirements or designs of the application are bound to change. Then, the automation scripts have to be rewritten or redo completely as we progress into next sprints.
But what about ROI? Traditional definition says you get better ROI when you automation regression suite. Now, does that mean there will not be ROI in progressive automation? If yes, why automate everything? The answer is, there is an ROI even in progressive automation but it needs to be viewed differently. Let me discuss this with an example.
You have a customer facing application, say an eCommerce application/ portal. You have heavy traffic every day to this portal. You want to build a feature which you know your customers need and it needs to be done quickly may be in two to three days not in weeks or months. While this speed (time to marker) puts you ahead of competition but also needs to ensure that the other functionalities of the application is not impacted. There by, you need to test other parts or impacted parts of the application. If your application is huge, your testing efforts also will be big. Now, if you go with the old school of thought of regression automation, will it work? Will you be able to complete the testing on time? The obvious answer is ‘No’. So what is the way out now? Automate everything and execute those test cases that impact the functionality or execute everything if time permits. But as we know automation of all the scripts is an expensive task since the maintenance of scripts is also high. If we wear a traditional hat, there is no ROI. In this case, the ROI is seen as the revenue loss if a feature is not released on time plus you may lose customers to your competition and money spent on acquiring them back when you lose them. Let us say you have 2000 test cases for your application that cover complete functionality. The automation development cost of 2000 scripts is say $400k plus add automation maintenance cost would be say another 50% of automation development. In total, you spend $400k initially and $200K for maintenance. Let us say you need to build a new feature on your current application which can bring another $2million revenue. Do you think it is a best bet to invest $600K on automation? To put the same thing in a formula,
If the Cost of automation (Development and maintenance) < Revenue generated by new features + Cost of acquiring lost customers then it is worth going for progressive automation.
In conclusion, progressive automation should be seen in light with business benefits that one can achieve. Not all applications need to follow progressive automation principles since every application may not be machine critical. Use progressive automation as applicable given your business context.