performance testing vs load testing vs stress testing
Differenza tra test delle prestazioni, test di carico e stress test - con esempi
Il nostro precedente tutorial di questa serie sarà il migliore Guida al test delle prestazioni per qualsiasi principiante.
Nel campo del test del software, troviamo termini come test delle prestazioni, test di carico, test di stress, ecc. Questi termini sono spesso fraintesi e interpretati come gli stessi concetti.
Tuttavia, c'è una differenza significativa tra questi tre tipi di test ed è importante che un tester capisca la stessa cosa.
=> Fare clic qui per una serie completa di esercitazioni sui test delle prestazioni
In questo tutorial, discuteremo ciascuno di questi tipi di test per comprendere le differenze esatte tra di loro.
Cosa imparerai:
Differenza tra test delle prestazioni, test di carico e stress test
# 1) Test delle prestazioni
Che cos'è il test delle prestazioni?
Il test delle prestazioni è il test che viene eseguito per accertare le prestazioni dei componenti di un sistema in una determinata situazione.
Anche l'utilizzo delle risorse, la scalabilità e l'affidabilità del prodotto vengono convalidati in questo test. Questo test è il sottoinsieme dell'ingegneria delle prestazioni, che si concentra sull'affrontare i problemi di prestazioni nella progettazione e nell'architettura di un prodotto software.
L'immagine sopra ce lo spiega chiaramente Performance Testing è il superset per test di carico e stress. Altri tipi di test inclusi nei test delle prestazioni sono il test Spike, il test del volume, il test di resistenza e Test di scalabilità . Pertanto, il test delle prestazioni è fondamentalmente un termine molto ampio.
Obiettivo del test delle prestazioni:
L'obiettivo principale del test delle prestazioni include la definizione del comportamento di riferimento del sistema. Esistono numerosi benchmark definiti dal settore che dovrebbero essere soddisfatti durante i test delle prestazioni.
Il test delle prestazioni non ha lo scopo di trovare difetti nell'applicazione. Inoltre non supera o non supera il test. Piuttosto, affronta il compito critico di impostare il benchmark e standard per un'applicazione . I test delle prestazioni dovrebbero essere eseguiti in modo molto accurato. Un attento monitoraggio delle prestazioni dell'applicazione / del sistema è la caratteristica principale del test delle prestazioni.
Il benchmark e lo standard dell'applicazione dovrebbero essere impostati in termini di attributi come velocità, tempo di risposta, throughput, utilizzo delle risorse e stabilità. Tutti questi attributi vengono testati in un test delle prestazioni.
Per esempio,
Ad esempio, puoi testare le prestazioni della rete dell'applicazione tramite il grafico 'Velocità di connessione e latenza'. La latenza è la differenza di tempo tra i dati da raggiungere dalla sorgente alla destinazione.
Una pagina da 70 kb non impiegherebbe più di 15 secondi per caricarsi per la peggiore connessione del modem a 28,8 kbps (latenza = 1000 millisecondi), mentre la pagina della stessa dimensione apparirebbe entro 5 secondi per la connessione media di 256 kbps DSL (latenza = 100 millisecondi).
Una connessione T1 da 1,5 Mbps (latenza = 50 millisecondi) avrebbe il benchmark delle prestazioni impostato su 1 secondo per raggiungere questo obiettivo.
Un altro esempio sarebbe quello di un modello di richiesta-risposta. Possiamo impostare un benchmark in base al quale la differenza di tempo tra la generazione della richiesta e il riconoscimento della risposta dovrebbe essere nell'intervallo di x ms (millisecondi) ey ms, dove xey sono le cifre standard.
Un test delle prestazioni di successo dovrebbe proiettare la maggior parte dei problemi di prestazioni, che potrebbero essere correlati a database, rete, software, hardware, ecc.
# 2) Test di carico
Il test di carico ha lo scopo di testare il sistema aumentando costantemente e costantemente il carico sul sistema fino a raggiungere il limite di soglia. È un sottoinsieme di test delle prestazioni.
I test di carico possono essere eseguiti facilmente utilizzando uno qualsiasi degli strumenti di automazione adeguati disponibili sul mercato. WAPT e LoadRunner sono due strumenti così famosi che aiutano nei test di carico. Il test di carico è famoso anche con nomi come Test del volume e Test di resistenza .
Tuttavia, il test del volume si concentra principalmente sui database. Test di resistenza testa il sistema mantenendolo sotto un carico significativo per un periodo di tempo prolungato.
L'unico scopo del test di carico è assegnare al sistema il lavoro più grande che può eventualmente gestire per testare la resistenza del sistema e monitorare i risultati. Un fatto interessante qui è che a volte il sistema viene alimentato con un'attività vuota per determinare il comportamento del sistema nella situazione di carico zero.
Gli attributi monitorati in un test di carico includono le prestazioni massime, il throughput del server, il tempo di risposta a vari livelli di carico (sotto la soglia di interruzione), l'adeguatezza dell'ambiente H / W, il numero di applicazioni utente che può gestire senza influire sulle prestazioni.
Obiettivo del test di carico:
Gli obiettivi del test di carico includono:
- Esporre i difetti in un'applicazione relativi a buffer overflow, perdite di memoria e cattiva gestione della memoria. I problemi che alla fine sarebbero emersi a seguito del test di carico possono includere problemi di bilanciamento del carico, problemi di larghezza di banda, capacità del sistema esistente, ecc.
- Determinare il limite superiore di tutti i componenti di un'applicazione come un database, hardware, rete, ecc. In modo che l'applicazione possa gestire il carico previsto in futuro.
- Per impostare gli SLA per l'applicazione.
Per esempio,
Consideriamo di controllare la funzionalità di posta elettronica di un'applicazione, che potrebbe essere invasa da 1000 utenti alla volta. Ora, 1000 utenti possono attivare le transazioni e-mail (lettura, invio, eliminazione, inoltro, risposta) in molti modi diversi.
Se prendiamo una transazione per utente all'ora, sarebbero 1000 transazioni all'ora. Simulando 10 transazioni / utenti, potremmo testare il carico del server di posta occupandolo con 10000 transazioni / ora.
Un altro esempio di un test di carico è mostrato nell'immagine seguente:
L'immagine sopra mostra un test di carico eseguito nello strumento chiamato JMeter . Questo test viene eseguito per identificare quanti utenti può gestire un sistema. In questo test, vengono aggiunti 100 utenti ogni 30 secondi fino a quando il carico non raggiunge 1000 utenti. Ogni passaggio richiede 30 secondi per essere completato e JMeter attende 30 secondi prima di iniziare il passaggio successivo.
Una volta che il carico raggiunge i 1000 thread, tutti continueranno a funzionare per 300 secondi (5 minuti) insieme e infine interromperanno 10 thread ogni 3 secondi.
# 3) Stress Test
Sotto stress test, vengono svolte varie attività per sovraccaricare le risorse esistenti con lavori in eccesso nel tentativo di abbattere il sistema. Test negativo , che include la rimozione dei componenti dal sistema viene eseguita anche come parte delle prove di stress.
Conosciuto anche come prove di fatica , questo test dovrebbe acquisire la stabilità di un'applicazione testandola oltre la sua capacità di larghezza di banda.
Quindi, fondamentalmente, lo stress test valuta il comportamento di un'applicazione oltre il carico di picco e le condizioni normali.
come inizializzare un elenco in java
Lo scopo dello stress test è quello di accertare il guasto del sistema e di monitorare come il sistema si riprende correttamente. La sfida qui è creare un ambiente controllato prima di avviare il test in modo da poter catturare con precisione il comportamento del sistema ripetutamente negli scenari più imprevedibili.
I problemi che potrebbero eventualmente emergere come risultato dello stress test possono includere problemi di sincronizzazione, perdite di memoria, condizioni di competizione, ecc. Se lo stress test sta controllando come si comporta il sistema in una situazione di improvviso aumento del numero di utenti , quindi si chiama test di picco.
Se lo stress test consiste nel verificare la sostenibilità del sistema per un periodo di tempo attraverso un lento aumento del numero di utenti, viene chiamato soak test.
Obiettivo dello stress test:
L'obiettivo dello stress test è analizzare i report post-crash per definire il comportamento dell'applicazione dopo il fallimento.
La sfida più grande è garantire che il sistema non comprometta la sicurezza dei dati sensibili dopo l'errore. In uno stress test di successo, il sistema tornerà alla normalità insieme a tutti i suoi componenti anche dopo il guasto più terribile.
Per esempio,
Ad esempio, un elaboratore di testi come Writer1.1.0 di OpenOffice.org viene utilizzato nello sviluppo di lettere, presentazioni, fogli di calcolo, ecc. Lo scopo del nostro stress test è caricarlo con caratteri in eccesso.
Per fare ciò, incolliamo ripetutamente una riga di dati, fino a raggiungere il limite di soglia per la gestione di un grande volume di testo. Non appena la dimensione del carattere raggiunge 65.535 caratteri, si rifiuterà semplicemente di accettare più dati.
Il risultato dello stress test su Writer 1.1.0 produce il risultato che non si blocca sotto lo stress e gestisce la situazione con grazia, il che assicura che l'applicazione funzioni correttamente anche in condizioni di stress rigoroso.
Di seguito è mostrato un altro esempio di un test di carico che raffigura un test di picco attraverso un improvviso aumento di 7000 utenti:
Domande frequenti
Avendo avuto abbastanza discussioni su test delle prestazioni, stress test e test di carico, esaminiamo ora alcune domande frequenti correlate per le quali i tester cercano una risposta.
D # 1) Il test di carico e il test delle prestazioni sono uguali?
Risposta: La risposta a questa domanda è 'No'. Non sono la stessa cosa.
A questo punto devi aver capito chiaramente la differenza tra test delle prestazioni e test di carico. È possibile fare riferimento al riepilogo tabellare di seguito per vedere come le prestazioni e il test di carico hanno obiettivi diversi, attributi di ambito da studiare e problemi da scoprire.
Q # 2) È un test ingiusto eseguire lo stress test contemporaneamente quando si esegue il test di carico?
Risposta: Questa è anche una domanda comune in molti colloqui di test del software ed esami di certificazione, poiché è ingiusto eseguire test di stress e test di carico parallelamente? La risposta a questa domanda è 'No'. Non è ingiusto eseguire prove di stress contemporaneamente quando si eseguono prove di carico.
Nessun test è mai ingiusto. In qualità di tester, il tuo lavoro è trovare i problemi. Tuttavia, potrebbero essere applicate le realtà del test del software e qualsiasi problema rilevato in questa situazione potrebbe non essere risolto.
D # 3) Il test di ripristino fa parte del test delle prestazioni?
Risposta: Sì, il test di ripristino è classificato come test delle prestazioni e talvolta viene condotto anche con test di carico. Nel test di recupero , vi si accede in base alla capacità di un'applicazione di recuperare da guasti, arresti anomali, guasti hardware e altri problemi simili.
In questa attività, il software è costretto a fallire e quindi viene verificato se è in grado di ripristinarsi correttamente. Per esempio, riavviare improvvisamente il sistema quando un'applicazione è in esecuzione e quindi verificare l'integrità dei dati dell'applicazione.
Q # 4) Il test delle prestazioni richiede la codifica?
Risposta: Il test delle prestazioni non richiede la conoscenza del livello avanzato di codifica. Tuttavia, avere una conoscenza fondamentale della programmazione è un ulteriore vantaggio.
Per esempio, se stai usando JMeter, allora è bene che tu conosca i fondamenti di Java. Può aiutarti a eseguire il debug di alcune cose e puoi anche scrivere il tuo script, se necessario.
D # 5) Che cos'è il test Spike nei test delle prestazioni?
Risposta: Nei test di picco, il carico viene aumentato o diminuito bruscamente da un numero enorme di utenti e successivamente viene osservato il comportamento del sistema. Il test degli spike viene eseguito principalmente per verificare se il sistema è in grado di gestire cambiamenti improvvisi nel carico.
Differenza tra test di carico e stress
Per riassumere, osserviamo le principali differenze tra test di carico, stress test e test delle prestazioni nella tabella seguente:
Test delle prestazioni | Test di carico | Test di stress | |
---|---|---|---|
Dominio | Superset di test di carico e stress | Un sottoinsieme di test delle prestazioni. | Un sottoinsieme di test delle prestazioni. |
Scopo | Portata molto ampia. Include: test di carico, test di stress, test di capacità, test di volume, test di resistenza, test di picco, test di scalabilità e test di affidabilità, ecc. | Ambito più ristretto rispetto al test delle prestazioni. Include test di volume e test di resistenza. | Ambito più ristretto rispetto al test delle prestazioni. Include test di immersione e test di picco. |
Obiettivo principale | Per impostare il benchmark e gli standard per l'applicazione. | Per identificare il limite superiore del sistema, impostare lo SLA dell'app e vedere come il sistema gestisce i volumi di carico pesanti. | Per identificare come il sistema si comporta sotto carichi intensi e come si riprende da un guasto. Fondamentalmente, per preparare la tua app al picco di traffico imprevisto. |
Limite di carico | Entrambi - sotto e sopra la soglia di una pausa. | Fino alla soglia della rottura | Sopra la soglia di rottura |
Attributi studiati | Utilizzo delle risorse, affidabilità, scalabilità, utilizzo delle risorse, tempo di risposta, throughput, velocità, ecc. | massime prestazioni, throughput del server, tempo di risposta a vari livelli di carico (sotto la soglia di rottura), adeguatezza dell'ambiente H / W, numero di app utente in grado di gestire, requisiti di bilanciamento del carico, ecc. | Stabilità oltre la capacità di larghezza di banda, tempo di risposta (sopra la soglia di rottura), eccetera. |
Problemi identificati tramite questo tipo di test | Tutti i bug relativi alle prestazioni, incluso il rigonfiamento del runtime, l'ambito dell'ottimizzazione, i problemi relativi a velocità, latenza, throughput, ecc. | Problemi di bilanciamento del carico, problemi di larghezza di banda, problemi di capacità del sistema, tempi di risposta scadenti, problemi di velocità effettiva, ecc. | Falle di sicurezza con sovraccarico, problemi di corruzione dei dati in situazioni di sovraccarico, lentezza, perdite di memoria, ecc. |
Differenza tra carico, stress e test di volume
Ormai sappiamo già del carico e dello stress test insieme alle differenze tra i due. Esaminiamo ora cos'è il test di volume e in che modo è diverso dal test di carico e dallo stress test.
Il test del volume è anche una sorta di test delle prestazioni che si concentra principalmente sul database.
Nel test del volume, viene verificato come si comporta il sistema rispetto a un certo volume di dati. Pertanto, i database sono pieni della loro capacità massima e i loro livelli di prestazioni come il tempo di risposta e il throughput del server vengono monitorati.
Per mantenerlo molto semplice, la differenza tra test di carico, stress e volume è mostrata di seguito:
Test del volume | Test di carico | Test di stress |
---|---|---|
Un'enorme quantità di dati | Un numero enorme di utenti | Troppi utenti, troppi dati, verso il crash del sistema. |
Conclusione
In questo tutorial, abbiamo visto e compreso attraverso esempi come i test delle prestazioni, i test di carico e gli stress test sono diversi l'uno dall'altro e qual è l'ambito di ciascun tipo di test.
Abbiamo anche dato una breve occhiata a molte categorie sottoposte a test delle prestazioni come test di picco, test di ripristino, test di volume, ecc. E abbiamo capito come ciascuna di queste è diversa l'una dall'altra.
Speriamo che questo tutorial ti sia stato di grande aiuto per capire la differenza pratica tra prestazioni, carico e stress test.
Controlla il nostro prossimo tutorial per saperne di più sui test funzionali rispetto ai test delle prestazioni.
=> Visita qui per una serie completa di tutorial sui test delle prestazioni
Tutorial PREV | PROSSIMO Tutorial
Lettura consigliata
- Una guida completa al test delle prestazioni con esempi
- Guida allo stress test per principianti
- Guida completa al test di carico per principianti
- Carico di applicazioni web, stress e test delle prestazioni utilizzando WAPT
- Test di carico con HP LoadRunner Tutorial
- Test delle prestazioni del cloud: fornitori di servizi di test del carico basati sul cloud
- Test funzionale vs test delle prestazioni: dovrebbe essere fatto contemporaneamente?
- Test di carico con LoadUI - Uno strumento di test di carico gratuito e open source