Designing intelligent automation frameworks
Blog: Capgemini CTO Blog
“The measure of intelligence is in the ability to change” – Albert Einstein
Test automation has been around for almost two decades now.
One of the key reasons why organizations have not been able to get the desired return on investment from automation initiatives is because most frameworks were designed to automate manual steps but were not intelligent. They were unable to react to changes, dynamically generate the resources they needed, or understand and interpret results.
This has led to significant maintenance effort, particularly in a time when software changes are extremely frequent.
Intelligence, as defined by many psychologists, is a mental capability that, involves the ability to reason, solve issues, understand and learn from experience.
Likewise, an intelligent automation framework should have the ability to learn from experience, adapt to new circumstances, and use historical knowledge to survive in a given environment. In other words, a framework that has the ability of “figuring out” what to do in any circumstance.
Mentioned below are key principles, that one should keep in mind when designing intelligent automated frameworks.
- An intelligent automated framework is intuitive. An example of this is when a developer checks the code and appropriate automated tests corresponding to the code changes are automatically run by integrating tests as part of the DevOps pipeline.
- An intelligent test automation framework is dynamic. An example of this is programmatic dynamic object recognition to handle changes in UI and adapt accordingly. Another example of this is using cognitive computing techniques to identify screen and elements dynamically and updating object repositories
- An intelligent test automation framework can generate its own environment. For example, a framework that can spin up environments at run time through machine readable definition files using tools such as Chef and Puppet
- An intelligent automation framework can prioritize. A good use case for this is a framework that can identify and execute critical test cases from an automated suite, to achieve high defect yield per test case execution using algorithms such as Random Forest algorithm.
- An intelligent automation framework relies on historical data. For example, a framework that is designed to mine production logs to generate most used scenarios using unsupervised machine learning algorithms such as clustering and feed that back into the automated execution cycle
- An intelligent automated framework can generate data at runtime. This can be achieved through data virtualization at runtime from production systems and integrating the same with the DevOps pipeline
- An intelligent automated framework can multi-task. For example a framework, that has a test harness that can intelligently balance automated test execution workload by assigning work to multiple workstations.
- An intelligent automated framework can analyze execution results at runtime. For example, a framework that uses machine learning algorithms such as linear regression algorithm to identify root causes of failure at runtime.
In summary, as organizations scale, the challenges for speed to test exponentially increase. The complex and dynamic landscape demands increased design and adoption of intelligent automation frameworks.
Download our World Quality Report to learn more about the latest trends related to Intelligent automation.