AI
prepair.app
Пройти интервью →
EnglishРусскийУкраїнська
🤖

Middle QA Automationвопросы на собеседовании QA Automation

Middle · 2–4 года опыта

На собеседовании QA Automation проверяют знание фреймворков, паттернов автоматизации и — прежде всего — умение писать тесты, которые остаются зелёными не по случайности. Ниже — частые вопросы с эталонными ответами. Middle: более глубокое понимание, оптимизацию и реальные рабочие ситуации.

Темы для подготовки

Selenium WebDriver и Playwright
Page Object Model
Явные и неявные ожидания
API-тестирование
Интеграция с CI/CD
Flaky-тесты и их устранение

10 вопросов уровня Middle с ответами

1

В чём разница между implicit, explicit и fluent wait?

Ответ

Implicit wait — глобальная настройка, из-за которой любой поиск элемента повторяется до N секунд. Explicit wait ждёт одно конкретное условие — элемент кликабелен, текст появился — и только его. Fluent wait это explicit с настраиваемым интервалом опроса и списком игнорируемых исключений. Смешивание implicit и explicit даёт непредсказуемые суммарные таймауты, поэтому большинство команд полностью отключают implicit и используют explicit.

2

Какие локаторы вы используете и почему XPath часто считают плохой практикой?

Ответ

Предпочтительный порядок: специальный тестовый атрибут вроде data-testid, затем id, затем стабильный CSS-селектор. У XPath плохая репутация из-за абсолютных путей, которые ломаются от любого изменения DOM, и длинных относительных выражений, которые тяжело читать. Сам по себе XPath нормален и иногда незаменим — например поиск по видимому тексту или переход к родителю — проблема в хрупких XPath, а не в языке.

3

Что такое flaky-тест? Назовите причины и способы устранения.

Ответ

Flaky-тест падает и проходит без изменений в коде. Обычные причины: предположения о времени (жёсткие sleep вместо ожидания условия), общие изменяемые тестовые данные, зависимость от порядка запуска, анимации, нестабильные окружения и сторонние сервисы. Лечение: ждать явные условия, генерировать изолированные данные под каждый тест, делать тесты независимыми и идемпотентными, мокать внешние сервисы и выносить нестабильные тесты в карантин вместо перезапусков до зелёного.

4

Как организовать параллельный запуск тестов? Какие проблемы возникают?

Ответ

Параллельность настраивается на уровне раннера и обычно сочетается с Selenium Grid или контейнерами. Проблемы связаны с общим состоянием: тесты пишут в один аккаунт или одни строки БД, конфликтуют по портам и файлам, полагаются на порядок выполнения. Решение в том, что каждый тест создаёт свои данные с уникальными идентификаторами, не трогает глобальные ресурсы в setup и никогда не предполагает, что работает один.

5

Чем Playwright отличается от Selenium? Когда выбрать каждый?

Ответ

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

6

Как вы тестируете REST API? Какие инструменты используете?

Ответ

Проверяют статус-коды, схему ответа, значения в теле, заголовки, обработку невалидного ввода, а также границы аутентификации и авторизации. Инструменты — Postman или Insomnia для разведки и RestAssured, Playwright APIRequest, requests или supertest для автотестов. API-тесты дешевле и намного стабильнее UI-тестов, поэтому основное покрытие должно жить именно там.

7

Что такое тестовая пирамида? Какое соотношение unit/integration/e2e оптимально?

Ответ

Пирамида говорит, что нужно много быстрых unit-тестов, меньше интеграционных и совсем немного end-to-end, потому что вверх растут и стоимость, и нестабильность. Часто называют пропорцию примерно 70/20/10, но важнее не цифра, а принцип: опускать каждую проверку на самый низкий уровень, где она способна поймать баг. E2E должны покрывать только критичные пользовательские сценарии, а не бизнес-логику.

8

Как интегрировать автотесты в CI/CD pipeline?

Ответ

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

9

Что такое data-driven testing и как его реализовать?

Ответ

Data-driven разделяет логику теста и данные, поэтому один тест прогоняется на множестве наборов из CSV, JSON или параметризованного провайдера. Это умножает покрытие без умножения кода и превращает добавление кейса в правку данных, а не кода. Подвох в нечитаемых падениях — всегда подставляйте входные данные в имя теста, чтобы по отчёту было видно, какой именно кейс сломался.

10

Что стоит автоматизировать, а что нет?

Ответ

Автоматизируют стабильные, повторяемые и ценные проверки: регрессию, smoke, контракты API и сценарии с большим объёмом данных. Не автоматизируют быстро меняющийся UI, разовые проверки, исследовательское тестирование, оценку удобства и внешнего вида, а также всё, где написание и поддержка теста дороже ручного прогона. Решающий вопрос — сколько раз проверка отработает до того, как изменится.

🦎

Прочитать ответы недостаточно

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

Пройти интервью Middle QA Automation →
Бесплатно · 3 интервью в месяц

Другие уровни — QA Automation

Junior QA AutomationSenior QA AutomationВсе вопросы QA Automation

Другие специализации

🔍Middle QA ManualMiddle Java Backend🐍Middle Python Backend🐘Middle PHP Backend🦫Middle Go Backend🟢Middle Node.js Backend⚛️Middle React Frontend💚Middle Vue Frontend🅰️Middle Angular FrontendMiddle Next.js