Карьера в IT: должность QA Automation engineer

Robot image via Shutterstock.

Данная статья — шестая из серии «Карьера в IT». Здесь мы обсудим профессию, возникшую на стыке программирования и обеспечения качества — тестировщик-автоматизатор.

QA Automation engineer — это специалист по обеспечению качества продукта, который использует программные средства для создания тестов и проверки результатов выполнения.

По данным ДОУ, среднему украинскому QA-автоматизатору 26 лет. Он имеет опыт работы от полугода (джуниор) до 5 лет (сеньор) и получает зарплату $600-2700.

Задачи и обязанности

Основная задача QA-автоматизатора — создавать автоматические скрипты, которые будут проверять работу программы на основании тест-кейсов, написанных QA-мануальщиками. Это помогает сократить время тестирования и упростить его процесс.

QA Automation engineer обладает навыками программиста и логикой тестировщика одновременно:
— Как и QA-инженеры или тестировщики, QA-автоматизатор мониторит качество продукта на различных этапах его разработки, тестирования и эксплуатации.
— Как и программисты, QA-автоматизатор занимается разработкой, только он создает продукт, чтобы проверить написанное программистами.

Другими словами, программисты — создают, тестировщики — ломают, а автоматизаторы — создают, чтобы сломать.

«Типичный Automation QA engineer — лентяй. Он сделает все для того, чтобы не делать одно и то же несколько раз».

В роли заказчика для автоматизатора выступает тестировщик, который тестирует вручную. Он просит автоматизировать тот или иной кусок функциональности, чтобы больше не повторять одни и те же рутинные действия и освободить время на анализ и придумывание нетривиальных сценариев. Таким образом, автоматизатор создает продукт, конечным пользователем которого будет он сам и его команда.

Автоматизация целесообразна только в том случае, если время и ресурсы, затраченные на ее реализацию и поддержку, не превышают предполагаемых затрат времени и ресурсов, необходимых для ручного тестирования той же функциональности.

«В теории все, что тестируется вручную, можно автоматизировать. Однако это не всегда нужно. Автоматизировать нужно в первую очередь рутинные действия, которые выполняются из релиза в релиз и занимают много времени».

В круг обязанностей QA Automation инженера входит:
— Анализ требований;
— Разработка позитивных/негативных/граничных сценариев;
— Описание автоматизационных тест-кейсов;
— Разработка фреймворка для автоматизации продукта;
— Настройка тестовых окружений;
— Подготовка тестовых данных;
— Анализ тестового покрытия;
— Написание автотестов, тестовых скриптов;
— Интеграция с системами автоматического запуска или Continuos Integration;
— Выполнение автоматических тестов;
— Поддержка работоспособности уже написанных тестов;
— Написание документации;
— Анализ результатов прогонов авто-тестов;
— Баг-репортинг, общие отчеты о тестировании.

«Мы с коллегами регулярно проверяем код, написанный друг другом. Очень крутая и полезная практика. Куча потенциальных проблем отсеивается еще до коммита».

В обязанности некоторых автоматизаторов также входит и ручное тестирование.

Типичный рабочий день QA Automation инженера включает в себя:
— Написание новых автотестов;
— Обновление поломанных/ устаревших автотестов;
— Прогон автотестов;
— Анализ результатов тестовых прогонов;
— Документирование ошибок;
— Верификация исправленных программистами ошибок;
— Ревью кода;
— Настройка тестового окружения;
— Стенд-ап митинги.

«Я трачу примерно 4 часа рабочего времени на просмотр обучающих роликов или чтение книг. И как по мне, это одна из важных задач автоматизатора».

«У меня есть правило: „Авто-тесты всегда рабочие!“. Если я пришла на работу, а тесты сфейлились, я сразу разбираюсь с причиной. Мне кажется, что если я перестану так делать, и тесты неделями будут „красными“, то все перестанут на них смотреть».

Достоинства и недостатки

Главным достоинством своей профессии автоматизаторы называют разнообразие выполняемой работы, которая объединяет аналитику, тестирование, программирование и администрирование.

«Автоматизация позволяет фокусироваться на решении трудных задач, аналитике, переложив монотонные задачи на плечи компьютера. Минимум рутины — максимум челенджа! Всегда любил искать недостатки в системе».

В отличие от обычного тестирования, работа автоматизаторов не завязана на однообразном «кликанье» и дает больше возможностей для творчества.

QA Automation инженерам нравится немедленно видеть результаты своего труда, а также придумывать новые подходы, технологии и инструменты.

«Я по жизни ужасный перфекционист, потому выбрал тестирование. Имею логический состав ума, потому ушел в автоматизацию».

Привлекают и зарплаты. Оклады автоматизаторов больше, чем у мануальных тестировщиков, и сравнимы со ставками разработчиков. К тому же, рынок труда насыщен QA Automation инженерамы в разы меньше, чем программистами, поэтому толковые автоматизаторы чувствуют себя уверенно.

