Cos'è il test di resistenza nei test del software? (con esempio)

Test di resistenza

Test di resistenza è un tipo di test del software non funzionale in cui un software viene testato con un carico elevato prolungato 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 capace da gestire un carico prolungato senza alcun deterioramento del tempo di risposta.

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

Resistenza significa capacità, quindi in altre parole è possibile definire il test di resistenza come test di capacità.

Obiettivi dei test di resistenza

  • L'obiettivo principale del test di resistenza è verificare la presenza di perdite di memoria.
  • Per scoprire le prestazioni del sistema in condizioni di utilizzo prolungato.
  • Per garantire che, dopo un lungo periodo, il tempo di risposta del sistema rimanga lo stesso o migliore rispetto all'inizio del test.
  • Per determinare il numero di utenti e/o transazioni che un dato sistema supporterà e raggiungerà gli obiettivi di prestazione.
  • Per gestire i carichi futuri, dobbiamo capire quante risorse aggiuntive (come capacità del processore, capacità del disco, utilizzo della memoria o larghezza di banda della rete) sono necessarie per supportare l'utilizzo 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

Test di resistenza

Nei test di resistenza vengono testati i seguenti elementi.
  • Testare la perdita di memoria– Vengono eseguiti controlli per verificare se sono presenti perdite di memoria nell'applicazione, che possono causare l'arresto anomalo del sistema o del sistema operativo
  • Testare la chiusura della connessione tra gli strati del sistema – Se la connessione tra gli strati del sistema non viene chiusa correttamente, alcuni o tutti i moduli del sistema potrebbero bloccarsi.
  • Testare la chiusura della connessione al database con successo– Se la connessione al database non viene chiusa correttamente, potrebbe verificarsi un arresto anomalo del sistema
  • Testare il tempo di risposta – 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 test di base per il test di resistenza
  • Ambiente di test – Identificare l'hardware, il software, il sistema operativo richiesti 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 le dimensioni comuni di produzione del database e la crescita annuale. Ciò è necessario in quanto tale è necessario testare come risponderà la tua applicazione dopo un anno, due o cinque.
  • Creazione del piano di test, scenari – In base alla natura del test: manuale o automatizzato o una combinazione di entrambi, Test Case la progettazione, le revisioni e l'esecuzione dovrebbero essere pianificate. Anche i test per stressare il sistema, i test sui punti di rottura, ecc. dovrebbero far parte del piano di test. Il test per stressare il sistema determina il punto di interruzione nell'applicazione.
  • Stima del test – Fornire la stima del tempo necessario per completare la fase di test. Dovrebbe essere analizzato sulla base del numero di tester coinvolti e del numero di cicli di prova richiesti.
  • Analisi del rischio - Analizzare il rischio e intraprendere un’azione adeguata per la prevenzione. Assegnare la priorità ai casi di test in base al fattore di rischio e identificare i rischi e i problemi riportati di seguito che il tester può eliminare gradualmente 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?
  • Programma delle prove – Determinare il budget e i risultati finali entro i tempi. COME Test di resistenza applica un carico enorme ma naturale di transazioni al sistema/applicazione per un periodo di tempo continuo.

Esempio di test di resistenza

Mentre Test da sforzo porta il sistema testato ai suoi limiti, Test di resistenza porta l'applicazione al suo limite nel tempo. Ad esempio, i problemi più complessi (perdite di memoria, utilizzo del server di database e sistema non reattivo) si verificano quando il software viene eseguito per un periodo di tempo prolungato. Se si saltano i test di resistenza, le probabilità di rilevare tali difetti prima dell'implementazione sono piuttosto basse.

Strumenti per i test di resistenza

Vantaggi dei test di resistenza

  • Aiuta a determinare come 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 utilizzato ad alto livello per un periodo di tempo più lungo
  • I problemi tipici vengono identificati in test prestazionali mirati più piccoli, il che significa che l'applicazione rimane disponibile anche in caso di carico enorme in un arco di tempo molto breve.
  • Il test di resistenza viene utilizzato anche per verificare se si verifica 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 guasti alle applicazioni e/o alla rete che potrebbero causare interruzioni significative Ambiente di test non sono isolati.
  • La perdita o il danneggiamento permanente dei dati può verificarsi a causa di uno stress eccessivo del sistema.
  • L’utilizzo delle risorse rimane molto elevato una volta rimosso lo stress.
  • Alcuni componenti dell'applicazione non rispondono.
  • Le eccezioni non gestite vengono osservate dall'utente finale.

Sintesi

  • In Software Engineering, Il test di resistenza è un sottoinsieme del test di carico.
  • I test di resistenza sono un processo lungo e talvolta durano anche fino a un anno
  • Si fanno controlli per verificare
  • Testare la perdita di memoria
  • Testare il tempo di risposta
  • Testare la connessione al database, ecc.