In questo articolo vediamo la differenza tra due strategie di test: il Performance Testing ed il Load Testing.
In questo articolo vediamo la differenza tra due strategie di test: il Performance Testing ed il Load Testing.
Prima di procedere, è necessario dare alcune definizioni preliminari sulle due tipologie di test. Come prima differenza, le due tipologie rispondono a due domande diverse sul sistema in esame [1]:
- Performance Testing = risponde alla domanda “quanto è veloce il sistema?”
- Load Testing = risponde alla domanda “quale carico può sostenere e processare il sistema?”
Nel dettaglio, il load testing (in italiano potremmo tradurlo con test di carico) è il processo di valutazione del comportamento del sistema sotto carico al fine di rilevare i problemi dovuti a uno o entrambi i seguenti motivi:
- problemi legati al funzionamento (es. bug funzionali che appaiono solo sotto carico)
- problemi non funzionali (cioè violazioni in requisiti di qualità non funzionali sotto carico).
Il performance test viene invece utilizzato per misurare e/o valutare aspetti correlati alle prestazioni (ad es. tempo di risposta, velocità effettiva e utilizzo delle risorse) di algoritmi, architetture, moduli, configurazioni o sistemi generali. Lo stress test mette un sistema in condizioni estreme (ad esempio, carico superiore al previsto o risorse di calcolo limitate) per verificare la robustezza del sistema e/o rilevare vari bug funzionali (ad es. perdite di memoria e deadlock).
Il Load Testing è dunque più allineato con il test black box mentre il Performance Testing con quello white box, in quanto le prestazioni richiedono di entrare nel dettaglio dei vari componenti di un sistema.
Riassumendo, il LoadTesting è:
- simile, ma non sinonimo di test delle prestazioni
- concerne il volume di traffico che il tuo sito web (o applicazione) può gestire
- non è destinato a corrompere il sistema
- visualizzazione del sistema dal punto di vista dell’utente
- associato al test black box
mentre il Performance Testing è:
- un superset del load testing (esso è a volte definito come la combinazione dei seguenti 3 test: Load Testing, Stress Testing, Volume Testing)
- preoccupato della velocità e dell’efficienza dei vari componenti dell’applicazione web
- utile con un solo utente e / o una transazione
- vede il sistema dal punto di vista dell’architettura
- associato al test della white box
Nella successiva tabella indichiamo alcuni Tool Software Open Source che possono essere impiegati per il performance e load testing:
Tipologia Test | Tool SW | Descrizione | |
---|---|---|---|
Load | Apache JMeter | Strumento per il load testing scritto in Java, utilizzato non solo per le applicazione web, ma anche per il testing di connessioni di basi di dati JDBC, FTP, LDAP, JMS, etc. | |
Performance | JMH | JMH è l’acronimo di Java Microbenchmark Harness ed è un toolkit che aiuta a implementare correttamente dei microbenchmark Java per il test delle performance. |
[1] https://loadstorm.com/2010/01/load-testing-vs-performance-testing/
COMMENTS