Что такое CI/CD?
Что проверяют
Различаете ли вы три разные вещи под одной аббревиатурой и понимаете ли, где в этом конвейере стоит тестирование.
Как отвечать
CI, непрерывная интеграция: каждое изменение вливается в общую ветку часто и на каждое вливание автоматически прогоняются сборка, линтер, типы и тесты. Смысл в том, чтобы конфликты и поломки находились за минуты, а не при сборке релиза.
CD, непрерывная доставка: после зелёного CI артефакт автоматически готов к выкладке, а нажимает кнопку человек.
CD, непрерывное развёртывание: то же самое, но без кнопки, зелёный конвейер сам выкатывает в прод.
Типовой конвейер: сборка, статические проверки, модульные тесты, интеграционные на поднятых в контейнерах зависимостях, сборка образа, выкладка на стенд, дымовые тесты, выкладка в прод, наблюдение за метриками.
Что здесь важно для тестировщика: быстрые проверки идут раньше медленных, дымовой набор гоняется на каждый мердж, полный регресс ночью. Нестабильные тесты убивают доверие к конвейеру быстрее, чем отсутствие тестов, поэтому их или чинят, или выносят из блокирующего набора.
Инструменты: GitHub Actions, GitLab CI, Jenkins, TeamCity.
Где спотыкаются
Называют CI/CD одним словом и не могут развести доставку и развёртывание.
Считают, что CI это «сборка на сервере», забывая про автоматические тесты.
Ставят весь регресс в блокирующий шаг, конвейер идёт час, и его начинают обходить.
Не говорят про откат, хотя без него автоматическое развёртывание опасно.