Кто такой автоматизатор
Перейти к содержимому

Кто такой автоматизатор

  • автор:

Кто такой автоматизатор

Company

Получить профессию тестировщик автоматизатор в СПб | «Be-Tester»

Обучиться специальности тестировщик автоматизатор
у лучших преподавателей в школе «Be-Tester». Только
у нас поддержка практикующих преподавателей 24/7!
+7(981) 786-45-60

Чем занимается тестировщик автоматизатор

Специальность тестировщика-автоматизатора возникла на стыке ручного тестирования и программирования. QA automation engineer так же, как
и специалист ручного тестирования, работает над качеством конечного
IT-продукта, однако он использует код для создания автоматических тестов.

Ежедневная обязанность автоматического тестировщика ー создание автоскриптов, которые будут проверять устойчивость и корректность работы ПО на основании тест-кейсов ручного тестировщика. Ценность таких специалистов в том, что они помогают существенно сэкономить время
на проверку, быстрее выпустить продукт и заработать.

Ручное тестирование предполагает больше творчества и логического мышления, нестандартного взгляда на привычные вещи. На этапе, когда мануальщик определяет повторяющиеся действия, которые необходимо проверять по единому алгоритму, эта часть работы передается
тестировщику-автоматизатору для написания кода для автопроверки.

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

Получить профессию QA automation engineer можно с нуля либо после окончания курса по ручному тестированию. Чаще всего для написания кода используются популярные языки программирования, такие как Java и Python. Школа тестировщиков «Be tester» проводит обучение по специальности тестировщика-автоматизатора онлайн. Наши практикующие преподаватели проводят только живые уроки и оказывают поддержку учеников 24/7. Записаться на курсы можно на нашем сайте или по телефону
в СПб +7(981) 786-45-60.

Карьера в 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 таинствами своей профессии. Приведенные в статье цитаты взяты из их рассказов.

Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

Какие вопросы ожидать на позицию автоматизатора и причем тут сортировка?

Меня зовут Виталий Котов. В этой статье решил рассказать о том, что и почему чаще всего спрашивают на позицию автоматизатора в тестировании. Я постараюсь рассказать о как можно большем количестве направлений. При этом не буду придумывать конкретные вопросы — их может быть великое множество. Своей задачей я вижу только наметить области, чтобы у вас осталась своего рода карта знаний.

Само собой, если вы проходите собеседование на позицию junior, от вас не будут требовать опыта и знаний по всем вопросам. Будет круто, если вы разбираетесь хотя бы в ~30% всего этого. От позиции middle я бы ожидал примерно ~50%-60% знаний перечисленных мною тем. Ну и далее по восходящей.

Кто такой автоматизатор?

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

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

  1. Разбираться в тестировании. Иначе не получится писать хорошие тесты, проверяющие именно то, что необходимо.
  2. Уметь программировать. Конечно, на первый взгляд тесты кажутся очень простыми. Последовательно вызываешь методы кликов, ввода значения и так далее. Но это неплохо работает только на небольшом количестве тестов, да и то если сам продукт меняется не слишком часто и работает стабильно. Чем больше тестов и сложнее продукт, тем больше опыта в программировании потребуется от автоматизатора для эффективной работы.
  3. Знать, как развернуть необходимый софт на серверах. Читай — немного понимать в системном администрировании или девопсе. Ведь тесты чаще всего запускаются в CI-системе, привязываются к Pull Request’ам, а сам код запускается в Docker. И со всем этим надо уметь работать.

Итак, я предлагаю исходить из того, что именно по этим темам нас с вами и будут “гонять” на собеседованиях. Давайте поговорим про каждую из них подробнее и определимся с основными вопросами, к которым стоит быть готовыми.

Тестирование

Обычные вопросы по тестированию чаще всего затрагивают теорию и практику.

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

Скорее всего спросят про знание устройства самого продукта, который вы будете тестировать. Например, если вам предстоит работать с Web, надо понимать как он работает: разбираться в протоколе HTTP, знать о связке HTML / CSS / JavaScript, понимать смысл кросс-браузерного тестирования и так далее.

