The benefits of test automation are well known and easy to identify:
- Performing tests faster;
- Reducing the resources involved in testing activities;
- Increased coverage of the tests performed;
- Early detection of flaws (through the automation of regression tests).
However, it is still noticeable that in most organizations a reduced level of tests is performed automatically .
The small number of successful cases of test automation initiatives still raises a strong apprehension about the return that investment in test automation can generate.
Contributing to this reality is the lack of visibility of the impact caused by functional changes to the systems in the test scripts already developed, and the consequent high maintenance effort .
It is therefore mandatory that any automation initiative be preceded by a careful planning and a solid implementation strategy.
What to automate?
A coherent automation process should encompass a set of activities prior to script development, namely the analysis of the benefits and feasibility of automation for the system being tested. This analysis should consider the following points:
- Complexity of the application: Technically complex applications may require a high effort of automation or may even not be supported by the available automation tools;
- Stability of the application: Instability will require a continued maintenance effort;
- Application lifecycle: In applications to be discontinued, automation is unlikely to be cost effective;
Once we are sure that an automation initiative is feasible for a given system, the scope of test cases candidate to automation should be analysed. This analysis will allow the identification of tests cases for which the automation will generate the higher return.
Here are some of the criteria that should be used when evaluating whether or not a test should be automated:
Repetitive Cycles (A): All tests involving the repetition of the same steps numerous times with slight variations are candidates for automation;
Time Consumers (B): Tests for business processes with a time-consuming manual execution are also generally good candidates for automation;
Stability (C): For a test to be candidate for automation, the behavior of the system (test result) must be well known and stable.
How to automate?
To succeed any test automation initiative should be based on 3 critical principles:
- Adoption of an automation framework to standardize construction, promote reuse and facilitate maintenance of test scripts;
- Ensure a regular execution of the automated tests integrated in the creation and continuous integration processes;
- Implement a metrics collection process which allows assessing the success of the automation initiative.
If the principles mentioned above are followed, the risks associated with automation initiatives will be considerably mitigated and a permanent visibility on the return on investment of these initiatives will be achieved.
Given the aforementioned benefits, automation of tests, when correctly planned, should always be part of the roadmap of any QA initiative, and assume an increasingly important role in streamlining the development process of organizations.