Sometimes, people ask me how to make a start in Test Automation, or as you might correctly hear it called automated checks. While there is no one answer, because of course it depends, I can pose some questions for you to ask yourself and point you to some great resources, so lets goooo!
Photo by Tara Winstead: https://www.pexels.com/photo/robot-pointing-on-a-wall-8386440/
No, but yes, well it depends!
There are many tools that exist that do not require explicit programming language knowledge to build automation. Most of these tools do benefit from knowledge of how control flow and conditionswork, even if they don’t need you to understand the syntax for a language.
Concepts like if and else statements and loops are pretty much unavoidable, and if you want to automate web pages you’re going to need some idea about locators, and it wouldn’t hurt to understand the Document Object Model (DOM).
Learning to code can also bring a bunch of other benefits, like better understanding the software you’re testing and being able to have a different level of conversation with developers. So while learning to code is not a requirement for being a Tester or automating checks, I highly recommend giving it a go.
If you’re already working in Software Testing, but haven’t yet written any automation and want to make a start, there are a few questions to ask yourself:
- Are you looking to skill up to add automation as part of your current role at your current employer?
- Are you looking to take on a new role, at your current employer or elsewhere?
- Do you already know how to code, and are simply looking to gain experience in new tool or framework to start your journey?
Of course, as well as your desire, you will need the opportunities, if you don’t already know what is available with your current employer it might be worth finding out by asking around.
If you’ve never written code, then instead of learning test automation right off the bat, you might want to pick a language and learn the fundamentals first. There are many free, and paid ways to learn how to code.
Some great places to start:
Finally, if you have the opportunity to pair with a developer or existing test automation engineer, take it! If you don’t already have this opportunity, seek it out. Learning by doing, with the help of others is super valuable and will speed up your learning no end.
There is no need to limit your use of automation and tools to a suite of automated checks that you might typically consider test automation. In fact if you do, you are probably doing automation and testing a disservice.
There are multiple proponents of using code and tools to support exploratory testing in different ways, one of them who I am lucky enough to work with presently is James Thomas. You can learn more about how James Explores with Automation.
And of course, there is Mark Winteringham and Richard Bradshaw who coined the term Automation in Testing, and have produced fantastic courses, workshops and tools for learning how to get the best out of Automation, well beyond automated checks.
While I can totally understand why you would want a general answer as to what language to use, there isn’t one definitive answer.
So, I will ask you to consider the following:
- What do you want to learn first? If you haven’t got any experience in any language, go spend some time looking at what is available and if any of them make good sense to you. If you already know a bit of something , start there!
- Are you looking to grow yourself within your current role in your current job? If so, speak to your team, see what would be useful for you to learn next
- If you’re looking to grow skills to pick up a new role, look at what is popular in your target area of the world. The popularity of one language over another might be different for the places you are considering working for. Try and find people working in the geographical location you’re targeting, recruiters or hiring managers, and ask them.
- Careers are long, if you spend time learning the fundamentals of coding, testing, and automating checks using code then you can apply much of those skills across multiple tools and languages. Yes, there is a learning curve to picking up a new thing, but it gets easier with every new one you try.
If you don’t have a background in computer science, you may also get a kick out of the Base.cs podcast. In each episode the co-hosts Vaidehi Joshi and Saron Yitbarek introduce and discuss a topic in an approachable way, with great anecdotes, many of them food related and you know I dig that!
The Restful Booker is a great practice app for exploration or automation. It’s a REST API and a frontend for a functional Bed & Breakfast, Shady Meadows.
The Evil Tester, Alan Richardson has created a series of API Challenges that help you explore many of the aspects ot APIs that you might want to test, and therefore automate. While this isn’t strictly an automation challenge, you could turn it into one by writing code to beat the challenge! I’ve started to give this a go myself, but it’s work in progress.
Want more? There is a great **post on The Club **, where loads of people have shared products and sites they have used to practice testing on. You can even go add your own!
Finally, It’s way better to start, then spend too much time worrying about where to start. You can also change your mind and try something else later if you don’t like where you end up! I’m looking forward to hearing how your automation journey progresses, make sure to hit me up on Twitter, @FullsnackTester, and let me know!