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.

  • 💾 Definizione di base: Il volume dei dati aumenta mentre il carico degli utenti rimane normale.
  • 🔍 Controlli primari: Perdita di dati, sovrascrittura silenziosa, accuratezza dell'archiviazione e tempo di risposta in presenza di un set di dati di grandi dimensioni.
  • 📈 Punto di degradazione: Il test individua il volume al quale stabilità e prestazioni iniziano a diminuire.
  • Non si tratta di un test di carico: Il volume scala in base alle dimensioni di righe e file; il carico scala in base al numero di utenti simultanei. I due parametri individuano difetti diversi.
  • 🧪 Realismo dei dati: I dati generati devono rispettare le chiavi e l'integrità relazionale, che è la parte più difficile del test.
  • 💰 Caso aziendale: I limiti di capacità riscontrati prima del rilascio hanno un costo nettamente inferiore rispetto agli stessi limiti riscontrati in fase di produzione.

Cos'è il test di volume?

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
  • Il test di volume verifica il comportamento di un'applicazione quando il database contiene una quantità di dati molto elevata.
  • Durante il test di carico, l'applicazione è soggetta a un certo livello di carico per analizzare il comportamento dell'applicazione
  • Il test di volume verifica che il sistema continui a rispondere correttamente a un determinato volume di dati. In genere, aumenta le dimensioni di file e tabelle.
  • Il test di carico verifica le prestazioni all'aumentare del numero di utenti simultanei. In genere, aumenta il numero di richieste simultanee.

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.

DOMANDE FREQUENTI

I test di volume aumentano la quantità di dati nel sistema mentre il carico di utenti rimane normale. I test di carico aumentano il numero di utenti simultanei mentre il set di dati rimane normale. Entrambi i metodi mettono in luce colli di bottiglia diversi, quindi sono necessari.

Parti dal volume di dati previsto alla fine dell'orizzonte di capacità pianificato, in genere due o tre anni di crescita, quindi esegui dei test con quel valore e con il doppio di esso per individuare il punto in cui inizia il degrado.

Indici mancanti o inefficienti, query che scalano in modo non lineare, esaurimento della memoria, troncamento silenzioso dei campi e processi batch il cui tempo di esecuzione supera la finestra temporale disponibile.

I modelli di intelligenza artificiale apprendono la distribuzione statistica e le relazioni dei dati di produzione, quindi generano record sintetici che preservano tali proprietà senza esporre alcun dato reale del cliente.

Sì, in una certa misura. I modelli adattati alle curve di degrado misurate estrapolano il punto di guasto, ma la proiezione deve essere confermata da una prova effettiva prima di poter guidare una decisione sulla capacità produttiva.

Riassumi questo post con: