Storia della domanda
Gli ambienti di test sono emersi con l'aumento della complessità dei prodotti IT. L'assegnazione di un ambiente separato consente ai tester di controllare in modo sicuro una nuova funzionalità, senza intaccare utenti e dati reali.
Problema
Se il test viene eseguito in un ambiente di produzione, ci possono essere perdite di dati, interruzioni dei processi aziendali o incidenti di sicurezza. A volte gli ambienti di test e di produzione differiscono, il che porta a errori "elusivi": le modifiche funzionano nel test, ma si rompono in produzione (o viceversa).
Soluzione
Si organizzano ambienti separati per i test (test, staging, pre-prod), che riproducono il più possibile l'ambiente di produzione. Per il testing manuale è importante che ci sia una reale corrispondenza tra API, dati, configurazione e persino "hardware". Si presta particolare attenzione all'isolamento dei dati degli utenti, alla configurazione della registrazione, del monitoraggio e dei dati di controllo.
Caratteristiche chiave:
È possibile utilizzare l'ambiente di produzione per i test se i test sono innocui?
No, c'è sempre il rischio di interrompere il lavoro degli utenti o di "dare alla luce" dati di test. Anche i test "innocui" possono influenzare le statistiche o causare un carico.
Qual è la differenza tra gli ambienti test, staging e pre-prod?
Test — ambiente per i principali test manuali e automatizzati, può differire per dati. Staging/pre-prod — il più simile possibile alla produzione, riproduce infrastruttura e dati per il test finale.
Quali dati è preferibile utilizzare in un ambiente di test: reali, anonimizzati o sintetici?
La soluzione migliore sono dati anonimizzati, simili nella struttura ai dati reali. Dati reali compromettono la sicurezza, dati esclusivamente sintetici — non riflettono il comportamento reale.
Il test di una correzione di bug viene eseguito in produzione, dopo il rilascio la correzione viene effettuata solo nell'ambiente di test, con il risultato che in produzione — nuovo errore: i clienti si lamentano in massa.
Vantaggi:
Svantaggi:
Il team controlla manualmente una funzionalità su uno staging separato, i dati di test vengono aggiornati regolarmente, i test sono il più vicini possibile alla realtà.
Vantaggi:
Sicurezza della produzione
Svantaggi: