В каких ветках системы контроля версий (Git) обычно проводится тестирование?

«В каких ветках системы контроля версий (Git) обычно проводится тестирование?» — вопрос из категории CI/CD и DevOps, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Тестирование проводится в разных ветках в соответствии с выбранным рабочим процессом (Git Flow, GitHub Flow, GitLab Flow).

Типичные ветки для тестирования:

Ветка Назначение для тестирования
*`feature/`** Раннее/изолированное тестирование новой функциональности перед слиянием в основную ветку разработки.
develop / dev Интеграционное тестирование после слияния нескольких feature-веток. Проверка взаимодействия компонентов.
*`release/** или **qa** / **staging`** Всестороннее регрессионное, нагрузочное и acceptance-тестирование кандидата в релиз. Окружение максимально приближено к production.
main / master (production) Финальные smoke-тесты после деплоя для подтверждения работоспособности в production-окружении.

Пример для Git Flow:

# 1. Тестирование в feature-ветке
git checkout -b feature/user-profile
# Разработка и первоначальное тестирование фичи

# 2. После мержа в `develop` — интеграционное тестирование
git checkout develop
git merge feature/user-profile

# 3. Создание ветки `release/v1.5` для предрелизного тестирования
git checkout -b release/v1.5 develop
# Полный цикл тестирования на staging

# 4. После мержа в `main` — финальная проверка
git checkout main
git merge release/v1.5
# Smoke-тесты в production

Выбор конкретных веток определяется соглашениями команды и конвейером CI/CD.