Qual è la differenza tra gli ambienti di staging e UAT?

6

So che dovremmo avere almeno 3 ambienti diversi durante lo sviluppo di una soluzione:

  • Sviluppo : i programmatori sono liberi di cambiare e apportare modifiche in qualsiasi momento per testare rapidamente il loro codice e integrarsi con altre modifiche, senza il timore di rompere nulla: questo è collegato ai database e ai servizi TEST;
  • UAT : dovrebbe essere trattato con riverenza dagli sviluppatori, in quanto dovrebbe contenere una copia "quanto più buona" possibile dell'ambiente di produzione per quanto riguarda l'hardware, con la differenza che questo ambiente è collegato ai database UAT con una copia modificabile dei dati di produzione - è utilizzata sia dal team Q & A sia dagli utenti per convalidare le modifiche che andranno in produzione
  • Produzione : il vero affare.

Ho esaminato questa domanda su SoftwareEngineering e questa domanda su ServerFault , e sembrano differire su quale sia il significato dell'ambiente di staging . Inoltre, la pagina di Wikipedia sull'argomento afferma che:

The primary use of a staging environment is to test all installation/configuration/migration scripts and procedures, before they are applied to production environment. This ensures that all major and minor upgrades to the production environment will be completed reliably without errors, in minimum time.

Per me, Staging è uguale a UAT, in cui è necessario testare le procedure di applicazione e distribuzione prima di passare al mondo reale. Quindi, spingiamo il pacchetto con le modifiche a UAT nello stesso modo in cui spingiamo alla produzione, completamente automatizzato e con tutta la cerimonia che dovremmo avere con l'ambiente di produzione.

Detto questo, qual è la differenza tra un ambiente UAT e un ambiente di Staging?

-

EDIT: Solo per essere chiari, sto pensando in termini di un'applicazione Web, che si tratti di un sito Web o di un sito Web intranet. Nessuna app "form" o app per dispositivi mobili.

    
posta Machado 04.08.2017 - 16:19
fonte

4 risposte

6

La differenza sono i dati.

Un ambiente UAT è impostato per "l'accettazione dell'utente" di nuove funzionalità. Al fine di testare tale funzionalità, il controllo qualità o le parti interessate possono impostare profili utente in un modo particolare al fine di esercitare particolari funzioni, oppure possono configurare prodotti o configurazioni simulati per verificarli tutti.

Un ambiente di staging viene spesso impostato con una copia dei dati di produzione, a volte anonimizzati. Alcune aziende aggiornano regolarmente il proprio database di staging da un'istantanea di produzione. L'obiettivo principale è garantire che l'applicazione funzioni in produzione nello stesso modo in cui ha funzionato in UAT. Invece di impostare nuovamente i dati, i tester cercheranno nel database profili e prodotti che corrispondono a una serie essenziale di casi di test. Spesso i "veri" dati hanno stranezze in loro che danno origine a casi inaspettati che sono mancati durante l'UAT. Inoltre, qualsiasi test di migrazione dei dati dovrebbe aver luogo nell'ambiente di staging.

    
risposta data 05.08.2017 - 03:13
fonte
1
| Environment | Software version  | Way of usage of software |
 ------------- ------------------- --------------------------
| UAT         | New               | Same as production       |
| Staging     | New or production | New for this version     |

La definizione di utilizzo è molto ampia qui e potrebbe includere tutti i tipi di cose che vanno da alcuni cambiamenti di configurazione fatti dagli utenti finali a costose funzionalità di infrastruttura non disponibili sull'ambiente UAT. Importante versione del prodotto software in staging può essere nuova o attuale ma sempre una che ha già superato l'accettazione.

In altre parole:

  • UAT esiste per dimostrare che nuova versione del prodotto software funzionerebbe se utilizzata nello stesso modo di come viene utilizzata la versione corrente.
  • Staging esiste per dimostrare che un nuovo modo di utilizzo dei prodotti software con una versione accettata del prodotto software funzionerebbe allo stesso modo di come viene utilizzata la versione corrente del software.

Nota: come è stato descritto nella domanda stessa, ci sono diverse interpretazioni di "Ambiente di staging" e quello utilizzato nella tua azienda / ambiente potrebbe essere diverso.

    
risposta data 04.08.2017 - 22:34
fonte
0

L'uso di questi diversi ambienti dipende molto dalle tue esigenze. Dal tuo commento "staging == UAT", suona molto come se avessi un'applicazione molto piccola senza team di controllo qualità e solo un paio di sviluppatori.

Ambienti di applicazioni più grandi potrebbero avere un ambiente di test di integrazione, nonché un ambiente di controllo qualità, il primo in cui gli sviluppatori eseguono i test di integrazione e il secondo in cui il team addetto al QA esegue i test. Potrebbe esserci un ambiente di allenamento con dati di stock ripristinati prima di ogni sessione di allenamento. L'ambiente di staging sarebbe sotto il controllo del team operativo, per garantire che i roll-out si verifichino correttamente. L'ambiente user-acceptance-test (UAT) verrebbe utilizzato dal team del cliente. Potrebbe anche esserci un ambiente di snapshot di produzione per riprodurre i problemi dei clienti.

Il mio punto è di fare attenzione al singolo punto di vista per determinare gli ambienti di cui hai bisogno.

    
risposta data 04.08.2017 - 16:39
fonte
-1

UAT sta per " User Test di accettazione" ed è l'ambiente in cui viene eseguito il test di accettazione dell'utente. Nota l'enfasi sull'utente: il tuo test del QA è diverso, l'UAT è una possibilità per gli utenti effettivi (o almeno il tuo team di formazione, vendite, personale di supporto, ecc ...) di provare nuove funzionalità e valutare il software prima che venga distribuito a i loro sistemi di produzione.

Ciò significa esattamente che dipenderà dai tuoi processi:

  • UAT (l'ambiente) potrebbe essere "di livello" con la produzione, ed è essenzialmente una sandbox per consentire agli utenti di provare nuove funzionalità con.
  • UAT (l'ambiente) potrebbe essere "avanti" della produzione, in modo che le nuove funzionalità non vengano distribuite alla produzione finché non sono state valutate. (Non sono entusiasta di questo approccio perché significa necessariamente avere tempi di consegna più lunghi).
  • Se disponi di un sistema multi-tenant potresti non aver nemmeno bisogno di un ambiente UAT, potresti invece scegliere di far valutare agli utenti le nuove funzionalità nei sistemi di produzione utilizzando i flag di funzionalità.

In termini di distribuzione continua / consegna continua, l'ambiente di staging viene utilizzato per testare il software in un ambiente "simile alla produzione", in quanto è probabile che gli sviluppatori lavorino in un ambiente con differenze significative rispetto alla produzione (ad esempio nessun bilanciamento del carico , un set di dati più piccolo ecc ...)

    
risposta data 04.08.2017 - 16:40
fonte

Leggi altre domande sui tag