soak testing tutorial what is soak testing
Questa guida completa al Soak Test spiega cos'è il Soak Test, perché ne abbiamo bisogno, la sua applicazione, i vantaggi, le migliori pratiche e gli svantaggi:
Vari tipi di test devono essere eseguiti durante il test di un'applicazione software. I test funzionali e non funzionali sono le due grandi categorie in cui possiamo classificare i tipi di test.
Il test funzionale, come suggerisce il nome stesso, si riferisce al test della funzionalità dell'applicazione. I test non funzionali, d'altra parte, coprono tutti gli altri test (usabilità, prestazioni, ecc.), Diversi dai test funzionali.
Cosa imparerai:
Soak Testing - Una guida completa
Questo tutorial ti introduce ai concetti di Soak testing, che è un tipo di Performance testing.
Come si vede nell'immagine sopra, possiamo dire che il test Soak è un tipo di test non funzionale.
Cos'è il Soak Test
È un tipo di test delle prestazioni per verificare se un'applicazione in fase di test (AUT) può sopportare un carico continuo per un periodo di tempo predeterminato. Questo è un tipo di test non funzionale. È anche definito come 'Test di resistenza' o 'Test di longevità' .
Se scegli il suo nome letterale, la parola 'ammollo' in sé contiene il significato di ciò che questo test intende fare. Pertanto, sottoporre un'applicazione per un periodo specifico a un carico elevato è l'obiettivo di questo test.
Ci si potrebbe chiedere, quale potrebbe essere la differenza se un'applicazione viene sottoposta a caricamento per un'ora o forse 20 ore. Ma sì, ha un significato.
Questo può essere spiegato meglio con uno scenario del mondo reale. Se una corda viene tirata da entrambe le estremità da due persone per un po 'di tempo, potrebbe resistere alla pressione, tuttavia, se la stessa viene continuata per giorni, la corda potrebbe rompersi cedendo alla pressione da entrambe le estremità.
[Immagine fonte ]
Così è il caso del software. Quando sottoponiamo un'applicazione a un carico elevato (poche centinaia o migliaia di utenti), potrebbe funzionare correttamente per un'ora. Tuttavia, quando la stessa applicazione è sottoposta al carico per 20 ore, potrebbe crollare del tutto.
[Immagine fonte ]
Il traffico intenso e continuo per una lunga durata può causare diversi problemi nell'applicazione. Quindi, sorge la necessità di Soak Testing.
In questo test, il concetto di base è caricare l'applicazione con gli utenti previsti ma per un periodo prolungato. Ciò aiuta a identificare i vari problemi sottostanti che altrimenti non verrebbero rilevati fino a quando lo scenario effettivo non si verifica nell'applicazione live.
Necessità di Soak Test
Per comprendere la necessità dobbiamo anche essere consapevoli dei possibili problemi che un'applicazione potrebbe subire nel caso in cui incontri un carico pesante per una lunga durata.
Esaminiamo i vari motivi che rendono necessario il test Soak.
# 1) È principalmente richiesto per identificare problemi come una gestione errata della memoria, problemi di connessione al database, degrado del tempo di risposta dell'applicazione, ecc.
Ciascuno di questi problemi è stato spiegato di seguito:
- Una gestione errata della memoria può comportare problemi come una memoria allocata per l'uso ma mai rilasciata o quando le risorse utilizzano più memoria del necessario. Quando tali scenari continuano per un lungo periodo, il sistema potrebbe esaurire la memoria e un'applicazione potrebbe smettere di rispondere.
- Problemi di connessione al database: l'errore che si verifica durante la chiusura di una connessione al database potrebbe, a lungo termine, provocare l'arresto anomalo dell'applicazione.
- Riduzione del tempo di risposta dell'applicazione: a volte un'applicazione per qualche motivo potrebbe diventare meno efficiente e il suo tempo di risposta potrebbe aumentare. Nel corso del tempo, ciò potrebbe causare il blocco dell'applicazione.
Per evitare che si verifichino tali situazioni, preferiremmo eseguire il Soak test della nostra applicazione. Aiuta a identificare tali problemi sottostanti che altrimenti potrebbero passare inosservati.
#Due) Soak Test aiuta a determinare se la nostra applicazione è pronta a sostenere il carico per un periodo prolungato.
# 3) Consente al team di intraprendere azioni correttive in base a come il sistema risponde ai test di assorbimento.
Quando iniziare il test di ammollo?
[Immagine fonte ]
Idealmente parlando, come qualsiasi altro test delle prestazioni, questo test dovrebbe essere eseguito durante lo sviluppo del prodotto insieme al test funzionale. Tuttavia, questo viene fatto raramente. Il motivo è ovvio, ovvero la gestione del costo del progetto.
Pertanto, l'attenzione si concentra principalmente sui test funzionali e tutte le forme di test delle prestazioni vengono generalmente lasciate in secondo piano e adottate vicino alla data di rilascio dell'applicazione.
In generale, il test di assorbimento viene eseguito appena prima che l'applicazione venga rilasciata al client. Ma questo ha un grosso svantaggio che riguarda la risoluzione del problema.
Quando viene rilevato un problema di prestazioni in una fase successiva, potrebbe essere difficile risolverlo in quanto ciò potrebbe comportare una modifica importante del codice che potrebbe non essere possibile considerando la prossimità della data di consegna dell'applicazione.
Pertanto, è sempre consigliabile che questo test venga eseguito in tempo utile in modo da poter affrontare i problemi identificati.
Strategia di Soak Testing
[Immagine fonte ]
Proprio come una strategia di test viene preparata per testare un'applicazione, viene preparata in anticipo una strategia per eseguire il test Soak, e questo è assolutamente necessario.
come eseguire il file jar in Windows
Diamo un'occhiata a ciò che accade nella preparazione della Strategia di Soak Testing.
Prima di iniziare il Soak Test, il team deve determinare il carico per il quale l'applicazione deve essere Soak Test. Anche la durata per la quale deve essere testata deve essere predeterminata. In genere, questo viene fornito dal team di sviluppo.
Il team di test dovrebbe decidere gli scenari che intendono per il Soak Test. Ciò, a sua volta, dipenderà dall'impegno del Cliente e dai requisiti dell'applicazione in prova.
Poiché il Soak Test è principalmente focalizzato sull'identificazione di problemi di perdita di memoria e risorse, è importante conoscere in anticipo il consumo di memoria e database rispetto a quelli disponibili.
Dovrebbero essere decisi anche i dettagli dell'ambiente come il sistema operativo, il dispositivo, ecc. Su cui eseguire il Soak Test.
Ultimo ma non meno importante, anche i rischi coinvolti dovrebbero essere presi in considerazione. Per tali situazioni dovrebbe essere sempre predisposto un piano di riserva. Ad esempio, se il database si arresta in modo anomalo durante il test, quali altre alternative sono disponibili al suo posto e così via.
Scenari per il Soak Test
Quando un sito di e-commerce annuncia una vendita online dei suoi prodotti, è naturale che il sito web venga caricato durante il periodo di vendita che potrebbe durare 3-5 giorni. In una situazione del genere, il sito Web dovrebbe essere sottoposto a test Soak per evitare crash imprevisti.
Durante la chiusura di un esercizio finanziario, il sito web di una banca potrebbe dover affrontare un carico molto elevato per un periodo continuativo. In una situazione del genere, il sito Web deve essere stato sottoposto a Soak test per evitare qualsiasi arresto anomalo inaspettato dell'applicazione web.
Quando un'applicazione è progettata per gestire un carico predeterminato per un periodo predeterminato continuo, diventa necessario testare l'applicazione per un carico almeno 2 volte la sua capacità di movimentazione del carico nota.
Per esempio, se è noto che un sito Web gestisce un carico di 500 utenti per un periodo continuo di 15 ore, l'applicazione dovrebbe essere sottoposta a test Soak per 1000 utenti per 15 ore. Questo ci aiuterebbe a sapere se l'applicazione risponderebbe in modo anomalo quando forzata al doppio della sua capacità di carico.
Migliori pratiche
[Immagine fonte ]
- Il Soak Testing deve essere sempre eseguito conoscendo il limite di carico inattivo dell'applicazione, sia in termini di utenti che di durata. Questo è necessario per essere noto poiché l'obiettivo è caricare l'applicazione con gli utenti previsti ma per una lunga durata.
- Si consiglia di eseguire i test di ammollo di notte o se si devono eseguire test di durata anche più lunga, è consigliabile farlo durante i fine settimana. Il motivo è ovvio, ad esempio durante l'orario di lavoro le risorse vengono bloccate mentre di notte o non lavorative i server di prova possono essere disponibili per essere utilizzati per lunghi periodi. Pertanto le ore non lavorative sono il momento ideale per tali test.
- I rischi associati durante il Soak testing di un'applicazione dovrebbero essere sempre analizzati e un piano di mitigazione dovrebbe essere pronto per lo stesso qualsiasi incidente.
Vincoli del Soak Testing
[Immagine fonte ]
- La lunga durata richiesta per testare un'applicazione è un grosso vincolo generalmente dovuto alla mancanza di tempo. Pertanto, a volte il test di immersione può essere evitato a causa della mancanza di tempo.
- L'ambiente di test deve essere selezionato con attenzione in modo che qualsiasi altro tipo di test eseguito sull'applicazione non venga influenzato. Ciò può accadere, poiché testare l'applicazione per un carico pesante per una lunga durata potrebbe causare problemi.
- Il tempo per il test Soak deve essere deciso con attenzione e dovrebbe essere principalmente ore fuori dal lavoro (come un fine settimana o ore notturne dopo la chiusura del lavoro).
- In generale, per i test Soak sono necessari strumenti di automazione poiché i test devono essere eseguiti per lunghi periodi con un numero elevato di utenti.
Svantaggi del Soak Test
- Le tempistiche del progetto potrebbero subire un impatto a causa del test Soak poiché il tempo necessario per lo stesso è generalmente elevato.
- Le risorse vengono bloccate per la durata del test in quanto vi è un elevato utilizzo della memoria a causa dell'elevato numero di utenti che accedono all'applicazione.
Conclusione
Attraverso questo tutorial, abbiamo appreso cos'è il Soak Test e cosa rende necessario eseguire questo test.
Ora, con questa comprensione di cosa sia il Soak Test e che tipo di problemi aiuta a identificare, possiamo benissimo capire la necessità di eseguire lo stesso. Soprattutto in tempi in cui il mondo intero è sempre connesso, questo test diventa un must.
Abbiamo visto quando dovremmo iniziare il Soak test insieme all'approccio che dovrebbe essere seguito. Anche gli scenari, le migliori pratiche e i vincoli ad essi associati sono stati discussi qui.
Ci auguriamo che questo tutorial ti abbia aiutato a capire cosa è il test Soak e deve aver migliorato le tue conoscenze sullo stesso.
Lettura consigliata
- Test di carico con HP LoadRunner Tutorial
- Tutorial sui test distruttivi e non distruttivi
- Download dell'eBook Testing Primer
- Correlazione - Test di carico con LoadRunner
- Test funzionale vs test non funzionale
- Differenza tra desktop, test server client e test Web
- Test di carico con LoadUI: uno strumento di test di carico gratuito e open source
- Esercitazione sul test SOA: metodologia di test per un modello di architettura SOA