Ótima pergunta. Não acho que exista uma resposta correta "oficial" para isso. Depende de quão rápido você pode testar.
O problema essencial é que cada mesclagem, compilação ou mesmo implantação, potencialmente pode criar um bug. Quanto mais a cadeia você testar, mais cedo você saberá sobre os bugs, mas também terá mais vezes que testar novamente.
Para ter certeza de que você testou o software que os clientes estão usando, você realmente precisa testar a implantação ao vivo antes que o tráfego dos clientes (supondo que um aplicativo Web) seja roteado para esses servidores por meio de um padrão de implantação azul / verde.
Mas, obviamente, é um pouco tarde para ser a primeira vez que você verifica o código!
Se você testar uma ramificação de liberação em um ambiente qa, poderá correr o risco e reduzir o teste ao vivo apenas para testes de fumaça. e aplique correções de erros ao ramo de lançamento. Mas você não pode avaliar se um recurso está completo antes de criar um release
Se você testar o desenvolvimento, obterá mini ramificações de correção de bug. Os recursos ainda são mesclados antes de serem avaliados, além dos recursos para a próxima versão poderem colidir com o teste da versão atual.
Se você testar ramificações de recursos, precisará de um milhão de ambientes e terá que orquestrar a ordem das mesclagens e dos testes de aprovação. além de muitos testes.
Da minha experiência, eu recomendaria:
teste rápido da ramificação de recursos na máquina de desenvolvimento. basta garantir que seu recurso seja concluído e os testadores / desenvolvedores concordem com o que os requisitos significam.
Teste diário / teste automatizado na ramificação de desenvolvimento implantada nos servidores qa. Permite testar todos os recursos juntos e dizer quando você está pronto para o lançamento.
Se todos os recursos estiverem ativados, mas o teste não estiver concluído. por exemplo, o sprint está completo. faça uma ramificação de liberação e implante em um segundo ambiente de qa. Isso permite que a correção / teste de bug na versão 1 continue ao mesmo tempo que os recursos da versão 2.
(os devotos do scrum dirão que você deve colocar apenas correções de bugs no sprint 2, mas vamos ser práticos)
Testes de fumaça na implantação verde / azul ao vivo antes da troca. Isso é super importante, pois você encontrará erros de configuração / ambientais que ninguém realmente procura durante o desenvolvimento.