What is a QA Automation Engineer and how can you become one?
Which programming language is best for automation testing? Why should you change projects more often? And how do you learn a profession and pass interviews? Andriy Volovyk, a QA Automation Engineer with 10 years of experience in testing, identified the knowledge and skills necessary to become a QA Automation Engineer and build a career in IT.
In this article
What is a QA Automation Engineer?
— I graduated from the Polytechnic Institute with a degree in radio engineering. Before getting into IT, I had experience in telecommunications, sales, and as a design engineer. The desire to improve my financial situation encouraged me to change my field of work. After monitoring the job market, I became interested in testing (I heard it gets you into IT faster). I started studying, took English courses, and prepared for interviews. I didn't take any technical courses, but I had several experienced mentors. My first piece of advice is to find a mentor. Six months later, I got my first job as a manual tester.
A QA Automation Engineer (Quality Assurance Automation Engineer) is a specialist involved in the automation of software testing. They use a variety of software tools and technologies to develop test scripts, execute automated tests, and analyze the results.
What are the basic responsibilities of QA Automation Engineer?
— The tasks performed by the QA Automation Engineer depend on the project. In most cases, the work is related to web/mobile UI (User Interface), API, and database (It means a QA should have the tools and access to investigate known and to-be-discovered issues). Commonly, a business wants the UI to be covered by automated tests. These can involve: end-to-end testing scenarios, testing of the most critical features, or testing of the actions that users perform with the final product (creating items, buying something, adding to the cart, etc.).
What does an Automation Engineer do daily?
- Create automated tests based on manual test cases or requirements;
- Configure CI/CD to run tests automatically or on demand; each team member should be able to run the tests and view the results using Jenkins or GitLab;
- Constantly analyze test results; and
- Analyze product and overall test coverage.
What are some of the benefits of Automated Testing? Let’s look at two examples of the benefits they can provide:
- Case number one. We have a product with a web UI and 10 FE developers. Each developer creates separate branches. Before merging those branches into the master branch, they need to ensure that doing so won't break existing functionality. They can create a test environment (or build it locally) and run tests to get detailed reports. Or they can ask the QA Automation Engineer to do it.
- Case number two. The project is covered by automated tests that run on a schedule two or three times a day. Developers are constantly coding, and it is not realistically possible to test their work during development. A QA configures the process so that a test environment for all master branches is created every day. Once the testing is complete, the Automation Engineer receives a detailed report.
How to become a QA Automation Engineer
— I decided to become a QA Automation Engineer after two years of working as a manual tester. I found constantly writing test cases to be boring. There are more options, and the work is more varied, in automation: you are busy with the UI today, and with an API tomorrow. That is why I started watching video tutorials and writing code. I changed projects a lot during the first few months. Not because I didn't like the projects I was working on, but because I wanted to gain experience (the more experience you have on various projects, the better).
Over time, I developed the ability to see the project not as a set of tasks, but globally. I began to understand how to improve processes and to assess things like whether it is better to write UI tests or whether performance tests or integration tests would work more effectively.
I'm used to starting everything from scratch when joining a new project. I remember one project had a team of manual testers who wrote test cases. We agreed with the customer about what needed to be automated — and I started. If there were no ready-made test cases, then we discussed what exactly needed to be done, and I presented my vision and explained why various components were important. You often communicate with a business directly. You will find that clients have different work models, project scales, and budgets. Some can afford to hire a team of 20 AQA, and some can’t.
Important tips for juniors
- My advice to switchers and juniors — don't be afraid of job interviews.
- If you don’t succeed the first time — it is okay, interview questions are often repeated. You can fail 10 interviews and pass the eleventh. After all, passing interviews is also a skill. I have run numerous interviews and, let's be honest, whether you like a person or not has a lot to do with the outcome. Therefore, develop your soft skills.
- It is crucial to learn English. I know people who pay more attention to programming or testing than English, but English is no less important.
- There is no necessity to enroll in paid courses. I have heard completely opposite reviews of a single paid course from different people. Ultimately, it depends on the quality of the course, the teacher, and your motivation. Are paid courses worth it? They can show you a rough direction, but still — it takes a lot of individual hard work to succeed. And here it is worth noting that if you find yourself not liking the course or the teacher — just talk to the manager, say something. Instead of waiting for the end of the course and then complaining that something was wrong — please, talk.
- Find a mentor. This person will help you sort out terabytes of educational information, because it is difficult to do it all yourself. They can help you answer questions such as: "Am I doing everything right?" and "What should I learn next?" There are many people in IT who will agree to help you. Everyone has a friend in IT or a friend of a friend in IT. If there is really no one at all, then you can enroll in paid courses, where it is possible to find some like-minded people and teachers who can give advice.
What programming language to choose for QA Automation
— It just so happened that I learned Java and worked mostly with it. Also, some bits of TypeScript. A lot of my AQA friends use Python. If I had to choose now, I would choose Python. It is simple, constantly developing, and in demand now. You can do things more easily in Python than in Java. Each programming language is interesting in its own way.
If you happen to be offered a Python project, and you don’t know the language, don't refuse. Learn it, pay $10 for a few video courses — improve yourself. It is quite possible to do this, there are many sources nowadays.
What does the author mean by "just talk"? To whom (instructor, someone else)? Since he stresses this twice, it would be helpful to modify the language slightly so that it is clear what point he is making.
What to read
To recap, how did I get my first job as a QA? I had no special skills in automation, I just prepared well for the interview, passed it, and started working on real tasks. It was through those tasks that I became experienced. You may sit at home and do some coding endlessly, but that is not real life. Prepare for your interviews, get the real job, and improve yourself. While you are doing that, you can read more useful information on the topic here: