Move from Manual to Automation Test role: guide based on real experience

Olesia
9 min readApr 10, 2022

--

Photo by hay s on Unsplash

Few words about myself

I have started to work in IT industry as a Manual Test Engineer. However, after less than one year of fully manual testing responsibilities I had a feeling that I wanted more, more than clicking the same buttons over and over again.

Of course, manual testing is not just about “clicking buttons”: it’s a process that includes analysing the business requirements and making sure that software satisfies customers needs. But during that time it seemed for me like “clicking buttons”.

I started looking into programming and built my first automation tests at home. That’s was it: something that made me feel the excitement! So my next testing roles included not only manual testing anymore but also an active contributions to building and extending automation tests.

Finally, after three years I have got an amazing opportunity where my main responsibilities required setting up many automation test frameworks from scratch and building automation test strategy to support continuous deployment. (Dreams came true!)

I have fully moved to Automation Engineer role. It wasn’t easy and I had made a lot of mistakes on my way there, I have also learned a lot.

In this article, I’ll be sharing my recommendations on ‘How to move from Manual to Automation Test role that is based on all my mistakes and what I have learned.

Who are You

This simple guide is aiming to help someone who doesn’t have any technical skills yet, who is familiar with manual testing but looking to progress as Automation Test Engineer. You might be even working as a Manual Tester but you don’t know how to start learning automation.

Step 1: Master Manual testing

- What?! But I want to do automation testing only!

Photo by Jamie Haughton on Unsplash

I know that you do! But to build good automation tests you first need to have a really good idea on What needs to be tested. Your automation tests have to bring value. It’s an expensive resource, nobody needs automation tests just for the sake of having automation tests.

Good automation tests help a development team to move faster, bring confidence in their changes, help to catch breaking bugs early.

Bad automation tests: become a problem for everyone in a team, they are a bottleneck that pulls everyone down, wastes your time and brings lots of disappointment. It is something that every developer eventually starts to ignore (and hate deep down…).

It is better to not have any automation tests than to have bad automation tests.

To know what testing scenarios you need to automate, you have to know a lot about manual testing:

  • types of tests,
  • how to decide what parts of the application are the most important to not break,
  • how to properly validate the testing result

and

  • how to avoid redundant tests. Test design technics become very handy here. Please, get to know them.

Master your manual testing skills before diving into automation.

Step 2: Prioritize learning programming over learning automation testing tools

Many manual tests make this mistake: they learn only the very basics of programming and jump straight away into learning automation testing tools.

Photo by Quino Al on Unsplash

I wasn’t an exception here: I was in a situation where I was left as the only Test Engineer in our team. Developers didn’t contribute to automation tests. I took the responsibility to build a new automation framework for end-to-end regression testing.

However, I was learning “on the go”, I didn’t have enough time: I was saving myself from hours and hours of manual testing. Later on, I realised that it was a big mistake: catching up on all my “basic programming” gaps was way harder than if I would have learned it properly in time.

There are a few main reasons why programming skills matter for Automation Test Engineers too:

  • You won’t find a perfect bug-free test automation tool. You will often have to come up with workarounds to solve your issues and keep progressing with automation testing.
  • Good automation tests require proper management of test data: preparing data for tests and cleaning up it in the end. 99% of the time, it requires involving API, dealing with Databases or other tricks: it is something that you write in the code, that test automation tools don’t provide out of the box.
  • Knowing important basics of programming like DRY and KISS principles helps to keep test automation code clean. It means that you will be able to maintain this code and your test automation will be bringing value for a long time.

Step 3: Choose your first programming language and start learning

Now, there is no one right answer to this question: “What programming language should you, as a future Automation Test Engineer, learn?”.

Honestly, I think that it doesn’t matter too much in a long run: once you know the basics of programming you can pretty quickly learn any new language. However, you ideally want to start practising building automation tests as early as possible (we will talk more about that in Step 4).

There are a few approaches that can help you to decide on the programming language:

  • If you are already working as a Manual tester there might be some automation tests built already by your teammates. You can choose to learn the language that is used for automation testing in your current job. It’s going to be so much easier for you because you will always have someone to help you and you can start writing your first automation tests really soon.
  • If you are either not working anywhere or there are no automation tests at your current job, make a research: open any popular job searching website and look for the “Automation Test Engineer” roles. Check the requirements and what programming language is mentioned the most in open roles. Then go ahead and learn it.
  • If you still don’t know: learn JavaScript. This will never be a wrong choice because JavaScript-based test automation tools are so popular nowadays. They are the best to use in many cases + JavaScript is easy to start with.

