githubEdit

Как стать автоматизатором

Можно ли стать автоматизатором без опыта ручного тестирования?

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

Можно ли писать автотесты без программирования?

Рекордеры генерируют линейный, неподдерживаемый код без переменных, циклов и обработки ошибок. Полезны как вспомогательный инструмент для изучения локаторов элементов, но не как основное средство автоматизации. Low-code платформы (Mabl, Testim) снижают порог входа, но создают потолок: сложная бизнес-логика, data-driven тесты и нестандартные flow всё равно требуют кода.

Языковые пути в автоматизации

Выбор языка следует из стека проекта и задач:

Язык + стек
Применение
Почему выбирают

TypeScript + Playwright

Веб E2E, API-тесты

Playwright написан на TS; TS стал #1 языком на GitHub (2025); 91% Playwright-репозиториев на TS

Python + pytest

API, backend, ML-команды

pytest — стандарт де-факто (1300+ плагинов); Playwright официально поддерживает Python

Java + Selenium / REST Assured

Enterprise backend, Spring Boot

Устоявшийся стек в банках/страховых; большая экосистема

Kotlin + Espresso / Detox

Android native

Google официально рекомендует Kotlin; coroutines нативно работают в UI-тестах

Swift + XCUITest

iOS native

Единственный нативный выбор для iOS UI-автоматизации

За сколько тестировщик превращается в автоматизатора

По практике: человека без опыта автоматизации берут на испытательный срок (3 месяца) с задачей написать первый автотест на любую платформу. С наставничеством и готовыми примерами в репозитории — ещё никто не провалил испытательный срок.

Через 3 месяца — понимание базового фреймворка. Через 6–9 месяцев — самостоятельный автоматизатор под одну–две платформы. Глубина знаний приходит с задачами: сложные паттерны изоляции, CI/CD, разбор flaky-тестов.

Карьерный путь

Роадмапы с требованиями для джуна — в теме «Что должен знать и уметь Junior?».

Вопросы для подготовки к собеседованию

Три группы вопросов:

  • Базовая теория тестирования (как для мануала, хотя бы по верхам)

  • Автоматизация: виды, инструменты, CI/CD, лучшие практики

  • Core языка, указанного в вакансии

Вопросы по автоматизации

  • Что такое автоматизация и зачем она нужна?

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

  • Что следует автоматизировать в первую очередь?

  • Какая бывает автоматизация (виды, методы, платформы)?

  • Характеристики хорошего автотеста

  • Паттерны автоматизации (Page Object, Builder, Fixture, Factory)

  • Популярные фреймворки: Playwright vs Cypress vs Selenium — в чём разница?

  • Что такое flaky-тест и как с ним бороться?

  • Что такое test sharding и зачем он нужен?

  • Инфраструктура CI/CD, пайплайн, место автотестов в нём

  • Есть новая фича — расскажи, как будешь тестировать и какие автотесты напишешь

Вопросы по CI/CD (GitHub Actions)

  • Что такое GitHub Actions? Как запустить тесты на push?

  • Что такое matrix strategy и зачем использовать?

  • Как настроить sharding в GitHub Actions?

  • Как кэшировать node_modules / pip-зависимости в workflow?

  • Что такое artifacts в GitHub Actions? Как опубликовать Playwright-отчёт?

  • Разница между job и step?

Вопросы по TypeScript (для Playwright/веб-стека)

  • Разница между type и interface?

  • Что такое generics и зачем нужны?

  • Что такое async/await? Как обрабатывать ошибки?

  • Что такое Promise.all и Promise.allSettled?

  • Разница между null, undefined и never?

  • Что такое optional chaining ?. и nullish coalescing ???

  • Что такое декораторы?

Вопросы по Java

Вопросы по Python

  • Какие типы данных существуют в Python?

  • Разница между list и tuple?

  • Что такое генераторы и итераторы?

  • Как работает GIL (Global Interpreter Lock)?

  • Что такое декораторы? Как написать декоратор?

  • Как работает сборщик мусора в Python?

  • Что такое list comprehension?

  • Контекстные менеджеры (with statement)

  • Что такое PEP 8?

Вопросы по AI-инструментам (ожидаемое знание 2025)

  • Как вы используете AI-ассистенты (Copilot, Claude, ChatGPT) в работе?

  • Как вы проверяете качество теста, сгенерированного AI?

  • Что такое prompt engineering применительно к генерации тестов?

  • Как Copilot помогает при написании Page Object Models?

  • Какие задачи AI решает хорошо, а какие — плохо в тестировании?

Общие вопросы

  • Разница между библиотекой и фреймворком?

  • Что означает SNAPSHOT в версии библиотеки?

  • Что такое SDK?

  • Что такое mock, stub, fake — в чём разница?

Практические навыки

  • Писать код и решать задачки (переборы массивов, строковые операции)

  • Git (commit, branch, merge, rebase)

  • Консоль / bash

  • Типовые инструменты для платформы (Playwright, pytest, Espresso)

  • Моки запросов (WireMock, msw, nock)

  • Инструменты отчётности (Allure, Playwright HTML Report)

  • GitHub Actions / GitLab CI (написать базовый workflow)

Пример вопросов от кандидата работодателю

  • Какой tech stack используется в автоматизации?

  • Какой CI/CD? GitHub Actions, GitLab CI, Jenkins?

  • Сколько тестов в суите, как долго прогоняется?

  • Есть ли проблема flaky-тестов? Как решаете?

  • Как организованы тестовые данные?

  • Кто добавляет data-testid / accessibility-идентификаторы в код?

  • Какой релизный цикл? Сколько времени на регресс?

Источники

Дополнительные материалы

Last updated