> For the complete documentation index, see [llms.txt](https://vladislaveremeev.gitbook.io/qa_bible/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://vladislaveremeev.gitbook.io/qa_bible/avtomatizaciya-testirovaniya/karera/kak-stat-avtomatizatorom-i-voprosy-s-sobesedovanii.md).

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

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

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

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

Рекордеры генерируют линейный, неподдерживаемый код без переменных, циклов и обработки ошибок. Полезны как вспомогательный инструмент для изучения локаторов элементов, но не как основное средство автоматизации. 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-тестов.

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

* [Что учить, чтоб стать автоматизатором тестирования](https://www.youtube.com/watch?v=d5yCDe0_ddE)
* [Карьерный путь автоматизатора](https://software-testing.ru/library/around-testing/job/3626-test-automation-career-path)

Роадмапы с требованиями для джуна — в теме «Что должен знать и уметь 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

* Дизайн-паттерны (Factory, Builder, Singleton в тестовом контексте)
* Типы данных, коллекции, Map
* Модификаторы доступа, Abstract классы, интерфейсы
* Лямбда-функции и Stream API
* Дженерики
* [Подробный список вопросов по Java](https://github.com/enhorse/java-interview)

### Вопросы по 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-идентификаторы в код?
* Какой релизный цикл? Сколько времени на регресс?

## Источники

* [ТОП-5 вопросов ручных тестировщиков про автоматизацию](https://habr.com/ru/company/hh/blog/575390/)
* [ТОП-5 вопросов технического директора про автоматизацию](https://habr.com/ru/company/hh/blog/582968/)
* [39 TOP Automation Testing Interview Questions And Answers](https://www.softwaretestinghelp.com/test-automation-interview-questions/)
* [Automation Testing Interview Questions](https://www.softwaretestingmaterial.com/automation-testing-interview-questions/)
* [Как начать карьеру QA Automation Engineer](https://vc.ru/hr/350932-kak-nachat-kareru-qa-automation-engineer-odin-prostoy-sovet)
* [Нужно ли знать программирование для qa автоматизатора?](https://www.youtube.com/watch?v=y2Xh25f5O9U)
* [Как стать QA AUTOMATION engineer с нуля самостоятельно](https://www.youtube.com/watch?v=k0LFk9yH98c)
* [Какие вопросы ожидать на позицию автоматизатора](https://habr.com/ru/post/550510/)
* [QAGuild#54: Что должен знать тестировщик? Топ 3 навыка для QA Automation engineer](https://www.youtube.com/watch?v=XgMGjRAQZJg)

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

* [Какие ошибки совершает начинающий QA Automation Engineer?](https://www.youtube.com/watch?v=8QQVe5LYgdw) — типичные проблемы и как их избежать
* [Три типичных ошибки автоматизатора](https://testengineer.ru/tipichnye-oshibki-avtomatizatora/) — практический разбор
* [Чек-лист для начинающего автотестера на Java](https://testit.software/blog/post/chek-list-dlya-nachinayushchego-avtotestera-na-java)
