Карьера в IT: должность QA Automation engineer
Данная статья — шестая из серии «Карьера в 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
19 коментарів
Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.