Еще одно преимущество специальности — возможность работать с различными технологиями и языками программирования, стимул изучать новое.

«Моя работа привлекает меня тем, что технологии всегда на шаг впереди, а ты догоняешь. Узнаёшь всё больше и больше, а „за горизонтом“ в n раз больше».

«Постоянно появляются новые инструменты и подходы в разработке. Вчера писал автотесты на Java, сегодня автоматизируешь iOS на JavaScript, завтра делаешь нагрузочные тесты на С».

Наиболее упоминаемый недостаток заключается в том, что на некоторых проектах работа сводится к однообразному запуску тестов без разработки новых.

«В любой работе есть борьба с рутиной. Чинить одни и те же тесты может надоесть. Каждый борется с этим, как может. Мы вот придумали фреймворк, на котором писать тесты весело: даём своим роботам имена, генерируем данные пассажиров по смешным алгоритмам, и прочее».

Многопрофильность QA Automation инженера тоже не всегда кстати:

«Автоматизатору не дают забыть о „мануальном“ прошлом, и иногда навешивают разные отвлекающие от кода задачи. То же самое с настройкой серверов и прочей „админской“ работой. Наличие у автоматизатора разнообразных навыков становится для менеджеров поводом неэффективно использовать ресурсы».

Также многим автоматизатором не нравится, что менеджеры и девелоперы относятся к ним, «как к тестировщикам». В то же время:

«Многие воспринимают автоматизацию как магию, способную решить все проблемы. И очень трудно объяснить, что это просто один из инструментов обеспечения качества».

«Автоматизатор — это разработчик-тестеровщик, поэтому его всегда зовут на все Dev митинги и на все QA митинги. Это занимает очень много времени».

Как стать QA-автоматизатором и куда идти дальше?

Чтобы стать QA Automation инженером, необходимо освоить:
— Ручное тестирование (в том числе тестовые фреймворки) — для понимания, зачем нужен тот или иной тест;
— QA — для понимания, какие тесты нужны для покрытия того или иного элемента функциональности;
— Программирование — для непосредственного написания автотестов.

Обязательно понимать и уметь разрабатывать алгоритмы, знать процессы разработки ПО и его тестирования.

«Набор минимум: иметь базовые знания ООП языков (Java или C#), HTML/XML/XPath, понимать теорию тестирования. Для web нужно знать Selenium Web Driver. Также необходимо быть знакомым с SQL (уметь писать запросы к БД). Желательно иметь представление о Continuous Integration, JUnit/TestNG/NUnit».

«Нужно понимать, что такое граничные значения и классы эквивалентности, чтобы не пропустить ничего важного, но и не писать лишнего. Дружба с различными операционными системами также никому еще не навредила».

Поэтому большинство автоматизаторов — это бывшие QA-специалисты или тестировщики, которые дополнительно выучили программирование. Также будет плюсом опыт работы системным администратором или support-инженером.

«Карьерный путь зависит от конкретного человека: это может быть мануальщик, который хочет программировать, либо девелопер, который решил наконец-то протестировать свой код».

Что касается личностных качеств, необходимо:
— иметь развитое логическое и абстрактное мышление;
— уметь анализировать;
— любить сложные задачи;
— быть трудолюбивым и внимательным к деталям;
— уметь работать в команде;
— быстро осваивать новую информацию.

Пути развития QA Automation инженера:

1. Расти именно как специалист-автоматизатор: Junior Automation QA Engineer —> Middle Automation QA Engineer —> Senior Automation QA Engineer —> Automation QA Lead;

2. Расти по технической линии: стать Test Architect или переквалифицироваться в программисты;

3. Развиваться как управленец: Automation QA Manager —> Project Manager (с перспективами на Program Manager и/или CTO).

«Есть люди, которым это очень нравится, они работают по 8 лет. Другие уходят в разработку, где требования к знаниям уже выше. К тому же, после такой работы стать девелопером проще, чем если начинать с нуля. Как правило, в мануальное тестирование автоматизаторы не возвращаются».


P.S. Спасибо за помощь в написании статьи 15 украинским QA и Test Automation инженерам, которые поделились с DOU таинствами своей профессии. Приведенные в статье цитаты взяты из их рассказов.



Остальные статьи цикла:
Карьера в IT: должность Team Lead
Карьера в IT: должность Software Architect
Карьера в IT: должность Project Manager
Карьера в IT: должность CTO
Карьера в IT: должность QA Automation engineer
Карьера в IT: должность Бизнес-аналитик
Карьера в IT: должность Системный администратор
Карьера в IT: должность Data Scientist / Machine Learning Engineer
Карьера в IT: должность Technical Writer
Карьера в IT: должность Delivery Manager
Карьера в IT: должность Software Product Manager

  • Популярное

23 комментария

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.

Насчет «роста» в development. Это может актуально на джуновских позициях, но ИМХО чем ближе к senior-позициям, тем более стирается разница в техническом смысле между автоматизаторами. Разве что я бы сказал, что у senior-автоматизаторов более широкие знания, а у senior-developer’ов более глубокие.

Понравилась выдержка —

«Я по жизни ужасный перфекционист, потому выбрал тестирование. Имею логический состав ума, потому ушел в автоматизацию»
... От себя добавлю — можно автоматизировать любой процесс если сильно захотеть )

