Manoj Narayanan, AVP, Quality Engineering & Assurance Services, Cognizant Technology Solutions
In the world of enterprise software development, testing is viewed as a necessary evil. There is no way to commercialize software without testing—bugs are inevitable and must be fixed before the software gets out to the users. But testing itself can devolve into a cumbersome back-and-forth process that can detract from, as opposed to adding to, value to the business.
Let’s look at a typical scenario encountered during the software development lifecycle. A developer finishes a piece of code, followed by validation testing. A bug is revealed, which the developer fixes. Back to testing it goes. The developer waits for test environment as well as test data and completes the final fixes before deployment. This process can stretch on. The company itself derives no value from the process until the software is released, presumably error-free.
Frictionless automation aims to minimize the waiting periods as much as possible by automating all of these handoffs across the application development lifecycle. The prospect is to get software and new releases market-ready much faster than in the past. From a testing perspective, the objective is to automate all the points related to testing and eliminate the waiting times.
New Elements for Automation
Automated software testing is not a new concept. Traditionally, the automation focus has been on test execution. Functional test automation has existedfor more than a decade and is in wide usage.
The level of maturity in functional test automationvaries widely across industries. Technology companies lead the pack in terms of test automation adoption. Tech companies and most retail players active in the e-commerce space have fully automated regression testing, and their functional automation is around 90 percent. Banking and financial services organizations and health care industry are moving aggressively to catch up now.
And as the business stakeholders relentlessly push for more optimization, these organizations are increasingly looking for options to take automation beyond the traditional sense and make the software development process truly frictionless. The question is, can we automate other areas in the development life cycle such as test design? What about release automation? Test data and test environment management automation? Requirements management automation? These are the new avenues for automation, and the implications are significant.
Speeding Time to Market/Time to Value
The potential lies in frictionless automation that expands beyond functional test automation. The promise is much faster time to market as well as reduced cost and improved quality. Being able to catch a defect earlier in the software development lifecycle—at the design stage rather than at execution, for example—greatly reduces the cost to fix it.
So, how can you determine if your organization is mature enough to begin its journey to frictionless testing? There are a few core enabling activities that should be in place before you seriously consider frictionless automation:
1. Automation of your functional test environment. Your level of regression automation should be close to 90 percent.
2. Access to test data and the test environment. Security and availability of test data andthe test environment are key levers.
3. Established processes and tools that ensure the effectiveness of design, development and release management activities.
4. An effective process for requirements identification, validation and management.
Having established the foundation, the organization is now ready incorporate elements of frictionless automation. An example is automating hardware and service virtualization to enable availability of virtual environments and data. This allows one to treat systems as de-coupled entities and test them individually, and thus earlier, in the lifecycle. New avenues for frictionless automation are continuously opening up. Autonomic computing has now enabled few organizations to leverage customer behavior and past defect history analytics to prioritize test schedules, saving time and effort in the process.
Huge Potential Benefits
Traditionally, most organizations’ cost of testing as a percentage of their total development and testing effort ranges from 16 to 20 percent. Traditional automation combined with mature processesbringsthis down by another 4 percent. An effective implementation of frictionless automation will allow the organization within reach of a very attractive single-digit cost of testing, thus making it an increasingly attractive option to the CIO who is faced with a tightening budget.
Frictionless automation can immediately aid the Quality Assurance group, which has to justify its spendingwithout reducing quality rates. Everyone is looking to cut costs while sustaining and improving quality. Frictionless automation holds much promise in this regard.
One of the potential benefits from frictionless automation is the increased focus on outcomes. The optimization activities are geared more toward reducing time and cost expenditure without compromising current levels of quality. This also opens up the possibility of shifting to a managed services model of operation as the maturity levels improve. It becomes possible to pay a services provider for outcomes as opposed to effort. This brings further control over cost for the organization while allowing the team to focus on its core competency areas. We are also beginning to see on-demand models in the market driving elements of frictionless automation.
Frictionless testing is an ocean that has to be crossed.However, it is critical that organizations do so in a planned manner. Be sure to learn to swim and have a lifeboat as backup. It’s easy to drown out there.