Блог Stepik про учебу и карьеру

Как Manual QA перейти в Automation QA: пошаговый план

Программирование
Ручное тестирование остаётся одной из самых популярных точек входа в IT, но рано или поздно многие QA-инженеры задаются одним и тем же вопросом: что делать дальше? Для одних следующим шагом становится углубление в качество продукта, для других — переход в автоматизацию тестирования. Но именно на этом этапе чаще всего возникает путаница: какой язык выбрать, что изучать в первую очередь, когда начинать писать автотесты и какие навыки действительно нужны работодателям.

О том, как выстроить этот путь без лишней теории и хаотичного изучения десятков инструментов, расскажет Никита Филонов — специалист с почти 10-летним опытом в QA Automation, автор курсов на Stepik и победитель Stepik Awards 2025.
В этой статье я хочу поделиться практическими рекомендациями для инженеров, которые сейчас работают как Manual QA и задумываются о переходе в автоматизацию тестирования. Материал будет полезен и тем, кто уже решил развиваться в Automation QA, но пока не понимает, с чего начать и в каком порядке двигаться.

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

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

Для кого эта статья

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

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

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

Зачем Manual QA переходить в автоматизацию

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

При этом есть и общий рыночный контекст. Во многих компаниях от QA-инженеров всё чаще ждут не только умения вручную проверять продукт, но и готовности работать с автотестами, API, логами, инструментами разработки и CI/CD. Где-то автоматизация уже стала обязательным требованием, где-то — серьёзным преимуществом, а где-то — естественным этапом роста внутри команды.

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

Поэтому переход в Automation QA стоит воспринимать не как модный тренд, а как логичное продолжение профессионального развития. У Manual QA уже есть важная база: понимание продукта, пользовательских сценариев, рисков и логики проверок. Следующий шаг — научиться описывать часть этой работы кодом и превращать её в автоматизированные проверки.

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

Направление: с чего начать и куда развиваться

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

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

1. UI-автоматизация

Для многих Manual QA именно UI-автоматизация становится самым понятным стартом. Здесь много знакомого из ручного тестирования: браузер, страницы, формы, кнопки и пользовательские сценарии.

Начать можно с Playwright, Selenium или Cypress. Playwright сегодня часто выбирают за быстрый старт, удобную отладку, встроенную работу со скриншотами, видео и Trace Viewer. Selenium остаётся классическим решением с большой экосистемой и огромным количеством обучающих материалов.

Главное преимущество UI-автоматизации — наглядность. Результат виден сразу: тест открывает страницу, взаимодействует с интерфейсом и проверяет ожидаемое поведение. Для первого знакомства с автоматизацией это часто самый комфортный вариант.

2. API-автоматизация

Следующий логичный шаг — API-автоматизация. Здесь тесты работают не через пользовательский интерфейс, а напрямую с сервером: отправляют запросы, получают ответы и проверяют данные, статус-коды и бизнес-логику.

API-тесты обычно быстрее и стабильнее UI-тестов, поскольку не зависят от вёрстки, локаторов, анимаций и состояния браузера. Однако порог входа здесь немного выше: потребуется разобраться в HTTP, JSON, запросах, ответах и статус-кодах, а иногда и познакомиться с gRPC или Protocol Buffers (Protobuf).

Зато это очень универсальный навык. API есть практически в любом современном продукте, особенно если речь идёт о микросервисной архитектуре, веб-приложениях и мобильных приложениях с backend-частью.

3. Мобильная автоматизация

Мобильная автоматизация нужна там, где продукт существует в виде Android- или iOS-приложения. Это отдельное направление со своими инструментами: Appium, Espresso, XCUITest и другими решениями.

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

При этом мобильная автоматизация может стать сильной специализацией. Если вы работаете с мобильным продуктом или хотите развиваться именно в этой области, это направление способно дать хорошее конкурентное преимущество.

4. Нагрузочное тестирование

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

Чаще всего в этом направлении используют Locust, k6 или JMeter. Но инструмент — далеко не главное. Гораздо важнее понимать архитектуру системы, уметь моделировать реалистичные сценарии нагрузки и анализировать результаты тестов.

