One of my favourite blogs (http://www.experientia.com/blog/) carried an essay/article on humans and machines by Marina Gorbis. It’s a breezy article but makes some awesome points and each point Marina made rang true for what we are seeing in the Testing world.
Image courtesy of The Software Testing Club – The Automator “Tester Type”
Marina makes a point that machines are replacing the mechanistic jobs traditionally done by humans, which is allowing humans to concentrate on critical thinking and situational response and other “thinking” activities.
This is true in the Testing world where many people utilise machines to perform the jobs machines are good at, leaving the humans to do exploratory testing, critical thinking and creative endeavours.
I believe Michael Bolton
summed this up perfectly when he made the critical distinction between Testing and Checking
. Checking could be considered the mechanistic tasks, potentially best performed by a machine. Testing is the human task best performed by a….human.
Marina lists out a number of ways in which Machines are becoming included in everyday work. I’d like to briefly list her ideas out here and draw the parallel to what I see happening in the Testing world.
So what are machines good at?
Machines are awesome at repetitive, mechanistic tasks.
Those tasks that are mechanistic and repeatable. The tasks you do daily by rote are perfect for a machine.
If you can programmatically check something, aim at getting that code written.
So if you spend your day ticking boxes, checking hyperlinks work or simply clicking through the same User Interface over and over again, then you need to think about using a machine to do this.
Machines are awesome at doing the things humans cannot do.
You want to deliver 100,000 requests to a server at one go – Use a machine.
You want to check how well a device works in sub zero temperatures whilst being bombarded with Acid Rain – use a machine. (believe me, someone I know tests products in these conditions)
If you need to “test” something but it’s impossible for a human, then a machine could aid you in achieving your goal.
Machines are awesome at analysing complex data and applying rationality
A quote from Marina’s article :
“For centuries, economists have built models based on the assumption that humans behave as rational economic actors. But thanks to advances in neuroscience and behavioral economics, we’ve come to realize that humans aren’t good at thinking through probabilities and risks and making rational economic choices based on those probabilities. While we don’t want to use pure rationality when making moral or ethical decisions, more rationality would be helpful in situations such as when making financial decisions.”
Should we start using machines to aid us in decision making?
Could we start using machines to inform our decisions about what and where to focus testing? You don’t already?
How about using Pairwise tools to filter down your combinations?
How about using machines to number crunch previous system usage or bug counts to find high risk areas to test?
How about using machines to analyse performance metrics gathered from a Load Test?
Machines are awesome at doing tasks which are too large or too small
Those pesky tasks that are really small or really large could be completed by a machine.
Filling in compliance reports with test data.
Adding all of the change sets to the release notes.
Producing reports on Test Coverage and Results.
So what are humans good at?
Humans are awesome at Thinking
A quote from Marina’s article:
“Thinking and computation are different processes, and machines are not good at thinking”
So we have these machines that can do loads of cool things, but as of today, they cannot really think. Testing is a very human process as we aim to discover more about the system under test.
In order to understand more, we need to peel back layers to discover new insights. These insights require a human to think about them. To understand them. To respond to them. To base new Tests on them.
Humans are awesome at Social and emotional intelligence
Being able to connect to your domain and subject matter, in my opinion, leads to better software testing. I’m a firm believer that a Tester can do great
testing in any domain and on any product, but I believe they will do awesome
testing when they have an interest and an emotional connection to the product or systems they are testing.
When you are emotionally connected, at any level, I believe your senses are hightended and you become more channelled and focussed. As of today, there are some emotionally aware machines, but they are still in early development.
“Feeling is as complicated as thinking, if not more so, and just as the machines we’re building aren’t thinking machines, the emotional and social robots we’re building aren’t feeling machines—at least not yet.”
Without emotions how can you understand why your end user is finding the UI so frustrating?
How can you connect and build relationships with your colleagues and stakeholders?
How can you begin to understand the contexts in which your customers work?
Do your automated tests design themselves in this way?
Do they have an awareness of feelings?
Humans are awesome at creativity, intuition, and improvisation
A quote from Marina’s article:
“……. the comparative advantage of humans is in doing things spontaneously, responding to unique circumstances of the moment, and making decisions accordingly.”
Do your automated checks respond to a new error and design a new test on the fly?
Do your automated checks create a new hypothesis on spotting a path through the system not previously taken?
Do your automated checks make use of other tools (that you hadn’t told them to use) to test a new path of interest?
Replacing the Tester
A manual tester can be replaced by a machine. They absolutely can. But that wouldn’t be a good strategy if that Tester thinks, connects emotionally and in general, uses their skills, experiences and crucially, their brain.
So you were worried about your job being replaced by a machine? You should be if you do rote checking with no thinking, but not if you do Testing.
A great quote from the essay tells a better story than anything I could cobble together with tenous links and parallels.
There hasn’t yet been a technology that has resulted in our working less. This is because machines don’t just replace what we do, they change the nature of what we do: by extending our capabilities, they set new expectations for what’s possible and create new performance standards and needs.
Although I’m not so sure that sentence is absolutely true, look at how the unemployement rate went up when robots entered the car industry, it does offer a really interesting way to frame the use of machines; as amplifiers of our skills, abilities and approaches.
But does the risk of replacing menial, rote jobs mean we shouldn’t advance the use of machines and robots in more domains, like Testing? I’ll leave that for your own judgment and feelings but it’s clear machines are empowering many to achieve new heights of Testing ability.
I’ll leave you with a great quote from the article, which I would encourage you read.
“The combination of humans partnering with machines and using superior strategies opens up new worlds for exploration.”