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

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

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

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

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://vladislaveremeev.gitbook.io/qa_bible/avtomatizaciya-testirovaniya/karera/kak-stat-avtomatizatorom-i-voprosy-s-sobesedovanii.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
