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: