Cos'รจ il test del volume? Impara con gli esempi
โก Riepilogo intelligente
Il Volume Testing sottopone un'applicazione a una quantitร molto elevata di dati per verificare come si comportano lo storage, le query e i tempi di risposta al crescere del database. ร anche chiamato flood testing e si basa sulla scalabilitร dei dati anzichรฉ sul numero di utenti.

Cos'รจ il test del volume?
Test di volume รจ un tipo di test del software, in cui il software viene sottoposto a un enorme volume di dati. Viene anche indicato come test di inondazione. Il test del volume viene eseguito per analizzare le prestazioni del sistema aumentando il volume dei dati nel database.
Con l'aiuto del test del volume, รจ possibile studiare l'impatto sui tempi di risposta e sul comportamento del sistema quando esposto a un volume elevato di dati.
Ad esempio, un servizio di streaming musicale potrebbe essere testato con un catalogo di 50 milioni tracks e una tabella di cronologia di ascolto contenente miliardi di righe, per verificare se le query di ricerca e raccomandazione restituiscono ancora risultati in tempi accettabili.
Si noti la distinzione: il test di volume aumenta il quantitร di dati il sistema regge. Aumentando il numero di utenti simultanei รจ un test di carico, che รจ un test diverso con un obiettivo diverso.
Vantaggi del test del volume
- L'individuazione tempestiva dei problemi di capacitร produttiva consente di evitare i costi ben piรน elevati necessari per risolverli in fase di produzione.
- Aiuta ad avviare piรน rapidamente i piani di scalabilitร
- Identificazione precoce dei colli di bottiglia
- Garantisce che il tuo sistema sia ora in grado di essere utilizzato nel mondo reale
Perchรฉ eseguire test di volume?
L'obiettivo dell'esecuzione del test del volume รจ quello di
- Controlla le prestazioni del sistema con l'aumento dei volumi di dati nel database
- Identificare i problemi che probabilmente si presenteranno quando il set di dati diventerร grande
- Per capire il punto in cui la stabilitร del sistema degrada
- Il test del volume aiuterร a identificare la capacitร del sistema o dell'applicazione: volume normale e pesante
Come eseguire il test del volume
Nei test di volume, รจ necessario testare le seguenti cose
- Test per verificare se c'รจ qualche perdita di dati
- Controllare il tempo di risposta del sistema
- Controlla se i dati sono memorizzati correttamente o meno
- Verificare se i dati vengono sovrascritti senza alcuna notifica
- Verifica che gli avvisi e i messaggi di errore vengano effettivamente visualizzati al raggiungimento di un limite di volume.
- Controlla se un volume elevato di dati influisce sulla velocitร di elaborazione
- Verificare che il sistema disponga delle risorse di memoria e di archiviazione necessarie al volume.
- Verificare che il test di volume copra l'intero sistema e non un singolo componente.
- Esiste qualche rischio se il volume dei dati รจ maggiore di quanto specificato
- Verificare se esiste una garanzia che il volume dei dati non supererร il massimo specificato
Migliori pratiche per test ad alto volume
Molte delle pratiche descritte di seguito sono comuni ai test di carico, poichรฉ entrambi vengono generalmente eseguiti nello stesso ambiente. Quelle specifiche per i test di volume riguardano il set di dati stesso:
- Arrestare tutti i server e controllare tutti i registri
- Prima del test di carico, eseguire manualmente lo scenario dell'applicazione
- Per ottenere risultati piรน utili, scaglionare il numero di utenti
- Per superare i vincoli di licenza, bilancia il tempo di riflessione
- Sii cauto con la nuova build
- Analizzare il caso d'uso per migliorarlo una volta stabilita una linea di base
- Una ripetizione di parti particolari del test del volume diventa inevitabile nel caso in cui si verifichi un collo di bottiglia nelle prestazioni
Test di volume vs test di carico
| Test di volume | Caricare i test |
|---|---|
|
|
|
|
Sfide nei test di volume
- Frammentazione della memoria difficile da generare
- Generazione dinamica delle chiavi
- Relazionale Integrity di dati generati
Come si confronta questo test con altri test di performance?
I test di prestazione sono una famiglia di test che si differenziano per la forma del carico applicato, motivo per cui sono cosรฌ facilmente confusi.
| Tipo di test | Cosa aumenta? | Domanda a cui risponde |
|---|---|---|
| Test di carico | Utenti simultanei, fino al picco previsto | Raggiunge gli obiettivi prefissati in condizioni di traffico di punta normali? |
| Test volumetrico | Dati contenuti nel database | Riesce a gestire la crescita del set di dati? |
| Test da sforzo | Caricare oltre la capacitร , fino al cedimento | Dove si rompe e in che modo? |
| Test delle punte | Carica, istantaneamente ed estremamente | Riesce a sopravvivere e a riprendersi da uno shock? |
| Test di resistenza | Durata, a carico normale | Le prestazioni si degradano nel tempo? |
| Test di immersione | Durata, risorse di visualizzazione | Sono presenti perdite di memoria o di handle? |
| Test di stabilitร | Condizioni variabili | Rimane affidabile al variare delle condizioni? |
La distinzione che conta di piรน qui รจ: I test di volume scalano i dati, i test di carico scalano il numero di utenti. Un report che impiega due secondi per elaborare diecimila righe e due minuti per elaborarne dieci milioni presenta un problema di volume, non di carico, e nessuna quantitร di capacitร aggiuntiva del server potrร risolverlo.
Come generare dati di test per i test di volume
La sezione dedicata alle sfide evidenzia che la generazione di dati realistici รจ la parte piรน difficile dei test di volume. In pratica si utilizzano quattro approcci, ognuno dei quali comporta un compromesso.
| Approccio | Realismo | Svantaggio principale |
|---|---|---|
| Copia dei dati di produzione | Massimo | Rischi legati alla privacy e alla conformitร normativa |
| Copia di produzione mascherata | Alto | La mascheratura puรฒ compromettere l'integritร referenziale |
| generazione sintetica | Medio | Le distribuzioni potrebbero non corrispondere alla realtร |
| Traffico di produzione riprodotto | Alto | Richiede un'infrastruttura di acquisizione |
Qualunque percorso si scelga, tre proprietร devono essere soddisfatte, altrimenti il โโtest non misura nulla di utile.
- Integritร referenziale. Ogni chiave esterna deve essere risolvibile. Un milione di righe orfane mettono alla prova il motore di archiviazione, ma non i percorsi di join effettivamente utilizzati dall'applicazione.
- Cardinalitร realistica. Se la tabella di produzione contiene dieci milioni di righe relative a duecento clienti, la generazione di dieci milioni di righe relative a dieci milioni di clienti produce piani di query completamente diversi.
- Distribuzione realistica. I dati reali sono distorti. I dati generati in modo uniformemente casuale nascondono le partizioni critiche e i conflitti di indicizzazione che causano incidenti in produzione.
Un avvertimento pratico sulla privacy. Copiare i dati di produzione in un ambiente di test รจ la causa piรน comune di violazione dei dati durante le fasi di test. Mascherare i campi personali prima che la copia lasci l'ambiente di produzione, non dopo.