Для большинства QA нагрузочное тестирование становится не первым шагом, а следующим этапом после UI- или API-автоматизации. Но если вам интересны производительность, метрики, мониторинг и поведение систем под нагрузкой, это направление вполне может стать отдельной специализацией.

Что выбрать на старте

Если вы только начинаете путь в автоматизации, не стоит распыляться на всё сразу. Лучше выбрать одно базовое направление, получить в нём первый практический результат и уже потом расширять стек.
На практике самый понятный маршрут часто выглядит так: сначала UI-автоматизация, потому что она ближе к ручному тестированию и быстрее даёт видимый результат. Затем API-автоматизация, которая позволяет глубже понять устройство продукта и писать более стабильные проверки. После этого можно смотреть в сторону мобильной автоматизации, нагрузочного тестирования или других более узких направлений.
Конечно, мир тестирования этим не ограничивается. Есть desktop-, data quality-, security- и IoT-тестирование, chaos engineering и другие специализации. Но для старта лучше не пытаться охватить всё сразу. Сначала важно заложить фундамент, а уже потом выбирать более узкую область с учётом своих интересов, проекта и ситуации на рынке.

Выбор языка программирования

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

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

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

Для старта я бы рассматривал несколько основных вариантов: Python, Java, JavaScript/TypeScript, Kotlin/Swift и Go.

1. Python

Python — один из самых комфортных языков для входа в автоматизацию. У него простой синтаксис, большое сообщество и сильная экосистема для тестирования.

Для Automation QA на Python есть почти всё необходимое: pytest для тестов, Playwright и Selenium для UI, httpx и requests для API, pydantic и jsonschema для работы с данными и валидацией.

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

Если вы только начинаете и не знаете, какой язык выбрать, Python часто будет самым безопасным и понятным стартом.

2. Java

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

В автоматизации у Java сильная и зрелая экосистема: JUnit, TestNG, Selenide, Playwright, Rest Assured, Appium, Allure, Maven и Gradle. Это хороший выбор, если вы хотите работать в крупных компаниях, где уже есть сложившийся Java-стек и большие тестовые проекты.

Порог входа у Java выше, чем у Python: больше синтаксиса, больше шаблонного кода и более строгая структура проекта. Зато это стабильный и востребованный навык, который высоко ценится на рынке.

3. JavaScript / TypeScript

JavaScript и TypeScript особенно хорошо подходят для web-автоматизации. Это логичный выбор, если вы работаете рядом с frontend-командой или хотите тестировать современные веб-приложения на том же стеке, на котором они разрабатываются.

Сегодня TypeScript выглядит предпочтительнее обычного JavaScript: он добавляет типизацию и помогает раньше находить ошибки в коде. Playwright и Cypress отлично чувствуют себя в этой экосистеме, поэтому для UI-тестирования это один из самых сильных вариантов.

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

4. Kotlin / Swift

otlin и Swift стоит рассматривать, если вы хотите развиваться в мобильной автоматизации. Kotlin является основным языком для Android, а Swift — для iOS.

Это уже более узкая специализация. На этих языках обычно пишут нативные мобильные тесты и работают значительно ближе к платформе: Android, iOS, эмуляторам, реальным устройствам и CI/CD-процессам для мобильных приложений.

Для первого входа в автоматизацию Kotlin и Swift подходят не всем. Но если вы уже работаете с мобильным продуктом или хотите развиваться именно в mobile-направлении, это может быть сильным карьерным выбором.

5. Go

Go чаще встречается в микросервисной архитектуре, инфраструктурных и системных задачах. В автоматизации он может быть полезен там, где нужно тестировать backend-сервисы, gRPC, интеграции или внутренние инструменты.

Но в качестве первого универсального языка для Automation QA я бы Go не рекомендовал. У него меньше привычных тестовых инструментов и готовых решений, чем у Python или Java, а для UI- и мобильной автоматизации он используется значительно реже.