Добрый день.

Прошу подсказать, с чего вообще начать для работы тестировщиком, имея опыт работы в Help Desk более 10 лет?
Навыков программировании нет, знания английского (базовый школьный).
Я так понимаю 100% нужно учить английский, после языки программирования?

а программирование-то зачем? джуну клацать юай дадут, только вот не факт что работу получится найти джуном: тебе за 35 должно быть, раз больше 10 лет уже отработал, а многие компании такими джунами брезгуют

Мне 32 года. После 30 не реально уже идти в программирование или хотя бы в администрирование по SQL или Oracle?

с такими убеждениями уже поздно работу менять, пора о душе думать

А существует ли интернатура на вакансию автоматизатора? Сейчас прохожу курсы автоматизации тестирования, Дело в том что у меня нет опыта работы тестером вообще. Тем не менее теорию тестирования знаю хорошо , и хотелось бы сразу прыгнуть на автоматизатора.

www.epam-group.ru/...ne/kiev.html#training-125 там зараз якраз проходить відбір, проходиш курси, після успішного проходження курсів рекомендація в лабораторію (інтернатуру)

Спасибо. Записался...

Спасибо, так подробно рассказано о такой важной профессии!

Большое спасибо за полезную статью! Кратко и информативно. Стать qa автоматизатором — моя цель, поэтому с интересом вникаю в подобную информацию.

Что касается ветки развития, то с уровня Middle Automation QA Engineer, некоторые специалиста могут начинать пробовать себя в качестве Performance Analyst’a. Зачастую в эту ветку будут идти те автоматизаторы, у которых задачи в проектах стоят из области Performance testing.

«Автоматизация целесообразна только в том случае, если время и ресурсы, затраченные на ее реализацию и поддержку, не превышают предполагаемых затрат времени и ресурсов, необходимых для ручного тестирования той же функциональности.»

Не обязательно так. Компании может быть важно иметь частые стабильные релизы. В этом случае автоматизация может быть дороже ручного тестирования, но все же лучшей тактикой. Тестирование проходит быстрее, новые фичи выкатываются быстрее. В условиях рынка это может быть критично.

так все правильно:
на частые стабильные релизы уйдет больше мануальных времени и ресурсов
об этом и речь.

Я говорю о том, что частые и стабильные могут быть только при наличии автоматизированного тестирования. Иначе не частые или не подтвержденно стабильные. Т.е. автоматизация может быть выгодна не только с точки зрения экономии.

Да. А я о том, что можно нанять толпу мануальных тестировщиков, но это будет «невыгодно с точки зрения экономии». Хотя в аутсорсинге и такое возможно. :)

Можно бы еще возразить, но уговорили

А що можете порадити із літератури на тему автоматизованого тестування? По Selenium WebDriver вже почитую, але хотілося б щось загальне на тему автоматизації.
Дякую

Java и другое:
www.youtube.com/...0276A0A62BDEF06
www.tutorialspoint.com/index.htm

Selenium:
www.youtube.com/...h?v=IPraAY78jGY
У Михаила поляруша 6 уроков на тему webdriver-a. Это первый. Там тебе и про локаторы расскажут, и про PageObject.

SQL:
www.w3schools.com/...sql/default.asp

Репозитории:
www.tutorialspoint.com/git/index.htm
www.tutorialspoint.com/svn/index.htm

Нагрузочное тестирование:
www.tutorialspoint.com/...meter/index.htm
www.qaclub-nn.org/?p=1666 (Книжка)

CI Jenkins:
На ютубе много уроков. Один из них по установке:
www.youtube.com/...h?v=lTQGi5jzjvo

Про тест кейсы написаные мануальщиками повесселило... В идеале вообще кейсы пишутся тест дизайнерами, а эту роль в проекте/команде могут выполнять уже совершенно разные люди, даже сам автоматизатор. Зачастую даже чистые автоматизаторы никому не нужны. Любой QA должен понимать что он делает и зачем, а не тупо следовать сценариям, написаным другим человеком.

Хорошая статья. Спасибо.

QA Automation engineer — это специалист по обеспечению качества продукта, который использует программные средства для выполнения тестов и проверки результатов выполнения.
Это определение подходит и мануальному тестировщику.
Автоматизатор либо использует эти программные средства для создания тестов, либо создает сами средства.

логично, спасибо. сейчас подправлю.

Подписаться на комментарии