Test automation is a top priority for today’s companies. All, or almost, are betting on this aspect to reduce the effort of carrying out manual tests, avoiding the turnover of people in the projects, motivating employees, and saving time in the commercialization of products and services. But before jumping into the automation topic, several key aspects must be considered to fulfill the goal we establish.
The first thing to do is to analyze those three important areas need to be included in any test automation process: tools, test environment, and scope; although it is not necessary to do it in this order, because they are related.
The first step is to consider which tool meets our needs. The important thing is to analyze our needs and observe the types of validation, architecture, and tools that allow us to build, manage and report the automation project. The process of selecting an automation tool for web or mobile is not the same if we are thinking of an SAP system. Therefore, in this case, it is necessary to take a more specific approach concerning technical support and tools that suit the type of system chosen.
We need software, licenses, and infrastructure, in addition to a log of executions and parameterization. Therefore, it is necessary to define the test data management strategy and the requirements for continuous testing. In many cases, it is important to keep in mind that to get these sandboxes up and running, we need a lot of data. This is an aspect that cannot be ignored.
In terms of reach, what we must evaluate is what we want to automate. The initial assessment should aim to define which business processes we are going to automate. To do this, we must identify what kind of applications we have, the repetitive tasks and what we want to automate. Likewise, we have to define at what level we will implement test automation.
With these three fundamentals well established, we can observe some additional steps, such as the identification of the pilot application, the definition of small validation steps, which must be carried out step by step to manage expectations properly, and the automation criteria, which are used to identify the stability of the application in a test state. In this sense, we have to be sure of what will be used and evaluate the application’s life cycles; if it will be used for a long time, if it is obsolete or if the test time is acceptable.
Return On Investment
Last but not least, we must look at ROI (Return On Investment), taking into account both automation costs, with the remaining costs that we will have. The important thing here is to estimate the break-even point for the development, support/maintenance effort, and the tasks that must be performed manually. We will find the balance when we reach approximately 80% profit (considering the use of automation) and 20% effort (that would be the total amount to automate 100% of the reach).
In this sense, each organization must define the levels of automation that it will implement, and its level of scales, starting from 0 that corresponds to having no automation, and gradually going through levels 1 to 4. The first level corresponds to a basic level; the second at a more productive level, where we already have a roadmap, defined objectives, and KPIs; the third with a more consolidated automation framework, in which we already work on processes and not just on applications; and a fourth, and last, more advanced, in which we have already introduced artificial intelligence. These levels give a priority reference to guide us and the ideal is to have a detailed scale of priorities. Thus, as we increase coverage by 60-80%, investment starts to decrease. This is an important aspect to consider before starting.
Ultimately, it is important to focus on the future uses of test automation, based on good market practices, as well as how to get the ROI we want to achieve and good ways to measure it.
Eduardo Amaral, Quality Management Director at Noesis
Quality Management Director at Noesis – Portuguese QM Services Market Leader, Eduardo worked as analyst/developer, project manager, program manager and service delivery manager. He has a background and certifications in several areas, including quality assurance, project/program management, process management and product management. Over the last 21+ years, Eduardo has been involved in a variety of software project development lifecycles and solutions integration, at high levels of complexity and customer experience exposure, performed in some of the major national and international companies, from different business areas – Industry, Banking, Insurance, Telco, Retail, etc.