Что такое pipeline
Что проверяют
Видите ли вы конвейер как место, где живёт качество, а не как чужую кнопку сборки. От тестировщика ждут ответа, где именно в конвейере его проверки, что они блокируют и за какое время дают вердикт.
Как отвечать
Pipeline это описанная в репозитории последовательность стадий, которая запускается автоматически по событию: коммит, запрос на слияние, тег, расписание. Типовой порядок: статический анализ, сборка, модульные тесты, интеграционные на поднятых зависимостях, развёртывание в тестовый контур, сквозные и API-тесты, публикация артефактов, релиз.
Дальше стоит говорить про свою зону:
- распределение уровней по стадиям: быстрых и дешёвых проверок много и рано, сквозных мало и позже;
- гейты: что блокирует слияние, а что только сообщает. Проверка, которую невозможно быстро починить, гейтом быть не должна;
- данные и окружение: подготовка и уборка, изоляция прогонов, зависимости в контейнерах;
- обратная связь: логи, скриншоты, трассировки и отчёт прикладываются к упавшему прогону, иначе вердикт бесполезен.
Сильный ответ звучит конкретно: на запросе слияния линтер, модульные и API-тесты, красное не вливается; полный сквозной набор ночью на тестовом контуре, падение заводит задачу; после выката смоук по ключевым сценариям.
Где спотыкаются
Пересказывают общие слова про непрерывную интеграцию и не могут назвать, что именно в их проекте блокирует релиз. По такому ответу не понять, участвовал ли кандидат в настройке или просто смотрел на чужие значки.
Тащат весь сквозной набор на каждый коммит. Прогон растёт до часов, нестабильные тесты копятся, команда привыкает перезапускать до зелёного, и гейт превращается в ритуал. Лечится делением на смоук и полный набор и карантином для нестабильных, а не поголовным автоповтором.
Забывают про состояние. Тесты, завязанные на общую базу и на порядок выполнения, начинают падать группами, а разбор каждый раз начинается заново, потому что артефакты прогона никто не сохранял.