Test di stabilità
Il test di stabilità è un tipo di test del software non funzionale eseguito per misurare l'efficienza e la capacità di un'applicazione software di funzionare continuamente per un lungo periodo di tempo. Lo scopo del test di stabilità è verificare se l'applicazione software si arresta in modo anomalo o non supera il normale utilizzo in qualsiasi momento, esercitando l'intera gamma di utilizzo.
Il test di stabilità viene eseguito per verificare l'efficienza di un prodotto sviluppato oltre la normale capacità operativa, spesso fino a un punto di interruzione. C'è maggiore importanza per la gestione degli errori, l'affidabilità del software, la robustezza e la scalabilità di un prodotto sotto carico pesante piuttosto che il controllo del comportamento del sistema in circostanze normali.
Il test di stabilità valuta i problemi di stabilità. Questo test ha principalmente lo scopo di sollecitare al massimo il componente software. È una tecnica non funzionale.
Il test di stabilità viene anche definito test di carico o di resistenza.
In questo tutorial imparerai-
- Che cos'è il test di stabilità?
- Problemi se un sistema sottoposto a test non è stato sottoposto a test di stabilità
- Perché eseguire i test di stabilità
- Come eseguire il test di stabilità
- Scenario di test per il test di stabilità per le prestazioni della CPU
- Rapporti di prova per i test di stabilità
Problemi se un sistema sottoposto a test non è stato sottoposto a test di stabilità
Per un'applicazione sotto test in cui viene introdotto un gran numero di utenti e applicazioni che devono essere eseguite per mesi senza riavviarsi, è probabile che si verifichino una serie di problemi:
Il possibile errore può essere affrontato,
- il sistema rallenta
- il sistema riscontra problemi di funzionalità
- il sistema mostra un comportamento cablato
- il sistema va in crash del tutto
Nell'ingegneria del software, il test di stabilità in genere implica l'esercizio del sistema con utenti pesanti (virtuali) e la misurazione dei parametri di prestazione per verificare se il sistema può supportare il carico previsto.
Perché eseguire i test di stabilità
Questo tipo di test aiuta gli utenti a comprendere il modo in cui il sistema funzionerà in situazioni di vita reale.
Quindi, il test di stabilità consente di verificare,
- Fornisci fiducia nella stabilità del tuo sistema sottoposto a test.
- Assicurati che il tuo sistema possa gestire programmi di grandi dimensioni.
- Monitora l'efficacia del tuo sistema.
- Testare la stabilità del sistema sotto stress.
Svolge un ruolo importante nello sviluppo del prodotto in quanto viene utilizzato per determinare i limiti di un prodotto software in prova prima che venga rilasciato o le aree di ulteriore miglioramento prima che il prodotto diventi operativo o in produzione.
Un esempio molto comune di tecnica di test di stabilità è
O nline S hopping P ortali: I test di stabilità verificheranno come si comporterà il sito web quando:
- Elevata quantità di dati immessi nelle ore di punta
- Numero di hit in un determinato momento specifico
- Problema di caricamento della pagina allo stesso tempo
- Comportamento del sistema
- La reattività del sistema e molti altri rientrano nei test di stabilità
Un altro esempio
Un test della CPU è una forma popolare di test di stabilità nella tecnica del test delle prestazioni. Questo test verifica la stabilità del processore e ne monitora le prestazioni man mano che il carico di lavoro del processore aumenta.
Come eseguire il test di stabilità
- Per determinare l'ambito e l'obiettivo del test, dobbiamo assicurarci che il server delle applicazioni non si arresti in modo anomalo durante le esecuzioni del test di carico.
- Per determinare i problemi aziendali, verificare le prestazioni del sistema e il carico secondo la prospettiva dell'utente finale.
- Per assegnare le diverse responsabilità e ruoli come: creazione del piano di test, progettazione del test case, revisione del test case, esecuzione del test, ecc
- Per garantire i risultati del test entro il tempo specificato
- Per garantire strumenti adeguati per il test di carico e il team di esperienza è presente per lo stesso.
- Misurare il rischio e il costo implica il test. Ciò determinerà il costo di ciascuna esecuzione in termini di utilizzo della CPU e memoria.
- Determinare il rilevamento e la segnalazione dei difetti e la corretta mappatura con i requisiti.
Scenario di test per il test di stabilità per le prestazioni della CPU
- Per verificare il limite superiore del sistema.
- Come il sistema si arresta in modo anomalo o si ripristina.
- Un numero totale di transazioni completate per richiesta.
- Indica se la risposta alla transazione rimane stabile o aumenta nel tempo.
- Come si comporta il sistema sotto carico pesante.
- La sua risposta e comportamento sotto carico pesante.
Rapporti di prova per i test di stabilità
Diverse statistiche vengono raccolte e misurate durante le esecuzioni dei test; questi numeri vengono analizzati al fine di generare un report e identificare possibili problemi di prestazioni.
Esempi di statistiche raccolte durante il test sono:
- Tempi di risposta alla transazione : il tempo medio impiegato per eseguire le transazioni durante il test. Questa statistica valuterà se le prestazioni del server rientrano nei periodi di tempo minimo e massimo accettabili per le prestazioni della transazione definiti per il sistema.
Queste informazioni valuteranno il tempo impiegato nell'elaborazione della richiesta dal server web e inviata al server dell'applicazione, che nella maggior parte dei casi effettuerà una richiesta a un server database.
- Hit al secondo: il numero di hit effettuati sul server dagli utenti. Questa statistica è utile per determinare il numero di carichi generati dagli utenti rispetto a un numero di hit.
- Throughput: la quantità di throughput sul server Web durante il test, misurata in byte. Throughput indica la quantità di dati che gli utenti hanno ricevuto dal server in un dato momento. Questa statistica aiuta a valutare la quantità di carico generata dagli utenti.
- Transazioni al secondo: sono il numero totale di transazioni completate (sia riuscite che non riuscite) eseguite durante un test. Questa statistica aiuta a controllare il carico effettivo delle transazioni sul sistema.
- CPU: percentuale di utilizzo della CPU spesa durante un test.
- Memoria: utilizzo della memoria durante un test.
- Disco: utilizzo degli spazi su disco spesi durante un test.
Con il tempo, ora puoi facilmente identificare che:
Il test di stabilità rientra nel test delle prestazioni, una tecnica che viene eseguita per verificare alcuni degli attributi di qualità del software come stabilità, affidabilità e disponibilità.
Questo test viene utilizzato per determinare la velocità di esecuzione di un sistema o sottosistema con un particolare carico di lavoro.
Il test delle prestazioni ha molti tipi e il test di stabilità è uno di questi.
- Stress test : è un tipo di test che verifica la robustezza del sistema oltre la capacità del sistema.
- Spike testing: viene utilizzato per verificare il comportamento di un sistema aumentando istantaneamente il carico di un sistema. L'obiettivo è verificare a che punto il sistema avrà problemi di prestazioni o passerà.
- Test di scalabilità: viene utilizzato per verificare le capacità di un sistema. Quanto sarà efficace il sistema che si comporterà in caso di esigenze crescenti, variazione di dimensioni e variazione di volume.
- Test di volume: è una tecnica di test non funzionale in cui il software sottoposto a test è soggetto a un enorme volume di dati e il comportamento di un sistema viene controllato e verificato di conseguenza.
- Test di carico o stabilità : (già discusso sopra)
Alcuni degli strumenti per il test delle prestazioni sono:
- WebLOAD
- LoadRunner
- Apache JMeter
- NeoLoad
- CloudTest
- Loadstorm
- LoadUI
- WAPT
- LoadImpact
- Loadster
- Httperf
- OpenSTA
- Tester delle prestazioni
- Testare ovunque
Conclusione:
Il test di stabilità è un processo non funzionale per testare il comportamento dell'applicazione applicando il carico massimo. Viene eseguito per scoprire la scalabilità del sistema in un determinato ambiente.
Questo articolo è fornito da Vaibhav Chitransh