Your Career in IT: QA Automation Engineer
Your Career in IT: QA Automation Engineer
This article is the first in the “Your Career in IT” series. Here we will discuss the profession that appeared at the junction of programming and quality assurance: tester-automation engineer.
QA Automation engineer is a product quality assurance specialist, who uses software tools to create tests and verify results. An average QA Automation Engineer has work experience from six months (junior) to 5 years (senior) and receives a salary of $ 600-2700.
Tasks and Responsibilities
The main task of the QA Automation Engineer is to create automatic scripts that will test the program on the basis of test cases, written by the QA-Manual. This helps to reduce test time and simplify its process.
QA Automation engineer should have both programmer skills and tester logic at the same time:
Like QA Engineers or testers, the Automation Engineer monitors the quality of the product at various stages of its development, testing and operation.
Like software developers, QA Automation Engineer is engaged in the development, only creating a product to review what has been written by programmers.
In other words, programmers create, testers break it down, and automators create to break it down. Typical QA Automation Engineer is lazy, doing everything in order not to do the same thing several times.
QA Manual tester acts as a customer to QA Automation. He or she asks to automate one or another piece of functionality so that there is no longer a need to repeat the same routine and they can free up time for analyzing and inventing non-trivial scenarios. Thus, the automator creates a product whose end user will be himself and his team.
Automation is only advisable if the time and resources spent on its implementation and support do not exceed the estimated time and resources required for manual testing of the same functionality.
In theory, anything that is tested manually can be automated. However, this is not always necessary. First of all, automation is needed for routine actions that are performed for each release and take a lot of time.
QA Automation Engineer's responsibilities include:
Development of positive /negative/boundary scenarios;
Description of automation test cases;
Development of a framework for product automation;
Setting up test environments;
Preparation of test data;
Analysis of test coverage;
Writing autotests, test scripts;
Integration with automatic start systems or Continuous Integration;
Performing automatic tests;
Support for the performance of already written tests;
Analysis of the results of autotest runs;
Bug reporting, general test reports.
The responsibility of some QA Automations also includes manual testing.
A typical QA Automation engineer’s working day includes:
Writing new autotests;
Update broken / outdated autotests;
Analysis of the results of test runs;
Documentation of errors;
Verification of errors fixed by programmers;
Setting up the test environment;
Advantages and disadvantages
The main advantage of this profession is the diversity of work tasks, which combine analytics, testing, programming and administration tasks.
“Automation allows you to focus on solving difficult problems and analytics, by shifting monotonous tasks to the computer. Minimum routine – a maximum challenge!" – say QA Automation Engineers.
Unlike conventional testing, the work of automation is not tied to a monotonous "clicking" and provides more opportunities for creativity. QA Automation Engineers like to immediately see the results of their work, as well as come up with new approaches, technologies and tools.
“I’m a terrible perfectionist in my life, so I chose testing. I have a logical composition of mind, so I went into automation”, to quote one of the QA Automation Engineers.
Salaries are also attractive. The salaries of QA Automation Engineers are greater than that of manual testers and are comparable with the rates of developers. In addition, the labor market is far less saturated with QA Automation Engineers than software developers, so smart Automation Engineers feel confident.
Another advantage of the specialty is the ability to work with various technologies and programming languages, and the incentive to learn new things.
“My work attracts me with the fact that technology is always one step ahead, and you are catching up. You learn more and more, and it’s even more “beyond the horizon”.
The most widely mentioned drawback is that on some projects the work boils down to running tests uniformly without developing new ones.
“In any work, there is a struggle with routine. Repairing the same tests can be boring. Everyone struggles with it as best he can. We’ve come up with a framework where writing tests is fun: we give our robots names, generate passenger data using funny algorithms, and so on.”
The versatility of a QA Automation Engineer is also not always welcome:
“They don’t let the automation operator forget about the “manual” past, and sometimes they pass on various tasks that distract from coding. The same thing with setting up servers and other “admin” work. The presence of a variety of skills in the automation system becomes an occasion for managers to use resources inefficiently. ”
Also, many automation engineers do not like the fact that managers and developers treat them “like testers”. At the same time:
“Many perceive automation as the magic that can solve all problems. And it’s very difficult to explain that this is just one of the quality assurance tools.”
“Automator is a tester developer, so he is always called for all Dev meetings and for all QA meetings. It takes a lot of time. "
How to become a QA-automation and where to go next?
To become a QA Automation engineer, you must master:
Manual testing (including test frameworks) – to understand why this or that test is needed;
QA – to understand what tests are needed to cover a particular element of functionality;
Programming – for writing autotests directly.
It is imperative to understand and be able to develop algorithms, know the processes of software development and its testing.
A minimum set: have basic knowledge of OOP languages (Java or C #), HTML/XML/ XPath, understand the theory of testing. For the web, you need to know the Selenium Web Driver. You also need to be familiar with SQL (be able to write database queries). It is advisable to have an understanding of Continuous Integration, JUnit / TestNG / NUnit.
You need to understand what boundary values and equivalence classes are, so as not to miss anything important, but not to write too much. Knowledge of various operating systems also never hurt anyone.
Therefore, most automation engineers are former QA specialists or testers who have additionally learned to program. Also, experience as a system administrator or support engineer will be a plus.
The career path depends on the specific person: it can be a manual engineer who wants to program, or a developer who decided to finally test his code.
As for personal qualities, it is necessary:
to possess developed logical and abstract way of thinking;
be able to analyze;
love difficult tasks;
be hardworking and attentive to details;
be able to work in a team;
quickly learn new information.
The development paths of QA Automation Engineer can be the following:
1. Growing as an automation specialist: From Junior Automation QA Engineer -> to Middle Automation QA Engineer -> to Senior Automation QA Engineer -> to Automation QA Lead;
2. Growing along the technical line: become a Test Architect or retrain as a software developer;
3. Developing as a manager: From Automation QA Manager -> to Project Manager (with prospects of becoming Program Manager and/or CTO)