Ottima domanda Non credo che ci sia una risposta "ufficiale" corretta a questo. Dipende da quanto velocemente puoi testare.
Il problema essenziale è che ogni unione, compilazione o persino distribuzione può potenzialmente creare un bug. Maggiore è il livello della catena testata, prima si conoscono i bug, ma anche più volte è necessario 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 (presupponendo un'app Web) venga instradato a tali server tramite un modello di distribuzione blu / verde.
Ma ovviamente è un po 'tardi per essere la prima volta che controlli il codice!
Se si verifica un ramo di rilascio in un ambiente qa, è possibile correre il rischio e ridurre i test in tempo reale solo per i test del fumo. e applicare correzioni di bug al ramo di rilascio. Ma non puoi valutare se una funzionalità è completa prima di creare una versione
Se si verifica lo sviluppo, si ottengono rami di funzionalità mini bug-fix. Le funzionalità vengono ancora unite prima di essere valutate, inoltre le funzionalità per la versione successiva possono scontrarsi con il test della versione corrente.
Se si testano i rami delle caratteristiche, sono necessari un milione di ambienti e è necessario orchestrare l'ordine delle fusioni e testare le approvazioni. oltre a numerosi test.
Dalla mia esperienza, consiglierei:
test rapido del ramo delle caratteristiche sulla macchina di sviluppo. assicurati solo che la sua funzionalità sia completa e che i tester / sviluppatori concordino sul significato dei requisiti.
Test giornalieri / test automatizzati sul ramo di sviluppo distribuito su server qa. Ti consente di testare tutte le funzionalità insieme e dire quando sei pronto per il rilascio.
Se tutte le funzionalità sono presenti ma il test non è terminato. ad es. lo sprint è completo. crea un ramo di rilascio e distribuiscilo in un secondo ambiente qa. Ciò consente la correzione dei bug / test sulla versione 1 per continuare contemporaneamente alle funzionalità per la versione 2.
(i devoti scrum diranno che dovresti mettere solo correzioni di errori nello sprint 2 ma siamo pratici)
Prove di fumo su distribuzione verde / blu dal vivo prima della commutazione. Questi sono molto importanti poiché rileverai errori di configurazione / ambientali che nessuno cerca realmente durante lo sviluppo.