Ответ
Тестирование проводится в разных ветках в соответствии с выбранным рабочим процессом (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.
Ответ 18+ 🔞
Да ты посмотри, какая хуйня развелась! Ветки, блядь, как грибы после дождя. Каждая — со своим назначением, а то запутаешься и пиздец.
Вот смотри, таблица, чтоб не ебать мозги:
| Ветка | Назначение для тестирования |
|---|---|
| *`feature/`** | Тут, блядь, раннее тестирование новой фичи. Пока она ещё не насрала в общий код. Проверяешь её изолированно, чтоб потом не охуеть. |
develop / dev |
А вот тут уже интеграционное тестирование. Слил несколько фич — и пошла жара, блядь. Проверяешь, как они друг другу мозги ебут. |
*`release/** или **qa** / **staging`** |
Это, сука, предрелизный адок. Всё, что можно, тестируешь: регресс, нагрузку, acceptance. Окружение почти как продакшен, чтоб потом не обосраться. |
main / master (production) |
Ну и финальные smoke-тесты после деплоя. Типа "дышит ли оно, блядь?" в бою. |
Пример для 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
# Если не горит — значит, норм.
А вообще, какие ветки использовать — это команда решает, блядь. Главное, чтоб в CI/CD-конвейере всё это не превратилось в ебаный цирк.