5 Levels of Test Automation
5 Levels of Test Automation
5 Levels of
Test Automation
© 2021 Functionize, Inc. All Rights Reserved.
Automation (noun)
the technique of making an apparatus, a process, or
a system operate automatically
Automation is revolutionizing the worlds of business and IT. The world of testing is no
exception. From simple scripts to recorders, and systems that use artificial intelligence, test
automation allows testing to be done at scales that were impossible just a few years ago.
This is driving the creation of more complex applications and enabling new development
models such as CI/CD.
In this eBook we discuss how you can assess the level of automation your test tool provides,
and we introduce a new model for levels of automation in testing. Using this model will allow
you to compare automated testing solutions on a like-for-like basis.
Before the 20th Century, automation was relatively rare. Partly this was for technical
reasons (the technology was simply too basic) and partly for socio-economic reasons (labor,
both skilled and unskilled, was cheap and plentiful). But there were a few notable examples
of automation where machines were able to replace relatively skilled workers.
The Second World War saw a concerted push to improve manufacturing, and much effort
was spent on developing automated production lines, especially for armaments and
aircraft production. The war also spurred the development of programmable computers
and saw control theory become an established approach for systems design.
Automation Today
Automation has come a long way. Nowadays we have
reached the stage where factories can produce a new car
every 2 minutes, autonomous mining vehicles are allowing
coal mines to operate without the need for humans, and
electronic fabrication labs can assemble circuits from
components so small a human simply cannot handle
them.
Levels of automation
As we see, automation is nothing new. But how do we actually measure it properly?
How can you compare two systems that both claim to achieve automation? A number
of researchers have created models to assess the level of automation a given process or
system achieves. Here we will describe some of these.
Decision-based models
In their 1999 paper A Model for Types and Levels of Human Interaction with Automation,
Parasuraman, Sheridan, and Wickens identified the four major tasks that need to be
• information analysis
• action implementation
Endsley and Kaber present a model for automation based on whether these tasks are
performed by the human, the computer, or both.
Blended decision-
Human/Machine Human/Machine Human/Machine Machine
making
Automated
Human/Machine Human/Machine Machine Machine
decision-making
Supervisory
Human/Machine Machine Machine Machine
control
Similarly, in his 1980 paper, Computer Control and Human Alienation, Thomas B. Sheridan
looked at the 10 levels of automation when it comes to decision making:
1 The human considers the alternatives, makes and implements the decision.
2 The computer offers alternatives which the human may ignore in making
the decision.
3 The computer offers a restricted set of alternatives, and the human decides
which one to implement.
5 The computer offers a restricted set of alternatives and suggests one, which
it will implement if the human approves.
6 The computer makes the decision but gives the human an option to veto
the decision prior to implementation.
7 The computer makes and implements the decision but must inform the
human after.
8 The computer makes and implements the decision and informs the human
only if asked.
9 The computer makes and implements the decision and informs the human
only if it feels this is warranted.
10 The computer makes and implements the decision if it feels it should and
informs a human only if it feels this is warranted.
In both models, the process of automation involves making and acting on decisions. This is
important, since this decision-making is usually what sets humans apart from machines.
Several models look at automation from the point of view of who is in overall control of the
process. For instance, in his 1995 model, Draper defines five levels of automation:
Shared control Human control and monitoring with machine control of routine subtasks
Manual Teleoperation The human has to remain continuously in the control loop
Director/agent control Human directs the robot which uses limited intelligence to do the task
Supervisory control Human now in a supervisory role with robot performing all tasks
0 No Automation. Here the driver is responsible for all vehicle interactions and receives
no assistance from the vehicle.
1 Driver Assistance. Here the vehicle can only assist with things like cruise control and
lane keeping.
2 Partial Automation. Here the vehicle takes over more elements of steering and
acceleration/braking, but only in tightly controlled circumstances. For instance,
automated lane changing or self-parking.
3 Conditional Automation. Here the vehicle will not only control steering and
acceleration/braking, it will also monitor the environment and warn the driver if they
need to take back control. This is similar to the autopilot mode in Tesla vehicles.
4 High Automation. Here the vehicle performs most of the driving tasks itself, so long as
it stays within defined use cases like driving between two known locations. The human
driver takes no active role at all but is still able to take back control.
5 Full Automation. At this level, the vehicle performs all driving operations completely
autonomously. There is now no human driver and, indeed, there are no human-
operated controls in the vehicle.
This taxonomy has the benefit of being simple, but clearly it has a very narrow focus. While
the job of creating self-driving vehicles is undoubtedly complex, the actual action of driving
Clearly this is a very simplified model and only addresses some aspects of test automation.
Test Automation
Automation took a long time to enter the world of software
development. One of the most significant areas where
automation has made an impact is software testing. From its
creation in 2004, Selenium began to revolutionize the world
of software testing. Rather than test complex UIs manually,
Selenium offered a new approach that allowed you to script tests
and run them automatically. This transformed how UI testing was
done, and, arguably, helped drive the smartphone apps revolution.
Prior to Selenium, manual UI testing was the single most-intensive
job for any QA engineer. After Selenium, routine UI regression
testing suddenly became far easier, and testing at scale became
feasible.
Over the years we have seen increasingly complex systems that are able to perform cross-
platform testing, test at scale, and where you can record tests using UI plugins. Nowadays,
test automation systems increasingly use AI to help create, run, and analyze your tests.
Test Creation
Creating tests is one of the hardest parts of test automation. First, you have to define your
test plan, being cognizant of the limitations of the system you are using. So where in a
normal manual test plan you might say “search for XYZ”, in a plan for test automation you
need to spell this out in steps: “Locate the search box at the top right; Enter ‘XYZ’; Click
on Search”. Second, you have to take this plan and convert it into a test script. With the
original version of Selenium, you had to be a competent programmer to do this step, since
it involved hand-coding a complex script that tells the system exactly what selector to
choose at each stage, and what action to take.
Because of the complexity of doing this manually for any but the simplest of tests,
recorders were developed to help. One of the earliest of these was Selenium IDE, which
used a Firefox plugin to enable you to record the steps in a UI interaction and then
generated the correct Selenium script from this. Since then, numerous improvements have
been made, and modern test recorders are robust and produce scripts that run across
multiple platforms. These often rely on some element of AI or machine learning.
Test Execution
Automated test execution is what most people think of when they hear test automation.
Here, the system takes a test script that has been defined by a human and runs it
automatically. This may be on a single system with a given browser and OS combination.
or it may use something like Selenium Grid to test across multiple browsers and even OSes
simultaneously.
In general, people tend to think of test automation for UI testing. Firstly, that is the
problem Selenium solved and, for many people, Selenium is synonymous with test
automation. Secondly, UIs lend themselves well to automated testing. Thirdly, it is relatively
easy to create general-purpose systems for automated testing of UIs. Thus, there are a
large number of companies offering such systems.
Analyzing the results of a test is a critical step. Without this there would be little point in
actually doing the testing! Automated testing tends to do this simplistically. Generally, the
system checks that the final result of the test is as expected, either using screen shots,
or by capturing some aspect of the final state of the UI (e.g. is the correct item in the
shopping cart). In other words, tests are purely pass/fail. Some systems go further and
use screenshots to highlight to the user where the failure is. For instance, highlighting if a
button is missing. In most systems the analysis and the execution of the tests are closely
linked.
Test Maintenance
Test maintenance is an interesting case. While test plans have always needed some
element of maintenance, it was only the introduction of automated testing that made test
maintenance a significant issue. This is because with most automated tests, even minor
changes to things like page layout or button style can cause tests to fail. Suddenly, test
failures are more likely to be because of test maintenance issues than because of bugs.
Anecdotally, this sort of maintenance takes more of a test team’s time than creating new
tests.
In 2020, Gartner introduced their model for assessing test automation. Like the SAE model,
it consists of five levels (or six if you include manual testing). These levels are:
0 Manual testing
1 Assisted testing
2 Partially automated testing
3 Integrated automated testing
4 Intelligent automated testing
5 Autonomous testing
The aim of creating a new model for automation is to allow you to more accurately
understand the level of automation that your testing tools are providing. Unlike the Gartner
model, the Functionize model reflects the fact that there are multiple areas in which
automation is applied to testing. These are creation, execution & analysis, and maintenance.
As a result, our model has an additional dimension.
Testers are planned Basic tests automated, Automation scripts Tests dynamically
and run manually potentially assisted by created and manually adapt to application based on end-user
simple record and kept up-to-date based changes behaviors in production
playback tools on application changes
Our model is designed to make it easier to argue rationally about different solutions that
are on the market. We show the detailed model on the next page.
Test Execution
Automation Level Test Creation (C) Test Maintenance (M)
& Analysis (E)
Manual testing
Clearly, manual testing is always at level 1 in this model. However, manual testing remains
an essential part of any test regime. That’s because it is uniquely suitable for so-called
progression testing. That is, testing of new features or the exploratory testing needed to
establish the steps to recreate a known bug.
Selenium
Selenium exhibits different levels of automation for different aspects. For instance, most
Selenium-based test frameworks only achieve M1 for maintenance. On the other hand,
a skilled test engineer can use it to reach level C3 for test creation. Test execution for
Selenium is generally E2. However, certain test management tools and integrations allow it
Functionize
Future systems
In the near future, we are expecting to see the first systems that truly reach level 5 on at
least one of these measures. For instance, we are close to seeing systems that are able
to analyse real-life user interactions and use these to create tests without any manual
intervention. That would be the first C5 system we have seen. For test execution, we will
see systems that trigger end-to-end testing as soon as a new feature is pushed. This would
include testing the feature in production to ensure it is stable. Finally, we are on the brink
of seeing maintenance-free test automation. These systems will be similar to our Smart Fix
approach, but they will use more detailed models to allow them to test each possible fix
and reliably select the correct one. Where no fix seems to work, for instance, if a test user’s
credentials were updated, the system will still need to alert a human though.
We are confident that level 5 autonomous testing is just around the corner. At that time,
your whole team will become empowered to drive your test automation. This will result
in more robust software, faster releases, and better customer satisfaction. However, there
may be roadblocks in the way. Some of these are technical, but others are human, created
by existing testers who are afraid of what the future holds for them. But if you confront
these issues head-on you can look forward to a world where test automation becomes a
key driver for your company’s success.
Welcome to the
Future of Testing
1-800-826-5051