Чем занимается автоматизатор тестирования и как им стать
Автоматизаторы пишут программы, которые имитируют действия пользователей и проверяют продукт или его часть. Такие специалисты экономят время и деньги компании — проверка функциональности становится быстрее, а продукт качественнее. Как устроена работа автоматизаторов и что нужно знать для того, чтобы стартовать в профессии, рассказывает Виктор Медведев, техлид курса «Автоматизатор тестирования на 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 — заниматься разработкой инфраструктуры. Это тоже профессия, связанная с управлением качеством: только со стороны «железа» и технического оснащения команды.