Qual è la differenza tra ambienti di gestione temporanea e UAT?


10

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

  • Sviluppo : i programmatori sono liberi di cambiare e inviare cambiamenti in qualsiasi momento al fine di testare rapidamente il loro codice e integrarsi con altri cambiamenti, senza il timore di infrangere nulla - questo è collegato ai database e ai servizi TEST;
  • UAT : dovrebbe essere trattato con rispetto da parte degli sviluppatori, in quanto dovrebbe contenere una copia "il 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 - viene utilizzato sia dal team di domande e risposte che dagli utenti per convalidare le modifiche che andranno alla produzione
  • Produzione : il vero affare.

Ho esaminato questa domanda su SoftwareEngineering e questa domanda su ServerFault e sembrano differire sul significato dell'ambiente di gestione temporanea. Inoltre, la pagina di Wikipedia sull'argomento afferma che:

L'uso primario di un ambiente di gestione temporanea è testare tutti gli script e le procedure di installazione / configurazione / migrazione, prima che vengano applicati all'ambiente di produzione. Ciò garantisce che tutti gli aggiornamenti maggiori e minori all'ambiente di produzione vengano completati in modo affidabile e senza errori, nel minor tempo possibile.

Per me, la stadiazione è uguale a UAT, dove è necessario testare le procedure di applicazione e distribuzione prima di spingere nel 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 corretta tra un ambiente UAT e un ambiente di staging?

-

EDIT: Giusto per essere chiari, sto pensando in termini di un'applicazione Web, che si tratti di un sito Web Internet o di un sito Web Intranet. Nessuna app "moduli" o app mobile.


4
Voglio che più persone intervengano, ma questo sembra principalmente basato sull'opinione pubblica. Nel mio ambiente attuale, Staging e UAT sono diversi. UAT è un ambiente pubblico dal vivo sincronizzato con le distribuzioni di produzione ma con un carico di dati diverso per consentire agli utenti di giocare con il software. Ci riferiamo ad esso come un ambiente Sandbox per gli utenti. La gestione temporanea è un luogo privato per testare le modifiche alla distribuzione e all'infrastruttura prima di eseguirle in Production e UAT. Esistono obblighi nei confronti dei clienti in merito alla disponibilità e all'uso dell'UAT, ma non alla gestione temporanea. Altre società sono probabilmente diverse.
Thomas Owens

@ThomasOwens il punto è proprio questo: entrambi gli ambienti sono diversi e per alcune persone sembra essere una cosa e per altre persone significa altre cose. La domanda su Server Fault ha affermato che si utilizza la gestione temporanea che punta ai dati di produzione online e si "capovolge", che ritengo sia un approccio interessante, ma è una visione diversa da quella che stai dicendo.
Machado,

2
Il fatto che sia una cosa per alcune persone e qualcos'altro per altre persone è ciò che rende questo principalmente basato sull'opinione: non c'è una risposta. Non ho ancora premuto il grilletto per chiuderlo, nel caso mi sbagli. È una domanda ben scritta e potrebbe esserci una definizione standard là fuori. Ora, se le persone scelgono di ignorare quella definizione standard e usano la propria è un'altra storia.
Thomas Owens

@ThomasOwens, bella dichiarazione. Se non ti dispiace, tieniamolo aperto per un paio di giorni e se genera solo risposte basate sull'opinione, sarei felice di votare per chiudere con te. :)
Machado

@ThomasOwens concordato Sento che anche questa domanda è in qualche modo soggettiva in quello che le persone chiamano messa in scena. Il nostro UAT e l'ambiente di gestione temporanea sono la "stessa cosa", ma ciò è dovuto al fatto che disponiamo di molte versioni, quindi quando siamo pronti per il rilascio, rileviamo l'ambiente di gestione temporanea e lo prepariamo affinché l'UAT lo rilasci. Gli sviluppatori che stanno lavorando per conto proprio hanno ancora un modo di utilizzare i rami delle caratteristiche nel nostro ambiente di palcoscenico, quindi non li bloccano.
agosto