Для тестирования мобильных приложений надо понимать основное отличие операционных систем iOS и Android, особенности тестирования на симуляторах, эмуляторах и реальных девайсах и многое другое.

Само собой, поскольку все это нам предстоит автоматизировать, еще необходимо разбираться в стеках автоматизации. Для автоматизации тестирования Web необходимо понимать как настроить Selenium или Selenoid, как подбирать CSS или XPath-локаторы для элементов, какие браузеры выбрать для тестов.

Для мобильной автоматизации пригодится знание драйверов (Espresso или XCUITest) или опыт работы с Appium. Умение настраивать ферму девайсов или устанавливать необходимые эмуляторы и симуляторы.

Для автоматизации API необходимо знать про методы HTTP-запросов (GET, POST, PUT, DELETE и т.д.) и их отличия, коды ответа сервера и их основные форматы (JSON, XML).

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

Недавно, к слову, я писал автоматическую песочницу, имитирующую подобную задачу на собеседовании. Кому интересно, потыкать ее можно тут.

Программирование

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

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

Чаще всего причина недовольства простая — мне это не нужно для работы. И в целом это правда. Не каждый день вы будете реализовывать методы сортировки самостоятельно. Тем более для написание тестов. Тогда зачем это спрашивают?

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

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

Конечно, можно дать задачу на дом, чтобы кандидат потом прислал ссылку на репозиторий. Некоторые компании так делают, но надо понимать, что не все готовы тратить свое время на решение этих задач в свое свободное время. Из-за этого часть кандидатов тоже могут отпасть. Причем как раз тех, кто уже имеет неплохой опыт и уверенно ощущает себя на рынке. Они с большой вероятностью откажутся и пойдут общаться с той компанией, где процесс интервью проще и проходит быстрее, без “домашних заданий”.

Пусть не идеальное, но все же решение этой ситуации — дать небольшую задачку на общие темы, не связанные с автоматизацией. Таким образом можно оценить, насколько у кандидата “набита рука” на использования простых конструкций: циклов, ветвлений, методов и структур данных, таких как массивы, хеш-мапы и прочее.

Чаще всего человек, который действительно пишет много кода, справится с подобными задачами. Особенно если немного попрактикуется решать именно такие специфичные задачи. Для этого существуют такие ресурсы, как leetcode, codewars и прочие.

Обязательно стоит ожидать вопросы по ООП — что такое класс и экземпляр класса, что такое инкапсуляция, полиморфизм и наследование, какие бывают модификаторы доступа (в Java) и прочее.

Еще на собеседовании могут поспрашивать немного про паттерны программирования. Тут хорошо знать про Singleton, Factory, PageObject, PageFactory, Builder и так далее. Можно еще почитать про принципы разработки SOLID, KISS, DRY, SRP.

Девопс

Ну и заключительная часть — это работа с различным софтом и инструментами. Тут могут спросить с какой CI-системой вы чаще всего работали. На мой взгляд, самыми популярными являются Jenkins, Gitlab CI, TeamCity и Bamboo.

Помимо этого спросят про опыт работы с bash: команды cd, ls, ps, mv, cp и так далее. Просто, чтобы убедиться, что вы не растеряетесь, зайдя на какой-нибудь сервер на основе linux по ssh.

Еще могут быть вопросы по Docker — что такое образ, как запустить контейнер, как сделать маунт директории хост-машины, как собрать docker compose файл, как распространять образы между коллегами (docker registry). Примерно так.

Скорее всего попросят решить какую-нибудь задачку на SQL-запрос. Он тоже довольно популярен и с ним приходится работать, например, при тестировании серверной части: баз данных, сервисов или API.

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

Итог

Само собой, это не полный список возможных тем на собеседовании. Всегда стоит ожидать совершенно любого вопроса на самые разнообразные темы.

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

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

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

Я думаю, про это я напишу как-нибудь в следующий раз.

Ну и минутка рекламы — приходите на наши курсы для тестировщиков. На них мы рассказываем многое как из этого списка, так и в целом о тестировании. Вся информация и ссылки в профиле. 🙂

