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.
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.
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.
1 thought on “Automation – The Tester’s Holy Grail (Part 1)”
I feel like yelling AMEN! I feel exactly the same way and I have just read an article by Dorothy Graham reiterating this also. So why then oh why am I struggling to find work?! Every 9 out of 10 tester vacancies these past years only want to know if you can automate and how many tools you know and how many frameworks you’ve built etc. Look I do want to learn to read code and even code a little to maybe automate things that will aid my testing such as data creation or running a quick smoke test after a build but I don’t want to write and maintain scripts all day long. But I now find myself needing to learn how to automate out of need and not want because it is the hot skill that everyone wants. Sometimes i wonder with all this “automate everything” mentality if testing principles aren’t going to go flying out the window…