Архитектура фреймворка автотестов
Вопрос
Вы техлид автоматизации. Расскажите, как устроите фреймворк, чтобы им пользовались 5 команд и 20 человек.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Слои: тесты, страницы и компоненты, API-клиенты, данные, фикстуры, конфиг
Единые соглашения: локаторы, именование, метки, структура папок
Общее ядро как пакет или монорепо, тесты команд рядом со своим кодом
Изоляция данных и параллельность by design
Качество кода тестов: ревью, линтеры, запрет sleep, шаблоны
Отчётность и метрики: флаки, время, владельцы тестов
Что могут спросить следом
- Как не дать ядру превратиться в свалку?
- Тесты рядом с кодом продукта или в отдельном репозитории?
- Как обучать новых людей?
Разбор
Образцовый ответ: «Ядро фреймворка делаю отдельным пакетом: обёртки над драйвером, базовые фикстуры, API-клиенты, билдеры данных, интеграция с Allure. Тесты команд живут рядом с их сервисами или в своих папках, Page Object каждая команда пишет для своих экранов, общие компоненты лежат в ядре. Соглашения фиксирую в README и линтере: data-testid, метки smoke и regress, запрет sleep, проверки в тестах. Данные каждый тест создаёт сам через API, поэтому всё параллелится. Для владельцев есть метка команды, и отчёт о флаки уходит владельцу. В ядро изменения идут через ревью моей группы, чтобы оно не стало свалкой»).
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.