Cos'è lo STRESS Test nel test del software?
Test di stress
Test di stress è un tipo di test del software che verifica la stabilità e l'affidabilità dell'applicazione software. L'obiettivo dello stress test è misurare la robustezza del software e le sue capacità di gestione degli errori in condizioni di carico estremamente gravose e garantire che il software non si blocchi in situazioni di crisi. Esegue test anche oltre i normali punti operativi e valuta il funzionamento del software in condizioni estreme.
Nell'ingegneria del software, lo stress test è anche noto come Test di resistenza. Durante lo stress test, l'AUT viene sottoposto a stress per un breve periodo di tempo per verificarne la capacità di resistenza. Un uso molto importante Lo stress test consiste nel determinare il limite oltre il quale il sistema, il software o l'hardware si rompono. Verifica inoltre se il sistema dimostra un'efficace gestione degli errori in condizioni estreme.
L'applicazione in fase di test verrà sottoposta a stress quando i dati da 5 GB verranno copiati dal sito Web e incollati nel blocco note. Il Blocco note è sotto stress e visualizza il messaggio di errore "Non risposto".
Necessità di stress test
Consideriamo i seguenti esempi in tempo reale in cui possiamo scoprire l'utilizzo dello Stress Testing:
- Durante il periodo dei festival, un sito di shopping online potrebbe registrare un picco di traffico o quando annuncia una svendita.
- Quando un blog viene menzionato in un importante quotidiano, subisce un improvviso aumento del traffico.
È fondamentale eseguire stress test per far fronte a tali picchi di traffico anomali. La mancata gestione di questo traffico improvviso può comportare la perdita di entrate e reputazione.
Gli stress test sono estremamente preziosi anche per i seguenti motivi:
- Per verificare se il sistema funziona in condizioni anomale.
- Visualizzazione del messaggio di errore appropriato quando il sistema è sotto stress.
- Un guasto del sistema in condizioni estreme potrebbe comportare un’enorme perdita di entrate
- È meglio essere preparati per condizioni estreme eseguendo stress test.
Obiettivi dello stress test
Lo scopo dello stress test è analizzare il comportamento del sistema dopo un guasto. Affinché lo stress test abbia successo, un sistema dovrebbe visualizzare un messaggio di errore appropriato mentre si trova in condizioni estreme.
Per condurre stress test, a volte, possono essere utilizzati enormi set di dati che potrebbero andare persi durante lo stress test. I tester non dovrebbero perdere questi dati relativi alla sicurezza durante l'esecuzione di stress test.
Lo scopo principale dello stress test è garantire che il sistema si ripristini dopo un guasto chiamato as recuperabilità.
Test di carico e test di stress
Caricare i test | Test di stress |
---|---|
Caricare i test è testare il comportamento del sistema in condizioni normali di carico di lavoro e sta semplicemente testando o simulando il carico di lavoro effettivo | Lo stress test consiste nel testare il comportamento del sistema in condizioni estreme e viene eseguito fino al guasto del sistema. |
Il test di carico non danneggia il sistema | Gli stress test tentano di rompere il sistema testando con dati o risorse eccessivi. |
Tipi di stress test
Di seguito sono riportati i tipi di stress test e vengono spiegati come segue:
Test di stress distribuiti:
Nei sistemi client-server distribuiti, il test viene eseguito su tutti i client dal server. Il ruolo dello stress server è quello di distribuire una serie di stress test a tutti i client stress e tenere traccia dello stato del client. Dopo che il client ha contattato il server, il server aggiunge il nome del client e inizia a inviare i dati per il test.
Nel frattempo, le macchine client inviano segnali o heartbeat che sono connesse al server. Se il server non riceve alcun segnale dalla macchina client, è necessario effettuare ulteriori indagini per il debug. Dalla figura, un server può connettersi con i 2 client (Client1 e Client2), ma non può inviare o ricevere un segnale dai Client 3 e 4.
La corsa notturna è l'opzione migliore per eseguire questi scenari di stress test. Le server farm di grandi dimensioni necessitano di un metodo più efficiente per determinare quali computer hanno subito guasti da stress che devono essere analizzati.
Test di stress dell'applicazione:
Questi test si concentrano sulla ricerca di difetti relativi al blocco e al blocco dei dati, ai problemi di rete e ai colli di bottiglia delle prestazioni in un'applicazione.
Stress test transazionali:
Esegue stress test su una o più transazioni tra due o più applicazioni. Viene utilizzato per mettere a punto e ottimizzare il sistema.
Test di stress sistemico:
Si tratta di stress test integrati che possono essere testati su più sistemi in esecuzione sullo stesso server. Viene utilizzato per trovare difetti in cui i dati di un'applicazione bloccano un'altra applicazione.
Test di stress esplorativo:
Questo è uno dei tipi di stress test utilizzato per testare il sistema con parametri o condizioni insoliti che difficilmente si verificheranno in uno scenario reale. Viene utilizzato per trovare difetti in scenari imprevisti come
- Un gran numero di utenti hanno effettuato l'accesso contemporaneamente
- Se uno scanner antivirus è stato avviato contemporaneamente su tutte le macchine
- Se il database è andato offline quando si accede da un sito Web,
- Quando un grande volume di dati viene inserito contemporaneamente nel database
Come eseguire lo stress test?
Il processo di stress test può essere eseguito in 5 fasi principali:
Passaggio 1) Pianificazione dello stress test: Qui raccogli i dati del sistema, analizzi il sistema, definisci gli obiettivi dello stress test
Passaggio 2) Creare script di automazione: In questa fase si creano gli script di automazione dello stress test e si generano i dati di test per gli scenari di stress.
Passaggio 3) Esecuzione dello script: In questa fase si eseguono gli script di automazione dello stress testing e si memorizzano i risultati dello stress.
Passaggio 4) Analisi dei risultati: In questa fase si analizzano i risultati dello stress test e si identificano i colli di bottiglia.
Passaggio 5) Modifica e ottimizzazione: In questa fase, perfezioni il sistema, modifichi le configurazioni, ottimizzi il codice con l'obiettivo di raggiungere il benchmark desiderato.
Infine, esegui nuovamente l'intero ciclo per determinare se le modifiche hanno prodotto i risultati desiderati. Ad esempio, non è insolito dover eseguire da 3 a 4 cicli del processo di stress test per raggiungere gli obiettivi prestazionali
Strumenti consigliati per le prove da sforzo
LoadRunner
LoadRunner di HP è uno strumento di test di carico ampiamente utilizzato. I risultati dei test di carico elaborati da Loadrunner sono considerati un punto di riferimento.
JMeter
Jmeter è uno strumento di test Open Source. È puro Java domanda per lo stress e Test di Performance. Jmeter è destinato a coprire tipi di test come carico, funzionale, stress, ecc. Per funzionare ha bisogno di JDK 5 o superiore.
Prova di sforzo
Questo strumento fornisce un'analisi approfondita delle prestazioni dell'applicazione web, fornisce risultati in formato grafico ed è estremamente facile da usare. Non è richiesto alcuno scripting di alto livello e offre un buon ritorno sull'investimento.
Neo caricare
Questo è uno strumento popolare disponibile sul mercato per testare il web e Mobile applicazioni. Questo strumento può simulare migliaia di utenti per valutare le prestazioni dell'applicazione sotto carico e analizzare i tempi di risposta. Supporta anche l'integrazione nel cloud: test di prestazioni, carico e stress. È facile da usare, conveniente e offre una buona scalabilità.
Metriche per lo stress test
Le metriche aiutano a valutare le prestazioni di un sistema e generalmente vengono studiate al termine dello stress test. Le metriche comunemente utilizzate sono:
Misurare scalabilità e prestazioni
- Pagine al secondo: misura quante pagine sono state richieste/secondo
- Produttività: metrica di base: dimensione dei dati di risposta/secondo
- Round: numero di volte in cui sono stati pianificati scenari di test rispetto al numero di volte in cui un client è stato eseguito
Risposta alla domanda
- Hit time: tempo medio per recuperare un'immagine o una pagina
- Tempo per il primo byte: il tempo è necessario per restituire il primo byte di dati o informazioni
- Page Time: il tempo è necessario per recuperare tutte le informazioni in una pagina
fallimenti
- Connessioni non riuscite: numero di connessioni non riuscite rifiutate dal client (Weak Signal)
- Round falliti: numero di round falliti
- Riscontri non riusciti: numero di tentativi falliti effettuati dal sistema (collegamenti interrotti o immagini non visualizzate)
Conclusione
L'obiettivo dello stress test è verificare il sistema in condizioni estreme. Monitora le risorse di sistema come memoria, processore, rete ecc. e controlla la capacità del sistema di ripristinare lo stato normale. Controlla se il sistema visualizza messaggi di errore appropriati mentre è sotto stress.
Esempio di stress test
- Il sito di e-commerce annuncia una svendita del festival
- Sito di notizie al momento di alcuni eventi importanti
- Sito web dei risultati dell'Education Board
- Siti o blog di social network, app, ecc