Road of change: QA Manual to Automation path

Kostiantyn Teltov
8 min readJun 25, 2022

--

A long time ago in a country far,
far away…

No. This is not Star Wars opening screen.
Long time ago in Ukraine I started my IT career as Jr. Tester(I don’t like a word ‘tester’, but it was really tester position) at one product company. The cool thing, this company was hiring people with very basic skills (English language and understanding of what is checkbox/combo-box/radio-button page and etc. Wild times.) Thanks to them I’m IT specialist.
I was working about 6th years in a two companies and became Senior Manual QA with QA Lead role (Honestly, I had management experience before I joined my first IT company).

But, I still believe my real IT carrier was started when I joined to the magic world of Tests Automation. Thanks to the one cool company in Dnipro that gave me opportunity to learn and practice inside of the company.

It passed 8th more years (14th in total). I’m already Senior QA Automation with Technical Lead role. I already educated some of my colleagues and they successfully work in a new QA roles. So, I decided to create this article for those who only wants to dive into a magic world of Automation tests. It will be my experience path with mistakes and successful steps I made. Maybe some advices/highlights.

Ready? Let’s go!!!

How to switch from Manual to Automation?

I was trying to do it a few times. But, honestly, first time I was lazy

Sounds very ordinary, but just tell yourself: “I’m Automation QA” and start hardworking.
“I have no time”, “I need to go to gym”,
“I have to meet with my friends”,
I have to spend time with my family”.

This is all true and still can exist in your life. You can always combine it based on your life priorities.

And the most important!!! Please don’t give up if you fail. Especially it happens on early stages when you don’t understand what to do and why it does not work. All we been there. Carefully continue repeat and repeat and repeat. Go to bed and then repeat next day. But please don’t throw your affords to the garbage.

So, what may be as your first step?

I have started from creation of scenarios on gherkin language(using specflow library) and developers was implementing me these steps(on C# language). The idea of such frameworks/libraries is your code is binding to some specific words and these steps can be reused. You can read more about Specflow here:https://specflow.org/

After some period of time I started to look at some simple implemented steps and repeat it by changing some part of the code. I was asking a lot of questions and I think developers hated me. <Joke>. Thanks a lot to Dmitry and Alex who helped me a lot on the start of my Automation carrier.

Nowadays, I don’t like any gherkin frameworks because you always need to support additional layer, but as a start it was really cool to me.

So, what mistakes I made?

Looking at my experience, on the first stage I realized, I did not understand the most import - How to write the code. I was just copying code, but when it got harder and didn’t have a change to resolve a problem. So, when I started to teach my colleagues, we started from very basics and only then started to discuss testing frameworks and basic test automation approaches.

I don’t have teacher/mentor, what to do?

The modern world contains a lot of free or paid courses. You can easily found it on YouTube, Udemy, Coursera, Pluralsight, LinkedIn Learning and other platforms. So, you can just enter “C# basics” or “Java basics” or “JavaScript basics” or any basics…

I’m not going to sell anything, but personally I was watching a lot of Mosh Hamdani courses on Udemy. He already has own page with courses. I as said there are a lot of resources so you can find what you need.

What programming language to choice?

Google the most commonly used programming languages and chose one of them.
I personally recommend to start from any C kind of languages like C#, JAVA. (Now, some new generation will start hate me).

There are still a lot of applications (especially back-end) created on these languages.
Anyway, you probably know the programing languages in your project. So, maybe even more rational to choice it.

How deep I should learn programming language?

It’s a very good question. On a first stage it will be enough to learn some basics (Including some basics of OOP Principles).

  • Variables and datatypes in your chosen language
  • If-else, switch statements
  • Arrays
  • How to work with arrays (loop operators like, for, foreach and etc.)
  • Basic Data Structures (as an example Lists, Dictionaries for C#)
  • Classes, methods and access modifies
  • Basic of OOP Principles (Encapsulation, Abstraction, Inheritance, Polymorphism) -this one can be difficult for the first time, so you’ll probably get back to it in the future.

I may forget for something, but you’ll probably looking for video courses and they will add some more.

Note: Really forgot. GIT. If you don’t know, you definitely need to learn a GIT commands. When you start learning code, you’ll probably create some practice project and save it to GitHub/GitLab or etc.

I know basics of programming language/s. UI or Integration tests automation?

Usually your project dictates what to do and what testing level should be covered by automation tests. Maybe you(your colleagues) decided to covered a few levels. Which is really cool. But let’s be honest, most of the Manual QA’s start from UI Automation and the most of the vacancies required this knowledge base(Sorry my colleagues, we will come to UI part too). First of all it’s easier to switch because usually you understand what to do.

So, easier to start from UI tests. Here are few options. Selenium WebDriver or some JavaScript/TypeScript framework. Personally I like new JavaScript frameworks, because I believe the future is here. But, I still recommend you to start from Selenium WebDriver with any programming language. Of course if you started to learn JS as your first language there is no reason to do it.

As usually today, there are tons of video how to automate with any testing framework. So, just google, find video on YouTube, buy course.

How to practice?

Just think about a simple scenario you want to automate e.g. Login case. Happy path.

  • Enter <correct_name> to login field
  • Enter <correct_password> to password field
  • Press login button
  • User was successfully navigated (What does it mean? Verify user appeared on first application page and this page contains some unique data)

So, how to automate it?

So, you probably have seen some of the courses and heard something about page locators.

Really? Don’t remember? Please re-watch it again.

That’s probably the most important part on the first stage. WebDriver it’s only a driver gives you possibility to communicate with a webpage. So, you need to know addresses of elements in order to communicate with them.

So, please start reading and practicing with locators.

Looks very simple just try!!! And remember, don’t give up if you failed.

Done? Great! Small step for man big step for mankind…

Next? Practice more.

Find the way how to work with other elements on the page like, check-boxes, radio-buttons, drop-down lists, tables (some tables makes me crazy even now).

Create you own GitHub project and find some site with the different page elements.

You are close to win. No. It’s only beginning of your journey…

Here I covered only UI tests with WebDriver. If you wanna try other UI testing framework or even integration tests, the approach should be the same. Watch, Learn, Practice

Next, more Advanced steps

If you already fill comfortable, it’s time to make more advanced steps.

I would recommend to learn your language more deeply. Like all the collections and data structures.

Also, you can learn some Design Pattern and SOLID principles. It will help you to build more flexible testing framework/solution.

Then it will be nice to continue with algorithms. In parallel you can resolve some practical tasks. I would recommend https://www.hackerrank.com/. Here you may find tasks with a different difficulty level and the most important it supports a lot of programming languages with a test run as verification of solution step.

Additionally, I was trying to understand how programming frameworks works inside in order to understand what developers do and what mistakes can be done. As an example I was building own applications on EntityFramework, Angular, Spring, Hibernate and etc.

Note: Here I can share my experience. On this stage we learned a lot with a small group of people. We met together once a week and all preparing some topics. Then some person was explaining, we all asking questions and resolving some problems. First we tried to resolve it on the blackboard table with pseudo-code and only then we started to write real code in our IDEA’s. For this stage, I very appreciate to my ex-colleague, Yuri, who driving and pushing us during our work in Kyiv.

Epilog

Each person has it’s own path. I cannot guarantee my path will be applicable to you or your colleagues. Here, I just tried to show my experience with both mistakes and successful steps. Hope this article will give you a courage and basic understanding in your possible journey. All I know, you should try and believe yourself!

Cheers!!!

--

--

Kostiantyn Teltov

From Ukraine with love. QA Tech Lead/SDET/QA Architect (C#, JS/TS, Java). Like to build testing processes and help people learn. Dream about making indie games