Ottima domanda. Non penso che ci sia una risposta corretta "ufficiale" a questo. Dipende da quanto velocemente puoi testare.
Il problema essenziale è che ogni fusione, compilazione o distribuzione può potenzialmente creare un bug. L'ulteriore "up" della catena testate, prima saprete dei bug, ma anche più volte dovrete ripetere il test.
Per essere certi di aver testato il software utilizzato dai clienti, è necessario testare la distribuzione live prima che il traffico dei clienti (supponendo un'app Web) venga indirizzato a tali server tramite un modello di distribuzione blu / verde.
Ma ovviamente è un po 'tardi nella giornata per essere la prima volta che controlli il codice!
Se provi un ramo di rilascio in un qa env, puoi correre il rischio e ridurre i test dal vivo solo per testare il fumo. e applicare correzioni di bug al ramo di rilascio. Ma non puoi valutare se una funzionalità è completa prima di creare un rilascio
Se esegui test di sviluppo, ottieni mini rami di bug-fix-feature. Le caratteristiche sono ancora unite prima di essere valutate, inoltre le funzionalità per la prossima versione possono scontrarsi con il test della versione corrente.
Se si testano le filiali di feature, è necessario disporre di un milione di ambienti e devono orchestrare l'ordine di unioni e test delle segnalazioni. oltre a un nuovo test.
Dalla mia esperienza consiglierei:
test rapido del ramo di funzione sulla macchina di sviluppo. assicurati che la sua funzionalità sia completa e che i tester / sviluppatori siano d'accordo su cosa significano i requisiti.
Test giornalieri / test automatici sul ramo dev distribuito ai server qa. Ti consente di testare tutte le funzionalità insieme e di dire quando sei pronto per il rilascio.
Se tutte le funzionalità sono presenti ma il testing non è terminato. per esempio lo sprint è completo. creare un ramo di rilascio e distribuirlo in un secondo ambiente qa. Ciò consente di correggere / testare bug sulla versione 1 per continuare contemporaneamente alle funzionalità per la versione 2.
(i devoti di Scrum diranno che dovresti mettere solo correzioni di bug in sprint 2 ma che sia pratico)
Test dei fumi sulla distribuzione verde / blu dal vivo prima di passare. Questi sono super importanti in quanto raccogli errori di configurazione / ambientali che nessuno cerca davvero durante lo sviluppo.