Che cos'è il test di resistenza nel test del software? (con esempio)

Sommario:

Anonim

Test di resistenza

Il test di resistenza è un tipo di test del software non funzionale in cui un software viene testato con un carico elevato esteso per un periodo di tempo significativo per valutare il comportamento dell'applicazione software in condizioni di utilizzo prolungato. Lo scopo principale dei test di resistenza è garantire che l'applicazione sia sufficientemente in grado di gestire un carico esteso senza alcun deterioramento del tempo di risposta.

Questo tipo di test viene eseguito nell'ultima fase del ciclo di esecuzione delle prestazioni. I test di resistenza sono un processo lungo e talvolta durano anche fino a un anno. Ciò può includere l'applicazione di carichi esterni come il traffico Internet o le azioni dell'utente. Ciò rende il test di resistenza diverso dal test di carico, che di solito termina in un paio d'ore circa.

Endurance significa capacità, quindi, in altre parole, puoi definire Endurance Testing come Capacity Testing.

In questo tutorial imparerai-

  • Cos'è il test di resistenza?
  • Obiettivi dei test di resistenza
  • Cosa monitorare nei test di resistenza
  • Come eseguire i test di resistenza
  • Esempio di test di resistenza
  • Strumenti per test di resistenza
  • Vantaggi dei test di resistenza
  • Svantaggi dei test di resistenza

Obiettivi dei test di resistenza

  • L'obiettivo principale dei test di resistenza è verificare la presenza di perdite di memoria.
  • Per scoprire come funziona il sistema in condizioni di utilizzo prolungato.
  • Per garantire che dopo un lungo periodo, il tempo di risposta del sistema rimanga lo stesso o migliore dell'inizio del test.
  • Per determinare il numero di utenti e / o transazioni che un determinato sistema supporterà e soddisferà gli obiettivi di performance.
  • Per gestire i carichi futuri, dobbiamo capire quante risorse aggiuntive (come la capacità del processore, la capacità del disco, l'utilizzo della memoria o la larghezza di banda della rete) sono necessarie per supportare l'utilizzo in futuro.
  • I test di resistenza vengono generalmente eseguiti sovraccaricando il sistema o riducendo determinate risorse di sistema e valutando le conseguenze.
  • Viene eseguito per garantire che non si verifichino difetti o perdite di memoria dopo quello che è considerato un periodo di utilizzo relativamente "normale".

Cosa monitorare nei test di resistenza

Nei test di resistenza vengono testate le seguenti cose.

  • Test memory leakage : vengono effettuati controlli per verificare se ci sono perdite di memoria nell'applicazione, che possono causare l'arresto anomalo del sistema o del sistema operativo
  • Verificare la chiusura della connessione tra i livelli del sistema - Se la connessione tra i livelli del sistema non viene chiusa correttamente, alcuni o tutti i moduli del sistema potrebbero bloccarsi.
  • Verifica della connessione al database chiusa correttamente : se la connessione al database non viene chiusa correttamente, potrebbe verificarsi un arresto anomalo del sistema
  • Tempo di risposta del test : il sistema viene testato per il tempo di risposta del sistema poiché l'applicazione diventa meno efficiente a causa dell'uso prolungato del sistema.

Come eseguire i test di resistenza

Di seguito è riportato l'approccio di base per il test di resistenza

  • Ambiente di test - Identifica l'hardware, il software, il sistema operativo richiesto per i test di resistenza, assegnando ruoli e responsabilità all'interno del team, ecc. L'ambiente dovrebbe essere pronto prima dell'esecuzione del test. È inoltre necessario stimare la dimensione di produzione del database comune e la crescita annuale. Questo è necessario in quanto tale è necessario testare come risponderà la tua domanda dopo un anno, due o cinque.
  • Creazione del piano di test, scenari - In base alla natura del test - manuale o automazione o combinazione di entrambi, è necessario pianificare la progettazione, le revisioni e l'esecuzione del caso di test. Anche i test per sollecitare il sistema, i test del punto di interruzione, ecc. Dovrebbero far parte del piano di test. Il test per sollecitare il sistema determina il punto di interruzione nell'applicazione.
  • Stima del test: fornisce una stima del tempo necessario per completare la fase di test. Dovrebbe essere analizzato sulla base di un numero di tester coinvolti e del numero di cicli di prova richiesti.
  • Analisi del rischio - Analizzare il rischio e intraprendere un'azione appropriata per la prevenzione. Assegnazione delle priorità ai casi di test in base al fattore di rischio e identificazione del rischio e dei problemi riportati di seguito che il tester può eseguire durante il test di resistenza.
    • Le prestazioni rimarranno costanti nel tempo?
    • Ci sono altri problemi minori che non sono stati ancora rilevati?
    • C'è un'interferenza esterna che non è stata affrontata?
  • Pianificazione del test: determina il budget, i risultati finali entro i tempi. Poiché Endurance Testing applica una disposizione di carico enorme ma naturale di transazioni al sistema / applicazione per un periodo di tempo continuo.

Esempio di test di resistenza

Mentre lo stress test porta il sistema testato al limite, il test di resistenza porta l'applicazione al limite nel tempo .

Ad esempio, i problemi più complessi - perdite di memoria, utilizzo del server di database e sistema che non risponde - si verificano quando il software viene eseguito per un periodo di tempo prolungato. Se salti i test di resistenza, le tue possibilità di rilevare tali difetti prima della distribuzione sono piuttosto basse.

Strumenti per test di resistenza

  • WebLOAD
  • LoadComplete
  • Apache JMeter
  • LoadRunner
  • Appvance
  • LoadUI
  • OpenSTA
  • Rational Performance Tester

Vantaggi dei test di resistenza

  • Aiuta a determinare in che modo il carico di lavoro può gestire il sistema sotto carico.
  • Fornisce dati accurati che il cliente può utilizzare per convalidare o migliorare le proprie esigenze infrastrutturali.
  • Identifica i problemi di prestazioni che possono verificarsi dopo che un sistema è stato eseguito a un livello elevato per un periodo di tempo più lungo
  • I problemi tipici vengono identificati in test di prestazioni mirati più piccoli, il che significa che garantisce che l'applicazione rimanga disponibile anche quando c'è un carico enorme in un periodo di tempo molto breve.
  • Il test di resistenza viene utilizzato anche per verificare se c'è un degrado delle prestazioni dopo un lungo periodo di esecuzione

Svantaggi dei test di resistenza

  • Spesso è difficile definire quanto stress valga la pena applicare.
  • I test di resistenza potrebbero causare errori dell'applicazione e / o della rete che potrebbero causare interruzioni significative se l'ambiente di test non è isolato.
  • La perdita o il danneggiamento permanente dei dati può verificarsi stressando eccessivamente il sistema.
  • L'utilizzo delle risorse rimane molto alto dopo che lo stress è stato rimosso.
  • Alcuni componenti dell'applicazione non rispondono.
  • Le eccezioni non gestite vengono osservate dall'utente finale.

Sommario:

  • Nell'ingegneria del software, i test di resistenza sono un sottoinsieme dei test di carico.
  • I test di resistenza sono un processo lungo e talvolta durano anche fino a un anno
  • I controlli vengono eseguiti per verificare
    • Testare la perdita di memoria
    • Testare il tempo di risposta
    • Testare la connessione al database, ecc.

Questo articolo è stato reso possibile grazie al contributo di Unnati Soni.