Был ли опыт написания фреймворка с нуля
Что проверяют
Умеете ли вы проектировать, а не только писать тесты в чужой структуре. Интервьюеру важно, понимаете ли вы, из каких слоёв состоит фреймворк автотестов и почему приняты те или иные решения. Следом почти всегда просят нарисовать архитектуру и спрашивают, что бы вы сейчас сделали иначе.
Как отвечать
Сначала уточните, что «с нуля» для автотестов почти никогда не значит писать собственный раннер. Фреймворк собирают из готовых библиотек, а ценность в том, как они связаны. Опишите свой проект по слоям:
- стек и причина выбора: язык команды, раннер (
JUnit 5,TestNG,pytest), инструменты для UI (Playwright,Selenium) и API (REST Assured,requests); - конфигурация: окружения, адреса, учётные данные через переменные окружения, а не в коде;
- слой взаимодействия: Page Object или компоненты для UI, клиенты для API, чтобы тест читался как сценарий, а не как набор локаторов;
- тестовые данные: фабрики и билдеры, создание данных через API перед тестом и очистка после;
- отчётность:
Allureсо скриншотами, логами запросов и видео падений; - CI и параллельный запуск: джоба в пайплайне, изоляция тестов друг от друга, политика перезапуска нестабильных тестов.
Назовите свой вклад и результат своими цифрами: сколько тестов, сколько длился прогон до и после, кто кроме вас пишет тесты в этом фреймворке. Не берите цифры из шаблонов, их легко проверить уточняющим вопросом.
Если с нуля не писали, скажите прямо и опишите, что делали в существующем фреймворке: добавляли слой, переделывали отчётность, ускоряли прогон. Затем покажите, как построили бы свой. Этого достаточно, чтобы интервьюер увидел понимание архитектуры.
Где спотыкаются
Называют фреймворком папку с тестами и парой утилит. Интервьюер спросит про конфигурацию и данные, и ответ рассыплется.
Не могут объяснить выбор инструментов. «Так было в туториале» звучит хуже, чем честное «выбрали из-за языка команды».
Молчат о проблемах: нестабильные тесты, долгий прогон, сопротивление команды. Именно про них спросят следом.