А на этом все. Спасибо за внимание.

Кто такой QA-автоматизатор?

Тестирование программного продукта – процесс, проводимый либо в ручном, либо в автоматизированном режиме. В первом и во втором случае составляется план тестирования и пишутся тест-кейсы. Разница лишь в том, что в ручном тестировании тест-кейсы выполняет человек, а в автоматическом за него это делает программа.

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

Преимущества и недостатки автоматизированного тестирования

У автоматизированного тестирования, как и у ручного, есть свои достоинства и недостатки. Вот основные из них:

Преимущества

Автоматизация тестирования может быть очень полезной:

  • Если проект большой и продолжает расти.
  • Если необходимо поддерживать несколько версий программы, и количество тестов огромное.
  • Если проекты выполнены на основе IoT (Internet of Things) или Big Data. В этом случае применение ручного тестирования всегда нерационально.
  • Если в команде много разработчиков, которые параллельно вносят изменения в код. Автоматизация тестирования снижает возможные негативные последствия этого.
Недостатки

Полный переход на автоматическое тестирование не имеет смысла, и вот почему:

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

Таким образом, применение обоих подходов с их преимуществами позволит получить лучший результат.

Обязанности инженера по автоматизированному тестированию

Типичные обязанности этого специалиста могут включать следующее:

  • Разработка сценариев тестирования.
  • Написание новых автотестов.
  • Анализ результатов тестовых прогонов.
  • Доработка сценариев тестирования.
  • Ведение документации по тестам.
  • Верификация исправленных программистами ошибок.

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

Зарплата

Опытный автоматизатор зарабатывает на рынке труда в США от 115 тысяч долларов в год.

Как мне стать автоматическим тестировщиком?

Если вы выбираете профессию QA-инженера, то мы рекомендуем вам начать с освоения ручного тестирования. Почему? Потому что любая автоматизация должна опираться на то, что вы понимаете базовые принципы и механизмы тестирования. Этому и обучают на курсах для ручных QA. Освоив базовые навыки и получив первый опыт, вы сможете углубиться в эту сферу и начать автоматизировать тестирование. Написание автотестов требует хорошей технической подготовки тестировщика и изучения базовых языков программирования, но эти знания позволят вам выбирать более сложные и интересные проекты, и к тому же получать больше денег за свою работу.

Навыки тестировщика

Для успешного карьерного роста любой профессионал должен обладать рядом soft skills, и QA не исключение в этом вопросе. Вот какими навыками должен обладать QA-автоматизатор:

  • Коммуникабельность. QA – командный игрок, поэтому коммуникация очень важна для общего результата. Он должен уметь четко и понятно описывать суть проблемы, уметь задавать правильные вопросы, и эта коммуникация ни в коем случае не должна порождать конфликты в команде.
  • Дисциплинированность. Творческий подход – это прекрасно, но не для QA. Здесь гораздо важнее строгое соответствие плану. Особенно это важно в проектах с гибкими методологиями, где этапы разработки разбиты на спринты с четкими сроками.
  • Обучаемость. Знания в мире ИТ устаревают очень быстро. Здесь 1 год – большой срок. Поэтому хороший QA-специалист должен постоянно осваивать новые технологии и новые подходы, которые появляются чуть ли не каждый день.

Какими бы крутыми не были ваши профессиональные знания, без хороших soft skills вы не сможете сделать свою карьеру.

А что дальше?

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

Горизонтальная карьера связана с постоянным улучшением навыков в профессиональной сфере и расширением круга своих знаний – новые технологии, новые подходы, и т.д.

Вертикальная карьера – это продвижение по иерархии компании от линейного менеджера до топ-менеджера. Для успешной вертикальной карьеры нужно работать в крупной компании, где такой рост в принципе возможен.

Многие выбирают третий путь – нечто среднее, когда с одной стороны вы получаете руководящие должности, а с другой – расширяете свои профессиональные знания. Какой путь выбрать – решение за вами!

Анна Мороз

Анна Мороз

Автор, редактор, контент-менеджер.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *