Как вы организуете процесс выпуска с учетом тестирования
Что проверяют
Есть ли у вас целостная картина пути изменения от коммита до продакшена и где в этом пути стоят проверки. Следом обычно спрашивают, как вы откатываете неудачный релиз и что делаете с миграциями базы.
Как отвечать
Опишите свой реальный процесс по этапам:
- ветки: trunk-based с короткими ветками или GitFlow с релизными, выбор объясните размером команды и частотой релизов;
- проверки в PR:
dotnet buildс предупреждениями как ошибками,dotnet testс xUnit, NUnit или MSTest, покрытие через coverlet, анализаторы кода. Мерж только при зелёной сборке и пройденном ревью; - интеграционные тесты:
WebApplicationFactoryизMicrosoft.AspNetCore.Mvc.Testingподнимает приложение в памяти, реальную базу даёт Testcontainers; - артефакт: собирается один раз через
dotnet publishили в Docker-образ, версия по SemVer, и один и тот же артефакт идёт по стендам dev, stage и prod с разной конфигурацией; - база: миграции EF Core в виде идемпотентного скрипта
dotnet ef migrations script --idempotentили бандла, изменения схемы обратно совместимые, чтобы старая версия приложения работала с новой схемой; - выкладка: rolling, blue-green или канарейка, после неё смоук-тесты и проверка
/healthчерезAddHealthChecks(). Незаконченные функции прячут за флагамиMicrosoft.FeatureManagement; - после релиза: мониторинг ошибок и метрик, заранее известный план отката.
Ручное тестирование остаётся для рискованных мест и новых функций. Хорошо сослаться на метрики DORA (частота деплоев, время от коммита до продакшена, доля неудачных изменений, время восстановления) и назвать свои значения.
Если процесс строили не вы, скажите, за какую часть отвечали и что бы улучшили.
Где спотыкаются
Описывают тестирование как этап в конце: неделя ручного регресса перед релизом. Интервьюер ждёт проверок, встроенных в каждый шаг конвейера.
Пересобирают приложение под каждый стенд и не думают про откат. Если миграция уже удалила колонку, откат кода не спасёт.
Мирятся с нестабильными тестами: ставят автоперезапуск и привыкают к красному. Через месяц красную сборку никто не замечает, и регрессия уезжает в прод.