This is my personal opinion, please feel free to disagree. My first programming language was Java. Then I learned some C# and used it for automation testing. Eventually, I switched to JavaScript and TypeScript. TypeScript is the main language that I choose for automation testing.

Step 4: Build Your first Automation tests

Photo by James A. Molnar on Unsplash

Step 4a: Learn about types of automation tests

Test automation” is a very broad term. To learn about types of automation tests you need to know about Test Automation Pyramid.

Test Automation Pyramid is basic and key knowledge for every Automation Test Engineer.

However, you don’t need to become good in all types of automation tests straight away. For instance, unit tests are usually written by developers. As a Test Automation Engineer, you most likely won’t be writing any unit tests (it’s good to know about them anyway!).

I would advise starting with end-to-end automation tests.

Most companies hire Automation testers to write end-to-end tests. They are also easier to start with because you can visually see how your tests interact with application.

Step 4b: Choose test automation tool

Now, when you know some programming, it’s time to use it in practice: it’s time to learn the actual automation testing!

Obviously, there are so many test automation tools available on the market. Initially, it is very hard to pick one. Consider these points:

  1. How often this tool is mentioned in jobs requirements (yep, please do research again, it is different for every country).
  2. Available official documentation and tutorials: open the website for the particular automation tool and have a look at docs. Good official documentation matters a lot, it’s something that you will be using a lot: does it look clear enough? Are there any tutorials or tips on how to start using this tool for automation testing?
  3. How popular is the automation tool in the tech community. There are always some issues with all automation tools. Try to google about them anything and see how many results you get. Open Stack Overflow and check how many questions about this tool are there.

Step 4c: Automate at home

The best way to learn test automation is to start building automation tests!

You can build a small test project at home and a few simple automation tests. For example, my first automation tests were testing Facebook. I had a test for login and logout. I also built a test that creates a post on Facebook. But really you can test any website or application: the main idea is to practice as much as possible.

Don’t forget to create GitHub account and save your test automation project there. It will help you with looking for a job later (Step 5).

Step 5: Get Automation Test Engineer job

Now, when you have learned programming and when you have built your first automation tests, you want to start working as Automation Test Engineer as soon as possible. You will never learn as much at home as you can learn on a real-life big project.

  • In ideal scenario, if you are already working as a manual tester, go ahead and tell your manager that you want to contribute to automation testing (if there is any) or build first automation tests (if there is nothing yet). When you have invested your personal time and efforts in learning there is a huge chance that your current employer would be very happy to support you. After all: you want to bring more value to the company!
  • If you don’t have any tech job currently: start applying for Test Automation roles. This can be tricky: make sure that when you are having interviews you are 100% clear about your desire to do automation testing. Let them know that you are not willing to be a manual tester anymore.

The reality is that 90% (maybe even more…) of open Test roles mention in their job requirements automation testing skills but only a few such roles are actually automation testing roles. Most of the time you can end up being stuck in manual testing and writing very primitive automation.

Some advice about Test Automation tools that you can learn

Most of my experience is based on web automation testing and my advice regarding tools is aligned with it.

1. Playwright

This is my favourite web test automation tool! I believe that Playwright is one of the best on the market nowadays for web automation. It supports 4 programming languages, has very clear documentation and amazing maintenance. Playwright is built by Microsoft team so there are many very talented developers working every day to make Playwright better.

You can also join Playwright Slack channel and ask any questions there. Every time when I ask them anything I get the answer and help straight away.

2. Cypress

Cypress is very easy for beginners. It has simple syntax, good documentation and it is extremely popular: there are so many tutorials available on Google!

Cypress has really nice Dashboard that also makes your first test automation experience more enjoyable.

3. Selenium

Selenium is so old that everybody knows about it! However, I personally feel that it is good to at least get familiar with Selemium. Selenium was the first web driver and really all automation testing has started from Selenium. It is old but it is still good. Plus, there are millions of tutorials about Selenium available on Google and you can literally use any programming language with Selenium.

If you are stuck in automation testing

If you stuck: ask other testers to help you!

Here is a Ministry of Testing slack:

  • join it and
  • find automation channel: there are people around the world that would be happy to help you! (I am one of them by the way 😉).

I hope my article is at least a little bit helpful. Happy automation testing, enjoy your journey!

If you like my article you can support me by buying me a coffee ☕️

--

--

Olesia

Software Engineer passionate about technologies, I learn every day :)