К Go имеет смысл присмотреться позже, когда вы уже освоите базовую автоматизацию и захотите развиваться в сторону backend-разработки, микросервисов или инфраструктуры.

Что выбрать на старте

  • Если нужен самый мягкий вход в автоматизацию — выбирайте Python.
  • Если ориентируетесь на крупные корпоративные проекты — Java.
  • Если хотите развиваться в веб-автоматизации рядом с frontend-командой — TypeScript.
  • Если интересует мобильная автоматизация — Kotlin или Swift.
  • Если тянет к backend-разработке, микросервисам и инфраструктуре — Go, но скорее как следующий этап, а не как первый язык.
Главное — не пытаться найти «идеальный язык на всю жизнь». Такого языка не существует. На старте гораздо важнее выбрать востребованный и понятный инструмент, написать на нём первые автотесты и довести обучение до практического результата.

Пошаговый план перехода из Manual QA в Automation QA

Теперь соберём всё в единый маршрут. Это не единственно возможный путь, но он хорошо подходит тем, кто уже работает в ручном тестировании и хочет постепенно перейти в автоматизацию.

Шаг 1. Изучите язык программирования

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

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

Шаг 2. Освойте базовое направление автоматизации

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

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

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

Шаг 3. Освойте базовую архитектуру тестов

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

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

На старте этого вполне достаточно. Более сложные подходы, такие как Page Component или Page Factory, можно изучить позже, когда появится реальная потребность.

Шаг 4. Подключите отчётность

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

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

Шаг 5. Настройте запуск в CI/CD

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

Для старта достаточно простого pipeline в GitHub Actions или GitLab CI. Он должен установить зависимости, запустить тесты и сохранить результаты. Даже базовая настройка CI уже показывает, что вы понимаете не только написание тестов, но и их место в процессе разработки.

Шаг 6. Создайте портфолио

Если вы переходите в Automation QA, важно иметь проект, который можно показать работодателю. Необязательно делать огромный фреймворк на десятки тестов. Гораздо лучше небольшой, но аккуратный проект с понятной структурой, README, несколькими тестами, отчётностью и запуском в CI.

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

Шаг 7. Расширяйте стек

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

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

Шаг 8. Развивайте софт-скиллы

Automation QA — это не только код. Инженеру нужно уметь объяснять, зачем нужны автотесты, договариваться с разработчиками о тестируемости, писать понятные баг-репорты и аргументировать технические решения.

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

Шаг 9. Обновите резюме и начинайте искать возможности

Когда у вас есть язык, базовые автотесты, структура проекта, отчётность, CI/CD и портфолио, это уже можно отражать в резюме.

Укажите стек, добавьте ссылку на GitHub, кратко опишите проект и задачи, которые вы в нём решили. Хороший вариант для перехода — вакансии, где ручное тестирование совмещается с автоматизацией. Так вы сможете использовать текущий опыт Manual QA и постепенно усиливать техническую часть.

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

Что дальше

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

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

Для первого практического результата достаточно небольшого проекта:

  • несколько UI-тестов или API-тестов;
  • понятная структура проекта;
  • базовый Page Object или API-клиент;
  • README с описанием запуска;
  • отчётность;
  • запуск тестов в CI/CD.

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

Практика на курсах

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


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

Открытые проекты для самостоятельной практики

Если вы хотите сначала посмотреть примеры кода и попробовать разобраться самостоятельно, можно начать с открытых проектов на GitHub:

  • python-ui-tests — пример UI-автотестов на Python и Playwright.
  • python-api-tests — пример API-автотестов на Python.
  • python-load-tests — пример нагрузочных тестов на Python и Locust.

Не обязательно копировать проекты целиком. Гораздо полезнее открыть проект, посмотреть структуру, запустить тесты локально и попробовать повторить отдельные части своими руками: клиент, страницу, тест, фикстуру, отчёт или запуск в CI.

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

Итог

Переход из Manual QA в Automation QA — это не резкий прыжок в другую профессию, а постепенное развитие уже имеющегося опыта.

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

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