It’s quite staggering to think about just how much testing needs to be done across the world on a daily basis. It’s a natural consequence of the overwhelming pace of technological development, born of unprecedented scale and complexity — just consider how sophisticated the average smartphone is relative to a comparable item of just a decade ago, and how hard it is to get things done these days without powerful software tools.
This has given rise to the automated testing industry: the ongoing pursuit of using yet more software to make the design and implementation of testing procedures as easy and efficient as possible. Today, if you’re preparing a customer-facing program for release, you don’t need to manually run through every last element — you can use a cloud service to simulate customer actions and rapidly get the data necessary to make final changes.
But a lot of automated testing is still built from scratch, with sequences set out and only repeated rote with any decent speed. Robotics greatly expand the possibilities. Essentially, they can generate and execute overarching macros regardless of the system. How is this going to change the field? Let’s take a look at the broader impact robotics are likely to have:
They’ll make it easier to operate across systems
Disparate pieces of software typically rely on APIs to communicate. Essentially, they translate each program’s language into a common language that can be easily used by other programs. This is important for testing because many everyday procedures in the modern business world rely on APIs for multiple applications being used in combination.
But having to mess around with APIs isn’t ideal. It requires you to connect your testing tool to each and every program that plays a role in the process you’re trying to record — if it can’t connect to even one of them, it will leave a gaping hole in the chain that will almost certainly prevent it from serving the desired role.
A robotic testing setup, however, can imitate how a human interacts with software, using GUIs (not seeing them, as such, but still being able to navigate them) to execute actions. This means that any program is on the table, regardless of the presence or quality of an API — which means it will be so much easier to test hyper-complex processes.
They’ll introduce NLP-parsed test creation
An alternative title for this point could be “They’ll make testing tools intelligent”, but that’s a contentious claim, so I prefer this one. This is likely to be the most impactful change overall. Testing procedures currently need to be established with meticulous attention to detail, because programs aren’t capable of simulating how humans assess things — but progress marches on.
Using machine learning, it will (sooner or later) be possible for a testing program to take a set brief and generate an appropriate testing process without anyone needing to get manually involved. For instance, you could issue the command of “Check that the customer registration form is functioning correctly” and see the utility work from there. There may be some pseudo-creative elements, but for the most part, it will about drawing from a library of preset testing routines and adapting them to suit.
NLP (natural language processing), of course, is necessary for the very first step: gleaning from the brief (and the context) what the purpose of a particular test is, and what specific elements need to be tested. There will likely come a time when someone can tell their voice assistant to check a particular system, and everything following that will be handled for them — this is already a common feature in industries from ecommerce (Shopify’s ecommerce suite has the Kit assistant) to fintech (Capital One’s banking service has the Eno assistant).
They’ll destroy some jobs, but create others
As nice as it is in some ways to envision this industry of hyper-convenience, it’s also worrying for some, because they imagine the automation wave as more of a cudgel that will beat countless job types into obsolescence. Admittedly, it’s entirely true that automation testing will make some jobs redundant (a product quality tester can’t realistically rival the efficiency and reliability of an automated testing service), but it will also create jobs.
Why? Because automated systems can (and do) go wrong. Updates break things. Code systems get out of date. Framework errors go unseen. And the “smarter” we make automated software, the more opaque its functionality will become. What exactly will it mean when such an application states (using an approximation of human assessment) that something is fine?
To keep this technology in line, the world needs people with skills in the AI field. It needs people who can manually test the automated testing systems — digging into them and vouching for the results they produce so that everyone down the line can feel reassured that they didn’t exclusively accept the conclusions of an algorithm.
The robotics field is affecting everything at the moment, but automated testing, in particular, stands to change hugely because it’s massively important and ripe for machine learning in a way that few other pursuits are.
In the coming years, expect to see more companies automating their testing, software becoming capable of spontaneously generating tests, and the job market moving away from unskilled labor but just as strongly towards professionals with AI-relevant skills.
Published on Java Code Geeks with permission by Arun Kulkarni, partner at our JCG program. See the original article here: How Are Robotics Going to Change the Field of Automated Testing?
Opinions expressed by Java Code Geeks contributors are their own.