Risposte:


10

La differenza sono i dati.

Un ambiente UAT è impostato per "l'accettazione da parte dell'utente" di nuove funzionalità. Al fine di testare tale funzionalità, il QA o le parti interessate possono impostare i profili utente in un modo particolare al fine di esercitare determinate funzionalità o impostare prodotti o configurazioni fittizi per verificarli tutti.

Un ambiente di gestione temporanea viene spesso impostato con una copia dei dati di produzione, a volte anonimizzata. Alcune aziende "aggiornano" regolarmente il loro database di gestione temporanea da un'istantanea di produzione. L'obiettivo principale è garantire che l'applicazione funzionerà 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 dati "reali" presentano delle stranezze che generano casi limite imprevisti che sono stati persi durante l'UAT. Inoltre, qualsiasi test di migrazione dei dati dovrebbe aver luogo nell'ambiente di gestione temporanea.


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 ogni genere di cose che vanno da alcuni cambiamenti di configurazione effettuati dagli utenti finali a costose funzionalità di infrastruttura non disponibili nell'ambiente UAT. È importante sottolineare che la versione del prodotto software in scena può essere nuova o attuale, ma sempre una che ha già superato l'accettazione.

In altre parole:

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

Nota: come è stato rappresentato nella domanda stessa, esistono diverse interpretazioni di "Ambiente di gestione temporanea" e quello utilizzato nella propria azienda / ambiente potrebbe essere diverso.


0

L'uso di questi diversi ambienti dipende davvero dalle tue esigenze. Dal tuo commento "staging == UAT", sembra quasi che tu abbia un'applicazione molto piccola senza team di controllo qualità e solo un paio di sviluppatori.

Ambienti di applicazione 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 di controllo qualità esegue i test. Potrebbe esserci un ambiente di allenamento che contiene dati di magazzino ripristinati prima di ogni sessione di allenamento. L'ambiente di gestione temporanea sarebbe sotto il controllo del team operativo, per garantire che i roll-out avvengano correttamente. L'ambiente di test di accettazione dell'utente (UAT) verrebbe utilizzato dal team del cliente. Potrebbe esserci anche un ambiente di snapshot di produzione per riprodurre i problemi dei clienti.

Il mio punto è di fare attenzione al singolo punto di vista quando si determinano gli ambienti necessari.


Sembra che tu abbia 3 diversi ambienti di test, con scopi diversi, ma comunque ambienti di test: 1 incentrato su domande e risposte, 1 incentrato sugli sviluppatori e uno incentrato sul team operativo. Ma tutti stanno ancora testando gli ambienti e legati ai database di test, per esempio. È corretto o mi sto perdendo qualcosa?
Machado,

Ognuno di loro sarebbe legato ai propri database, sì.
BobDalgleish,

-1

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

Cosa significa esattamente dipenderà dai tuoi processi:

  • UAT (l'ambiente) potrebbe essere "a livello" con la produzione ed è essenzialmente una sandbox con cui gli utenti possono provare nuove funzionalità.
  • UAT (l'ambiente) potrebbe essere "in anticipo" rispetto alla produzione, in modo che le nuove funzionalità non vengano implementate nella produzione fino a quando non saranno state valutate. (Non sono appassionato di questo approccio in quanto significa necessariamente che hai tempi di consegna più lunghi).
  • Se hai un sistema multi-tenant potresti non aver nemmeno bisogno di un ambiente UAT, invece potresti scegliere di fare in modo che gli utenti valutino le nuove funzionalità nei sistemi di produzione facendo uso dei flag delle funzionalità.

In termini di distribuzione continua / consegna continua, l'ambiente di gestione temporanea viene utilizzato per testare il software in un ambiente "simile alla produzione", poiché è probabile che gli sviluppatori lavoreranno in un ambiente con differenze significative nella produzione (ad esempio, nessun bilanciamento del carico, un valore inferiore set di dati ecc ...)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.