Журнал / польза

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

Практические рекомендации для новичков.

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

Какие задачи решает автоматизатор тестирования

Ручное и автоматическое тестирование — это пересекающиеся направления работы. Как правило, новую функциональность вначале проверяют вручную, а потом автоматизатор пишет под неё тесты. Он автоматизирует те действия, которые совершил бы пользователь. При следующих изменениях программы ручному тестировщику не придется заново проверять работоспособность этой функциональности — автоматизированные тесты сделают это за него.

Автоматизатор пользуется знаниями и инструментами из обоих направлений тестирования — ручного и автоматического. Он знает, как устроены процессы тестирования и понимает, автоматизация каких шагов приоритетнее. Например, при разработке приложения интернет-магазина перед каждым релизом нужно проверять критичные функциональности — добавляется ли товар в корзину, работает ли форма входа. Если в команде есть автоматизатор, то такие проверки он возьмёт на себя и сэкономит время на тестирование.

Автоматизация не может полностью заменить ручное тестирование, некоторые кейсы проверяются только вручную. Например, только руками можно проверить, что пользователю приходит СМС: мы можем автоматизировать отправку текста, но в финале всё равно нужен живой тестировщик, который получит СМС на свой номер и убедится, что всё работает правильно. С новыми функциональными возможностями вначале тоже работают ручные тестировщики — нужно убедиться, что продукт соответствует всем техническим требованиям. Когда первые тест-кейсы готовы, часть из них можно автоматизировать.

Этапы работы и инструменты

Работа строится так: автоматизатор получает задачу от ручного тестировщика или своего тимлида. Он смотрит тест-кейс и решает, можно ли автоматизировать эти шаги, и как это лучше сделать. Если нужно, то автоматизатор дорабатывает инфраструктуру, добавляет и настраивает всё необходимое, чтобы тест запускался автоматически.

Автоматизатор сам пишет код: для этого он использует среду разработки, например, IntelliJ IDEA. В Практикуме мы учим как писать скрипты на Java, потому что это один из самых востребованных языков программирования в крупных компаниях. Так что дальше мы перечислим инструменты, заточенные именно под этот язык: например, фреймворк JUnit.Когда тест готов, его проверяют другие разработчики — этот этап называется код-ревью. После всех доработок автоматизатор запускает тест в работу, и команда может получать данные о том, правильно ли работает функциональность программы.

Инструменты, которые нужны для работы автоматизаторов тестирования:

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

JUnit. Фреймворк автоматизации тестирования для Java.

IDE. Интегрированная среда разработки — в ней можно писать, компилировать и отлаживать код.

REST-Assured. Java-библиотека для тестирования REST API.

SQL. Язык запросов к реляционным базам данных. Тут важно освоить базовые запросы и научиться взаимодействовать с базами данных.

CI-система. Приложение, которое помогает автоматизировать разные этапы работы с кодом — например, сборку и анализ кода, тестирование и формирование отчётов.

Allure. Инструмент, в котором можно формировать наглядные и понятные отчёты о тестировании.

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

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

Что нужно знать и уметь на старте

Автоматизатор тесно сотрудничает с ручными тестировщиками и может приходить к команде разработки с любыми вопросами. Он отвечает за качество конечного продукта наравне с остальной командой: от разработчиков до менеджеров продукта.

С чем нужно уметь работать начинающему автоматизатору тестирования:

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

Java. Уверенное знание и владение инструментарием Java — автоматизатор должен уметь и писать  читаемый и поддерживаемый код.

Фреймворк автоматизации тестирования. В Java это, как правило, JUnit, но можно выучить и другой в зависимости от того, чем пользуются в вашей команде.

Инструмент автоматизации API, UI десктопа или мобильных приложений. Например, Selenium для UI и REAT-Assured для API. Для автотестов мобильных приложений стоит изучить Espresso.

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

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

Чтобы стартовать в профессии, достаточно опыта в ручном тестировании (примерно от полугода). Можно стать автоматизатором и без опыта в тестировании, хотя на старте вам будет немного сложнее. Например, новичку может быть тяжело понять, какой набор проверок будет необходимым и достаточным в том или ином случае — это приходит с практикой.

Что почитать и как развиваться в профессии

Начальные знания можно получать на форумах и в тематических каналах: например, в блогах на Хабре. Вот несколько ссылок, с которых можно начать:

Сайт про Java — чтобы изучить язык и набраться опыта.

Форум для тестировщиков поможет искать ответы на возникающие вопросы и перенимать опыт других специалистов.

— Статья «Сопротивления автоматизации тестирования» — чтобы узнать структурированный ответ на вопрос, зачем нужно автоматизировать тестирование.

— «Советы и рекомендации по развёртыванию процесса автоматизации тестирования с нуля» позволят запустить первые автотесты.

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

Автоматизатору можно развиваться в направлении DevOps — заниматься разработкой инфраструктуры. Это тоже профессия, связанная с управлением качеством: только со стороны «железа» и технического оснащения команды.