Should I Learn Test Automation?

When a software tester asks me “Should I learn test automation?”, my default answer is it depends.

There are some factors that need to be considered.

But generally I lean towards a yes.

Yes, I generally think software testers should learn test automation.

In this blog post, I’ll explain what “should I learn test automation?” actually means (to me) along with some factors you to consider and the reasoning around my answer.

What does “Should I learn test automation?” mean?

To understand my reasoning, you first need to understand the question I’m actually answering.

On the surface, this seems like a straight-forward question to answer.

But some of the replies to my tweet and my LinkedIn post, where I polled people on “Do you think a software tester should learn test automation?” implied otherwise.

By “learn test automation”, I meant this:

Another thing I want to highlight here is that by recommending someone learn test automation, I am not going against learning how to become a better exploratory tester; nor am I against learning how to do accessbility testing.

I don’t recommend you learn test automation instead of exploratory testing.

I recommend you learn it, in addition to.

There also seemed to be concerns about having people who can actually test.

I’m right with you there. And again, to learn test automation, you need to learn what to automate and why.

To learn what to automate and why, you first need to know how to test.

Factor 1: Do you have the time to learn test automation?

Currently unemployed

If you are currently unemployed, I think you should seriously consider learning test automation since you’ll have the time to do so.

It can be hard to know what to learn as there are so many different frameworks and tools.

In this article, How to Start a Career as a Software Tester, I mention a few to look into.

Test Automation University have courses on these for free.

To learn about what to automate and why, along with how automation can support your testing, I suggest you look into Automation in Testing.

Richard Bradshaw also did a fantastic talk on Redefining Test Automation, which you can find on YouTube.

Employed, not given company time to upskill

If you have the time and energy, I suggest you learn test automation. In my blog post, How I Learned How to Write Test Automation as a non-technical person, I briefly cover how I made sure I made time to learn.

I would prioritise learning something that would benefit your project. Even if you are not being given company time to upskill, you’ll at least (hopefully) get a chance to actually apply what you’ve learned. I think one of the most frustrating things about learning new things is not being given a chance to apply it, therefore I think you should think carefully about what can benefit your project now (or later).

Employed, given company time to upskill

This is the ideal scenario.

If you are given company time to upskill AND you have someone you can pair with and mentor you, then I think you’re set up for success.

Similar to my previous point, I still suggest you learn something that would benefit your project either now (learn the existing framework) or later (learn something that could be implemented or is looking to be implemented in the future).

Factor 2: The job market

I started testing software about ten years ago and over time I have seen more and more demand for people who can write test automation.

To be clear, this is in addition to be able to do exploratory testing (not instead of).

Check out some of the replies in this Twitter thread below. While this is focussed on the UK market, I’d like to highlight that Gabbi is a recruiter and said she noticed clients want both. Also, Richard interviewed recruiters (including Gabbi) and seemed to notice a similar trend.

If you want to learn specifically what recruiters think, check out the podcast episodes with Gabbi Trotter, Erin Donnelly and Daniel Erasmus on The Automation Curriculum podcast.

I suggest you do some research in your local job market and see what employers are looking for these days. It’s important to ensure your skills remain relevant in today’s job market.

Factor 3: Do you want to learn test automation?

This is an important question to ask yourself because you don’t want to be miserable when/as you learn someting.

If you want to learn, then do it.

If you HATE test automation, ask yourself is it how you are learning it? Can you do something about it?

Factor 4: What would benefit your project?

There could be other areas in which you should upskill, that would better benefit your project.

For example:

Reason 1: You’ll get more time to do exploratory testing

First off, test automation is an investment. At the start, there is a negative net value but at some point you get to reap the benefits and see a positive net value.

Blake Norrish explains:

“This graph shows a test that initially has a net-negative value: the initial development costs outweigh the benefits in time saved. However, the time saved eventually overcomes the initial cost as well as ongoing maintenance costs to provide positive value.”

In an agile team, it’s not sustainable to run the same regression tests over and over again."

Lisa Crispin does a great job of explaining this in this interview.

“In today’s world, a team that is not practicing continuous integration and is not automating any tests is likely to fail in the long run. They can’t do enough manual regression testing to keep up, and they never will have time for key practices like exploratory testing.”

Your time is limited, if you spend more time running tests that would’ve benefited from being automated, you’ll have less time to explore; to discover new things.

If you want to dig deeper in this area, I strongly suggest you read Maaret Pyhäjärvi’s book Contemporary Exploratory Testing.

Reason 2: You have a choice

Kim Engel does a great job of explaining this concept in her blog post.

“Let’s step back for a minute and put this another way, “Do I need to learn how to drive a car?”.

Well you could walk, or take the bus, or pay a taxi\Uber driver to drive you around. These are all valid choices. But there’s a big advantage in being able to drive, for times when driving is the best option.

So my answer is no, you don’t need to learn automation skills, but having those skills will let you make informed decisions about the most efficient way to approach each testing task, with a wider range of options available to you.”

Long story short, if you don’t know how to do test automation, then you never can choose to do it when the situation calls for it."

I’m not saying automating tests is always the answer.

But sometimes - it is.