Automation – The Tester’s Holy Grail (Part 1)

From the archive: I wrote this in 2017, when my work focused on software testing. It appears as originally published.

A question that I seem to have been asked a lot recently is:
_
“How do I get in to automated testing?”_

I understand why people ask this but to me there are a couple of glaring problems with the question.

There is no automated testing

When people ask the question, what do they mean by the phrase “automated testing”? I believe most people mean the creation and maintenance of code which performs deterministic checks on other code. Which isn’t testing. Instead it’s a specific skill using specific tools which can help to provide feedback in specific situations.

You cannot automate your testing because if you think you can then you are taking all the skill out of testing. I’d argue that if you believe you can automate your existing testing then you probably aren’t testing anyway.

So when someone asks the question above they need to be clear about what automation is and how it fits in with the skill set of a good tester.

Automation is not essential for a tester

Hear me out as I’m aware a lot of people might not agree with this. Automation is absolutely useful…it’s very useful in a number of areas, but it isn’t essential to be able to write automation to be a good tester.

Testing is learning.
Testing is investigating.
Testing is exploring.
Testing is communication.

You can’t automate any of these (there’s a slight caveat around AI with a couple of those but let’s put that aside for now) and you certainly can’t automate the tester’s mindset and way of thinking.

These are the skills that make someone a tester. If you are a good tester then you are a good tester because of who you are, not because of the skills you have. The skills help you apply the mind set you have easily and efficiently.

However…

Having said all that, I do think if someone has the desire to learn some technologies or tools that help them with automation then it’s worthwhile them doing that. Why? Well..

Automation is a useful skill

As a tester you will have a skill set that you can use. Many different skills make up this set and each one will give you something else to use when you are trying to evaluate the quality of a product. Automation is no different in this respect. I’m not going to list the uses and advantages of automation checks themselves as plenty of places do that but as an example the best automation checks provide the team with rapid high quality feedback on new features. Automation can also be very useful when it comes to continuous integration or deployment by increasing confidence in the changes being made.

Technical understanding aids diagnosis

The better that you can read and understand the code that makes up your product, the easiest it will be for you for diagnose and potentially even fix the issues you find. To me this is really the skill that every tester should be looking to acquire. Having the ability to be able to understand and investigate at all levels of the stack will greatly help you out with investigating an issue.

It’s fun!

This is clearly a personal thing, but the ability to use automation tools alongside deployment tools is the main way I get to use my coding skills at the same time as adding value to the team. I enjoy coding and always have and I think a lot of technically minded testers are similar in this respect – automation is a great outlet for this.

What a contradiction

Yeah…it does come across a bit like that. So what’s the point I’m trying to make?

You do not need to learn automation to be a great tester, but if you want to then it will give you extra skills to use in your career.

In part 2, I’ll give my tips for actually starting to learn automation.