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.
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:
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
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: