Thursday 21 April 2016

Adaptive Automation Part 1 - What is adaptive automation?

If you have found your way to this blog you are likely heard some chatter about something called adaptive automation and are wanting to find out more information. Or perhaps your browser has been maliciously hijacked by malware that I embedded into your machine in order to increase traffic to this page. Either way, this series of posts titled Adaptive Automation will explore the concepts, implementations and speculations that form the heart of the idea.

The project began with a discussion between three friends around the lack of advancement in automation technologies. The discussion started with: Rajesh Mathur, a passionate test manager with a knack for inspiration and innovation; a research scientist specialised in machine learning, with a wealth of knowledge and generosity, but who has requested to remain nameless; and myself, an automation engineer fed up with inefficiencies of automation scripts and not satisfied with accepting the status quo.

The question that sparked the start of the adaptive automation project was "What can artificial intelligence and machine learning do to increase the effectiveness of test automation". Many more discussions, questions, research and interviews followed and several months later the result of our efforts culminated in an academic paper; Adaptive Automation: Leveraging Machine Learning to Support Uninterrupted Automated Testing of Software Applications

This paper was the first time the term adaptive automation was used to describe a series of techniques designed to improve the robustness, reduce the maintenance and reduce the effort of designing tests. The techniques outlined in this paper have since have evolved, matured and become better defined, however the goals outlined in this approach are still as relevant as ever.



Throughout this series of posts we will explore the various techniques that we have designed to help us reach these goals. Some of these techniques have been implemented and have already improved the state of automation at several organisations. Other techniques are currently being experimented with and improved on, while yet others are currently only concepts that we are inspiring towards at a future date.

I hope that you find these articles useful in your own quest for improving software quality, whether it is through implementing these same techniques in your workplace, or simply inspiring you towards your own fantastic innovative ideas. Please feel free to leave any feedback you have, and to connect with me on LinkedIn if you wish to discuss in further detail.