Robotic Process Automation, or RPA, is a new implementation of an old idea. Where you have a simple, highly repetitive business task, RPA allows you to task one or more software bots to do the job instead of a human. The result is increased productivity and significant ROI. This means RPA has become a real buzzword in the world of business with CIOs and CTOs looking to leverage it in as many situations as they can.
In this blog we will look at why RPA is such a big deal, how it has been used in testing and show how Functionize is already well ahead of the curve.
What is RPA and why it’s big news
The idea of automating tasks is definitely not new. For instance, the Jacquard loom, invented over 200 years ago, allowed you to program a loom to weave intricate patterns into cloth. The Encyclopaedia Britannica defines automation as “a technology concerned with performing a process by means of programmed commands combined with automatic feedback control to ensure proper execution of the instructions.” Automation has long been used in industrial and manufacturing processes (just think of a modern car assembly line), but it is only recently that it has started to be applied to business and enterprise use cases.
Robot Process Automation allows you to use software bots to take on relatively simple, repetitive business tasks. This could be as simple as controlling mail shots to your customer base, or it could be automating jobs in an ERP system. Typically, these tasks are extremely routine, need relatively little thought and humans tend not to be very efficient at them. By contrast, a bot can complete the task quicker, more efficiently and without getting bored. Moreover, they work 24/7 and don’t need paid holidays, insurance or any other perks! The result is that 1 or 2 simple bots can replace 3 or 4 full-time low-skilled workers, giving an immediate boost to the bottom line:
“A software bot may replace three, four, five humans [and] can work 24 hours a day. The [return on investment] and value proposition around RPA is very straightforward…” Carl Eschenbach, partner at Sequoia Capital Operations LLC.
The beauty of RPA is that a relatively non-technical person can create and deploy bots using a similar approach to recording a macro in Excel or defining a task using MacOS’s Automator. But RPA isn’t only used to automate simple business tasks. Large enterprises are looking to deploy multiple RPA bots in cooperative systems in order to move toward complete automation of things like ERP systems. Increasingly RPA is also being used in other contexts too, such as automating web testing. We will discuss this next.
Using RPA for web testing
Test automation is big business. Since the invention of Selenium, people have been looking for ways to better automate the task of testing frontends for web and mobile apps. Typically, most of these solutions are scripted, with scripts for even simple tests running to hundreds of lines of code. Creating and maintaining such scripts is a complex job and requires the use of skilled Developers in Test or Test Automation Engineers.
To get around this issue, a number of test recorders like Robot Framework have been developed. These seek to convert human interactions with the frontend into a script that can then be re-run. But these recorders are also a source of issues, since the smallest change in the frontend can cause the whole test to break, often in unexpected ways. With the increasing tendency for frontends to be responsive, this issue is just getting worse and worse.
So recently, people have started to look at whether RPA can be used for some of this testing. RPA allows completely unskilled people to record simple test cases. The benefits of this over other forms of test automation are:
- Simple parallelization. RPA tools are designed to simplify the process of parallelizing tasks, spinning up multiple VMs/containers on demand and can cope with high workloads. By contrast, most test automation tools use a much more static approach such as Selenium Grid.
- Complex interactions. RPA bots are able to record any and replay any and every interaction a human might make with a system under test. This includes interactions that are more complex than most test recorders or automation systems can cope with.
- Complete flexibility. One of the huge benefits of RPA is that you can apply it on almost any system, including legacy systems. This means it can be used to automate testing where other approaches would fail.
Of course, there are drawbacks too, such as the limited availability of reporting, monitoring and feedback (unless you create customized tools, but then you are losing the benefit of simplicity!)
RPA is just one step on the road to full intelligent automation. The current generation of RPA bots are still relatively dumb. Imagine them as being like the apocryphal robot who when asked to start digging a hole will keep digging until told to stop. RPA bots apply simple artificial intelligence in order to ensure they are performing the correct functions and to assess the outcome. However, they are still pretty simplistic, requiring a human to define each task step-by-step and to define the exact limits of the task.
Where RPA can be made to scale, the returns on investment are huge. According to David Schatsky, a Managing Director at Deloitte, one bank’s experience with implementing RPA to streamline its claims process resulted in deploying 85 bots to run 13 subprocesses, handling 1.5 million requests per year. This added the equivalent of more than 200 full-time employees at approximately 30 percent of the cost of recruiting more staff. The trouble is, creating teams of bots that can handle more complex tasks is still a hard problem. In 2017, Deloitte UK did a comprehensive survey of 530 large enterprises. While 68% of companies either actively use RPA or have an RPA strategy, the scalability of RPA is poor, with only 4% of companies deploying 50 or more bots in their organization.
The next step is to use proper AI to create intelligent automation agents that are able to learn how to do complex tasks for themselves, and are able to cooperate in order to complete tasks even where there is some uncertainty. This is called Intelligent Automation, and commentators say we are on the cusp of an IA revolution that will transform business. But here at Functionize that isn’t news to us!
How Functionize is already ahead of the curve
For the past few years, Functionize has been focussed on applying AI to improve test automation. Our recent innovations have driven testing towards a new era where tests undertake their own maintenance, monitor their own performance and even write themselves. As a result, we are now at the forefront of the Intelligent Automation revolution. So let’s look at a few of our bleeding-edge technologies.
ALP test creation. Our new natural language processing system allows you to write a test case in plain English. The test is then converted to a Functionize script which is able to be run on our system. Tests created in Functionize are robust against all sorts of changes that break most other test platforms, including re-styling, button reassignment and deep-nested DOMs.
Adaptive Event Analysis. Our Adaptive Event Analysis (AEA™) engine is the first system to create self-maintaining tests, capable of complex Root Cause Analysis of test failures and offering 1-click repairs to tests that have broken. This means that where a code change causes a hard-to-locate error in the test, our system can automatically track down the problem, test the likely solutions and tell you which solution to pick.
Automated test refinement. By adding a simple tag to your code like you do for Google Analytics, our system can monitor how real users interact with your frontend. This is then used to intelligently define new test cases. This is vital to ensure proper testing of complex frontends where users may have dozens or even hundreds of routes to navigate through the system.
All these features have already put Functionize well on the way to full Intelligent Automation, but we aren’t resting on our laurels just yet! Our aim is to constantly refine and improve the way that automated testing is done through the application of AI.
As we have seen, RPA is a great example of business learning from industry. By automating routine, repetitive tasks, businesses can increase efficiency and reduce costs. However, RPA is only minimally intelligent. It’s just the first step on the path towards true Intelligent Automation. Here at Functionize, we have jumped two steps ahead, applying AI techniques to create a truly intelligent test framework that’s well on the way to being autonomous.