В
Мне больше симпатизирует разработка по гит-флоу... очень мощный инструмент, если которого строго придерживаться, то будет относительно все хорошо..
Мы на прошлой работе как раз таки придерживались такого подхода..
Важно то, что разработчики работают только с девелопом... делают ветку и в эту ветку подливают данные из девелопа.
По сути когда функционал готов и отдается на тест, в ветку подливаются данные из девелопа т.е. актуализируется с текущим состоянием. Тест. Если тест пройден успешно, то ветка мержится в девелоп.
Вот здесь разработчик должен проявить бдительность и здравый смысл. Смотреть каким образом будет происходить слияние веток, дабы не перезатереть уже разработанный кем-то раннее функционал.
После успешного слияния, прогоняется смоук тесты по главному функционалу разрабатываемой фичи, а так же проверяется интеграция в целом... Но тут такой момент, что тестировщик должен все таки понимать, какой фунционал мог сломаться при интеграции..
Так же важен факт отдельной жизни ветки от девелопа.. Если это более 2-3 рабочих дней, то в таком случае разработка становится очень дорогой.. Почему? Потому что, по хорошему разработчик должен регулярно подтягивать измения из девелопа для того, чтобы его ветка была в актуальном состоянии, а не в устаревшем. Для того чтобы не плодить баги в будущем и не тратить на их устранение..
Далее, когда планируемый фунционал закончен, и смержен с девелопом.. из девелопа собирается релизная ветка. И по ней уже прогоняется полное регрессионное тестирование..
При обнаружении багов в релизной ветке идем таким же путем...
Когда релиз стабилен, он выкатывается на прод и закрывается.. В этот момент, автоматом идет актуализация мастера с релизной веткой. Мастер актуализирован, после чего актуализируется ветка девелоп с мастером..
Если найден баг на проде и его необходимо фиксить сейчас и это не может подождать до следующего релиза, тогда открывается хотфикс.. т.е. ветка хотфикс ветвится от мастера и после успешного фикса мержится с мастером напрямую. Мастер снова актуализируется с девелопом.
В данном случае советую не держать долго открытыми ветки хотфикса, т.к. это дорого и при закрытии возмодно будет много конфликтов при актуализации мастера с девелопом, а так же актуализации веток разработчиков по цепной реакции..
Кажды дев делаю свой тикет в отдельной ветке, перед деплоем на дев, он стягивает дев на свою ветку, проверят все ли нормально
Если все гуд, то кидает на ревью + идет запуск юнит тестов на его ветке.
Дальше после ревью, ветка заливается на дев, где тоже запускаются тесты(но это не точно) и в этот момент тикет попадает ко мне на тестирование.
Ну и перед релизом проходит регресс (иногда) и потом уже все заливается на прод