Cos'è il Soak Test? Definizione, significato, esempi

Prova di assorbimento

Prova di assorbimento è un tipo di test non funzionale utilizzato per misurare le prestazioni di un'applicazione software sotto un enorme volume di carico per un lungo periodo di tempo. L'obiettivo del Soak testing è garantire se l'applicazione software sostiene un volume elevato di utilizzo e verificare cosa accadrebbe al di fuori delle aspettative di progettazione.

L'immagine sotto mostra un ciclo di test che mostra in quale fase avviene il Soak Testing (Tipo di test delle prestazioni) viene eseguito su un'applicazione.

Prova di assorbimento

In questo tipo di test, ciò che viene sostanzialmente monitorato è l'utilizzo della memoria da parte di un'applicazione in un sistema. Si sta testando a livello di sistema, per scoprire se il sistema resisterà a un volume di utilizzo molto elevato e per vedere cosa accadrebbe al di fuori delle sue aspettative di progettazione.

Perchè fare i Soak Test?

Un sistema può comportarsi normalmente se utilizzato per 2 ore, ma quando lo stesso sistema viene utilizzato continuamente per 10 ore o più, potrebbe non funzionare o comportarsi in modo anomalo/casuale/potrebbe bloccarsi. Per prevedere tale guasto viene eseguito il Soak Testing.

Quando fare il Soak Test?

Il test di ammollo deve essere eseguito nei seguenti scenari: –

  1. Prima che il build venga distribuito al client, ovvero prima del rilascio di qualsiasi applicazione su una piattaforma specifica, deve essere sottoposto con successo a una serie di test di carico a livelli di traffico elevati o equivalenti. Dopo di che viene eseguito il test di immersione. Ci aiuta a determinare come eseguire una particolare applicazione per un periodo prolungato. Se durante il periodo in cui è in modalità Soak vengono rilevati problemi quali perdite/corruzione della memoria, è necessario segnalarli immediatamente.
  2. Il momento migliore per eseguire un test di assorbimento è durante i fine settimana poiché un'applicazione deve essere in esecuzione per un giorno o una notte. Dipende totalmente dai limiti della situazione di test. I test di assorbimento sono uno dei requisiti di conformità più importanti che devono essere seguiti rigorosamente da ogni azienda.

Strategia dei Soak Test

Il Soak Testing a sessione lunga è una strategia in cui un sistema è sotto carico per un periodo più lungo.

Un semplice esempio è quello in cui l'utente rimane connesso a un sistema per molte ore eseguendo una serie di transazioni commerciali. In questo modo vengono creati moltissimi dati. Potrebbe esserci molto carico sul server di sistema/database che può provocare lo stallo/arresto anomalo del server di sistema/database.

Nell'ambito del Soak Testing a sessione lunga, le attività di più giorni (ad esempio 30 giorni) vengono eseguite in un intervallo di tempo limitato (ad esempio 2 giorni). Il numero di transazioni in questo intervallo di tempo limitato dovrebbe corrispondere o superare il numero di transazioni di più giorni. L’attenzione dovrebbe essere posta sul numero di transazioni elaborate. La parte più importante del Soak Testing è verificare la memoria disponibile nella CPU e la quantità di memoria che sarà utilizzata. Dobbiamo registrare l'utilizzo della memoria all'inizio e alla fine di un test di assorbimento. Se necessario, quindi l'utilizzo della memoria di strutture come Java Anche le macchine virtuali sono importanti e devono essere monitorate.

Di seguito sono riportati alcuni ulteriori controlli che devono essere eseguiti da qualsiasi utente/tester prima di iniziare il Soak Testing:

a) Monitorare il consumo delle risorse del database.

b) Monitorare il consumo delle risorse del server (escluso l'utilizzo della CPU).

c) Il test di assorbimento deve essere eseguito con una concorrenza utente realistica.

Caratteristiche del Soak Test

Un metodo di prova di immersione standard dovrebbe avere le seguenti caratteristiche: –

  • La durata della maggior parte dei Soak Test è spesso determinata dal tempo a disposizione.
  • Qualsiasi applicazione deve essere eseguita senza alcuna interruzione se richiede un periodo di tempo prolungato.
  • Dovrebbe coprire tutti gli scenari concordati dalle parti interessate.
  • Nella maggior parte dei casi ogni sistema ha un periodo di tempo finestra di manutenzione regolare e il tempo tra tali periodi finestra è un fattore chiave per determinare l'ambito di un Soak Test.

ESEMPI di Soak Test

  • Nel caso del dominio bancario in cui è presente una grande quantità di dati dei commercianti, il tester metterà il sistema sotto carico continuamente per un periodo compreso tra 70 e 150 ore per verificare come si comporta l'applicazione durante questo periodo di caricamento.
  • Supponiamo che ci siano 33,000 accessi da inserire nel sistema, che rappresentano sette giorni e mezzo di attività. In questo caso, entro venerdì sera intorno alle ore 60, si potrà iniziare un Soak Test di 70-6 ore che potrà essere completato entro Monday mattina alle 6. Solo con tale test sarà possibile osservare qualsiasi degrado delle prestazioni in condizioni controllate.
  • Nel caso dei videogiochi, Mobile applicazioni, ecc. implicano lasciare il gioco o l'applicazione in uno stato di esecuzione per un periodo di tempo prolungato, in varie modalità operative, come inattività, in pausa nella schermata del titolo e così via per scoprire se un'applicazione è in grado di gestire il carico continuamente previsto .

Problemi comuni osservati durante il Soak Test

  1. Allocazione della memoria (perdite di memoria che potrebbero eventualmente provocare una crisi di memoria o errori di arrotondamento che si manifestano solo nel tempo).
  2. Utilizzo delle risorse del database (impossibilità di chiudere i cursori del database in alcune condizioni che potrebbero eventualmente provocare lo stallo dell'intero sistema).
  3. Può anche portare a un degrado delle prestazioni, ovvero a garantire che il tempo di risposta dopo un lungo periodo di attività sostenuta sia buono come all'inizio del test.
  4. Mancata chiusura delle connessioni tra i livelli di un sistema a più livelli in alcune circostanze che potrebbe bloccare alcuni o tutti i moduli del sistema.
  5. Il graduale degrado del tempo di risposta di alcune funzioni poiché le strutture dati interne diventano meno efficienti durante un lungo test.

Sintesi

  • In Software Engineering, Il test di assorbimento viene eseguito per determinare se l'applicazione sottoposta a test può sostenere il carico continuo.
  • È un tipo di test delle prestazioni.
  • Aiuta il sistema a determinare se resisterà a un volume di utilizzo molto elevato
  • In questo tipo di test, ciò che viene sostanzialmente monitorato è l'utilizzo della memoria da parte di un'applicazione in un sistema
  • I controlli che devono essere eseguiti da qualsiasi utente/tester prima di iniziare il Soak Testing includono
  • Monitorare il consumo delle risorse del database.
  • Monitorare il consumo delle risorse del server (escluso l'utilizzo della CPU).
  • Il test di assorbimento deve essere eseguito con una concorrenza utente realistica.