How to make a start with Test Automation
Tags: testing, automation
Published: 2022-09-18 20:49:29

---
title: How to make a start with Test Automation
published: true
description: 
tags: testing, automation
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r743dfpx36k9zl40owqm.jpg
# Use a ratio of 100:42 for best results.
---

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!

## Do I need to learn to code to build automation?

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**](https://developer.mozilla.org/en-US/docs/Glossary/Control_flow) and [**conditions** ]( "https://developer.mozilla.org/en-US/docs/Glossary/Conditional")work, even if they don't need you to understand the syntax for a language.

Concepts like [**if and else statements**](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Control_flow_and_error_handling#if...else_statement) and [**loops** ](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Loops_and_iteration)are pretty much unavoidable, and if you want to automate web pages you're going to need some idea about [**locators**](https://www.selenium.dev/documentation/webdriver/elements/finders/), and it wouldn't hurt to understand the [**Document Object Model**](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Introduction) (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.

## Transition from manual to automation

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:

1. Are you looking to skill up to add automation as part of your current role at your current employer?
2. Are you looking to take on a new role, at your current employer or elsewhere?
3. 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:

* [https://www.freecodecamp.org](https://www.freecodecamp.org/ "https://www.freecodecamp.org/")
* [https://www.codecademy.com/](https://www.codecademy.com/ "https://www.codecademy.com/")
* [https://www.w3schools.com/](https://www.w3schools.com/ "https://www.w3schools.com/")

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.

## Use automation to aid testing

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**](https://www.ministryoftesting.com/dojo/series/meetups/lessons/exploring-with-automation-with-james-thomas).

A champion on using code in testing is [**Maaret Pyhäjärvi**](https://twitter.com/maaretp), just one fine example of her work is [**Exploratory Testing on Computer Interfaces (APIs)**](https://youtu.be/CjS3wVXQt34), a Keynote from API Conference in 2019.

And of course, there is [**Mark Winteringham**](https://twitter.com/2bittester) and [**Richard Bradshaw**](https://twitter.com/FriendlyTester) who coined the term [**Automation in Testing**](https://automationintesting.com/)**,** and have produced fantastic courses, workshops and tools for learning how to get the best out of Automation, well beyond automated checks.

## Best language to learn for automation

So, where to start? Java, Python, JavaScript, C#? Tell me damnit!

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:

1. 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!
2. 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
3. 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.
4. 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.

## Resources for learning

One of the absolute best resources for learning Test Automation in my experience is the [**Test Automation University**](https://testautomationu.applitools.com/)**.** Not only is it free, but the content is written by and for testers, so it's way more relevant then the odd testing focused chapter in a code course otherwise written for developers. The are even some introductions into coding on there, for example this course on [**Java Programming**](https://testautomationu.applitools.com/java-programming-course/) by [**Angie Jones**](https://twitter.com/techgirl1908) and this [**Introduction to JavaScript**](https://testautomationu.applitools.com/javascript-tutorial/) by **Mark Thompson.** There is even a whole learning path for [**Codeless automation**](https://testautomationu.applitools.com/learningpaths.html?id=codeless-path).

If you don't have a background in computer science, you may also get a kick out of the [**Base.cs podcast**](https://www.codenewbie.org/basecs). In each episode the co-hosts [**Vaidehi Joshi**](https://twitter.com/vaidehijoshi) and [**Saron Yitbarek**](https://twitter.com/saronyitbarek) introduce and discuss a topic in an approachable way, with great anecdotes, many of them food related and you know I dig that!

## Practice apps and challenges

The [**Restful Booker**](https://automationintesting.online/#/) 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,**](https://www.eviltester.com/) [**Alan Richardson**](https://twitter.com/eviltester) has created a series of [**API Challenges**](https://www.eviltester.com/page/tools/apichallenges/) 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 **](https://club.ministryoftesting.com/t/products-and-sites-to-practice-testing-on/1242), where loads of people have shared products and sites they have used to practice testing on. You can even go add your own!

## Just start

Finally, It's way better to [**start**](https://www.dowen.me.uk/Automation-Just-do-it!/), 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**](https://twitter.com/FullSnackTester), and let me know!

Originally published on my blog:
<https://www.dowen.me.uk/how-to-make-a-start-with-test-automation/>

Cover Photo by Tara Winstead: [https://www.pexels.com/photo/robot-pointing-on-a-wall-8386440/](https://www.pexels.com/photo/robot-pointing-on-a-wall-8386440/ "https://www.pexels.com/photo/robot-pointing-on-a-wall-8386440/")