QA-инженер: от ручного тестирования к автоматизации. Roadmap с нуля и вопросы на собеседовании
Полная дорожная карта тестировщика (QA Engineer): техники тест-дизайна, тестирование REST API в Postman, основы SQL, автоматизация на Python и частые вопросы на собеседованиях.
Тестировщик (QA Engineer) — одна из самых популярных точек входа в IT, однако требования к кандидатам за последние годы выросли в разы. «Просто покликать по кнопкам» уже недостаточно: современный Junior QA должен уверенно читать логи серверов, составлять SQL-запросы к базе данных, тестировать REST API через Postman и понимать основы написания автотестов.
В этой статье мы разберем:
- Ключевые различия между ручным тестированием (Manual QA) и автоматизацией (AQA).
- Пошаговую дорожную карту навыков.
- 5 вопросов с собеседований, на которых чаще всего срезаются новички.
Сравнение: Manual QA vs Automation QA#
| Критерий | Ручное тестирование (Manual QA) | Автоматизация (AQA / SDET) |
|---|---|---|
| Основной фокус | Исследовательское тестирование, UX/UI, быстрые проверки новых фич | Регрессионное тестирование, нагрузка, тестирование стабильности |
| Инструменты | Postman, DevTools, Charles/Fiddler, Test IT, Jira | Python / JS, Pytest / Playwright, Allure, Docker, GitLab CI |
| Порог входа | Ниже, акцент на логику и тест-дизайн | Требуются навыки написания поддерживаемого кода |
| Позиция на рынке | Быстрый старт | Значительно выше вилка зарплат и востребованность |
Дорожная карта (Roadmap) QA-инженера#
Пошаговый план развития QA-инженера
Теория тестирования и техники тест-дизайна
3-4 неделиSDLC/STLC, виды тестирования, чек-листы и тест-кейсы. Техники тест-дизайна: классы эквивалентности, граничные значения, таблицы решений.
Тестирование веб-клиентов и Chrome DevTools
2-3 неделиАнализ сетевых запросов (Network), проверка респонсов серверов, эмуляция медленного интернета, анализ консоли ошибок и localStorage.
Тестирование REST API в Postman
3-4 неделиКоллекции, переменные окружения, автотесты на JavaScript, валидация статус-кодов и JSON-схем, перехват мобильного трафика через Charles/Proxyman.
Базы данных и проверки через SQL
3-4 неделиПроверка сохранения данных через SELECT с условиями WHERE, связывание таблиц JOIN, группировки GROUP BY и агрегаты.
Основы автоматизации тестирования (AQA)
1-2 месяцаИзучение Python или JavaScript, фреймворк Pytest/Playwright, генерация красивых отчетов Allure и интеграция в CI/CD.
Топ-5 вопросов с собеседований по QA#
1. Чем Severity (серьезность) отличается от Priority (приоритета)?#
Классический вопрос, проверяющий понимание бизнес-процессов:
- Severity (Серьезность дефекта): Показывает степень технического влияния бага на работоспособность системы. Определяется тестировщиком.
- Critical/Blocker: Падение сервера при регистрации, невозможность совершить оплату.
- Priority (Приоритет исправления): Показывает, насколько срочно баг должен быть взят в работу разработчиками. Определяется бизнесом (Product Owner / Project Manager).
- High/Urgent: Критический баг в продакшне.
- High Severity, Low Priority: Редкий креш приложения, который происходит только на древнем Android 5.0, где пользователей меньше 0.01%.
- Low Severity, High Priority: Опечатка в слове «Сбербанк» на главном логотипе страницы входа. С технической точки зрения сайт работает идеально, но для репутации бизнеса это катастрофа.
2. Как протестировать поле ввода «Возраст» (от 18 до 65 лет)?#
Этот кейс дают для проверки умения применять техники тест-дизайна (граничные значения и классы эквивалентности).
Границы диапазона: 18 и 65.
Чек-лист проверок:
- Граничные значения (критично):
- Внутренние границы:
18,65(должно быть успешно). - За границами:
17(отказ: слишком молод),66(отказ: слишком стар).
- Внутренние границы:
- Классы эквивалентности:
- Валидный класс: любое число внутри (например,
30). - Невалидные классы: отрицательные числа (
-1), ноль (0), экстремально большие числа (999).
- Валидный класс: любое число внутри (например,
- Типы данных и спецсимволы:
- Пустая строка (проверка на обязательность поля).
- Дробные числа (
18.5). - Буквы (
"двадцать"), пробелы, эмодзи, HTML/SQL-инъекции (<script>,' OR 1=1).
3. Пирамида тестирования: как распределяются тесты?#
- Unit-тесты (Модульные): Основание пирамиды (70-80% всех тестов). Быстрые, изолированные, пишутся разработчиками на отдельные функции.
- Integration-тесты (Интеграционные): Проверяют взаимодействие между сервисами (например, сервис заказов + сервис платежей + база данных).
- E2E / UI-тесты (Сквозные): Вершина пирамиды (10%). Прогоняют реальный сценарий пользователя в браузере. Самые медленные, дорогие в разработке и подверженные ложным срабатываниям (Flaky).
4. Что такое регрессионное тестирование и когда его проводят?#
Регрессионное тестирование — это проверка того, что исправление багов или добавление новой функциональности не сломало ранее работавшие сценарии.
Проводится перед каждым релизом в продакшн, а также после критических хотфиксов. Именно регрессионный скоуп в первую очередь покрывают автотестами для экономии времени команды.
5. Что делать, если автотест падает нестабильно (Flaky Test)?#
Нестабильный тест — худший враг автоматизатора, так как команда перестает доверять отчетам CI/CD.
Причины и решение:
- Сетевые задержки и рендеринг: Жесткие тайминги
sleep(5)заменяют на явные динамические ожидания (Explicit Waits) появления элементов в DOM (waitForSelector). - Зависимость от состояния данных: Каждый тест должен создавать свои тестовые данные перед запуском (фикстуры) и удалять за собой (TearDown).
- Параллельный запуск: Проверить, не обращаются ли параллельные тесты к одной и той же записи в базе данных.
Резюме#
Профессия QA требует системного мышления, здорового скептицизма и внимания к деталям. Освоение тестирования API и базовой автоматизации выведет вас на голову выше большинства кандидатов-новичков.
Прокачивай IT-скиллы с Capycodio
Не зубри теорию часами перед компьютером. Короткие 3-минутные интерактивные сессии прямо с телефона: по дороге, за кофе или перед сном.
Мы создаем интерактивный мобильный тренажер для разработчиков. Короткие сессии по 3-5 минут, чтобы держать базу и закрывать пробелы перед собеседованиями.