stability testing software testing
Il test di stabilità è una parte del test delle prestazioni. Questo tutorial spiega gli obiettivi, l'importanza e la necessità dei test di stabilità con esempi:
Il test di stabilità è un test 'non funzionale'. Qui il team non verifica le caratteristiche e le funzionalità di base del sito; ma verifica le caratteristiche del prodotto software come 'robustezza', 'gestione degli errori', 'affidabilità' e stabilità del prodotto '.
Consideriamo una persona che acquista un nuovo prodotto dal mercato ( Per esempio, un cellulare). L'acquirente si aspetterà che il prodotto funzioni in modo uniforme per molto tempo, senza guasti. Allo stesso modo, gli utenti del sito Web e dell'app mobile si aspettano che il sito Web o le app mobili corrispondenti funzionino con elevata affidabilità e stabilità.
Ora, prendi il caso degli utenti che cercano di acquistare prodotti da portali di e-commerce. Se un numero enorme di utenti utilizza contemporaneamente lo stesso portale, le possibilità di degrado delle prestazioni del sito Web sono elevate. Gli utenti potrebbero inoltre riscontrare un tempo di risposta lento o persino una perdita di memoria durante la sessione.
Questi problemi sollevano minacce sia per gli sviluppatori che per le parti interessate. È responsabilità del team di test trovare tali problemi e riferire al team di sviluppo prima che raggiunga gli utenti finali. Questo tipo di test verrà sottoposto a test delle prestazioni. Il test di stabilità è una parte del test delle prestazioni.
Cosa imparerai:
Panoramica dei test di stabilità
Come accennato in precedenza, il test di stabilità è anche definito come test 'non funzionale'. Qui, i team di test verificano la robustezza, la gestione degli errori, l'affidabilità e la stabilità del prodotto.
Questo test è anche definito 'Test di resistenza' o 'Soak Testing'. È anche noto come 'Extreme Load Testing'.
In questo tipo di test, i tester verificheranno come risponde il portale online quando molti utenti attivi utilizzano il sito contemporaneamente. I tester devono anche controllare la risposta del sistema in tale ambiente.
In molte occasioni, i siti Web devono essere eseguiti ininterrottamente per settimane (anche mesi) senza la possibilità di riavviare il server. Gli utenti attivi per tali siti Web (gli utenti che utilizzano il sito Web attualmente) possono essere enormi e ogni utente si aspetterà una prestazione senza interruzioni.
Il ruolo dei tester è quello di fornire fiducia agli sviluppatori e garantire agli utenti finali di poter utilizzare un sistema come rientrato, senza errori o perdite di memoria anche in condizioni di traffico elevato. A tale scopo l'applicazione viene sottoposta al massimo carico (fino al breakpoint dell'applicazione) e in tali condizioni viene verificato il comportamento del sistema.
Questo test viene solitamente eseguito prima del rilascio del software. I tester devono assicurarsi che l'applicazione sia in grado di gestire il carico previsto sul sito web. A volte il sistema può bloccarsi a causa di un carico pesante o può diventare lento o persino mostrare comportamenti imprevisti.
La stabilità del software dipende in larga misura dalle prestazioni ininterrotte del sistema nelle suddette condizioni di stress. Quindi, il test di stabilità gioca un ruolo molto importante.
Obiettivi del test di stabilità
Gli obiettivi sono elencati di seguito:
- Per trovare la durata del sistema.
- Trova la stabilità dell'applicazione e quindi aumenta la fiducia dello sviluppatore.
- Trova il difetto nel sistema in un ambiente stressante.
- Valutazione complessiva ed efficacia del prodotto.
- Per assicurarsi che il sistema possa gestire un programma di grandi dimensioni.
- Per testare il tempo di risposta di un'applicazione.
- Per controllare la connettività del database.
Fatti sui test di stabilità
Alcuni fatti utili sono elencati di seguito:
- I test di stabilità richiedono un ambiente di test appropriato.
- Per ottenere risultati migliori, i test di stabilità richiedono un approccio ben pianificato e strutturato.
- È un processo che richiede tempo. Il tempo impiegato per il processo di test può variare in base ai requisiti del cliente, al tipo di prodotto e alle politiche aziendali.
- L'isolamento del sistema è importante in questa forma di test. Durante il test di stabilità dell'applicazione, è possibile che i dati vengano persi o danneggiati in modo permanente.
- I test di resistenza possono causare errori dei componenti dell'applicazione, quindi gli utenti finali possono osservare eccezioni non gestite.
Differenza tra stabilità e affidabilità nel sistema software
Esiste una differenza sostanziale tra affidabilità e stabilità in un'applicazione software. Questo può essere spiegato con l'aiuto di un esempio.
Esempio:
Considera che un utente ha installato una nuova app sul proprio telefono cellulare e l'ha lanciata. Se l'applicazione installata si blocca dopo ogni 3 minuti di utilizzo, sicuramente infastidirà l'utente. Ma se l'utente può ripristinare i dati senza alcuna perdita dopo aver riavviato l'app, l'applicazione non perderà la sua affidabilità. Tale applicazione può essere considerata affidabile ma non può essere considerata stabile.
quello che vedi è quello che ottieni website builder
D'altra parte, prendi lo scenario in cui i dati dell'applicazione non vengono salvati correttamente. Qui l'applicazione funziona bene e non si blocca (come ogni 3 minuti). Tale applicazione può essere o non può essere considerata affidabile, ma può essere considerata 'stabile'.
Affidabilità e stabilità sono come due facce della stessa medaglia. Quindi basta ricordare il fatto che sia l'affidabilità che la stabilità sono importanti per un prodotto dal punto di vista aziendale.
Esempi di test di stabilità:
È un approccio comune che, quando un utente acquista un nuovo telefono cellulare, effettui consapevolmente o inconsapevolmente un test di stabilità. L'utente salverà molte immagini, foto, video, documenti, ecc. Nella memoria del dispositivo e controllerà se troppi dati memorizzati hanno influenzato o meno le prestazioni del dispositivo. Questo è un esempio particolare di test di stabilità.
A causa degli immensi dati memorizzati, il nostro dispositivo a volte potrebbe riagganciarsi, quindi l'utente deve eliminare alcuni dati o cancellare i file temporanei per fare in modo che il dispositivo riacquisti le prestazioni. Dopo questo test, l'utente avrà un'idea chiara della capacità del sistema.
Un altro esempio in tempo reale sono i portali di acquisto online. Durante una stagione di 'saldi / festival' molte persone acquistano prodotti da questi tipi di portali web. Le prestazioni di un sito web devono soddisfare le aspettative degli utenti.
Pertanto, i tester devono testare il sito tenendo presente la prevista 'corsa' che probabilmente si verificherà in questi siti durante quei giorni.
Test di stabilità di una connessione Internet
Qui, il test case sarà verificare quanto sia stabile la nostra connessione Internet. Durante la creazione di una connessione su Internet e la richiesta di pagine Web, a causa della perdita di pacchetti, gli utenti devono subire una latenza incoerente nella visualizzazione delle pagine Web.
A volte, la perdita di pacchetti si verifica quando non riesce a raggiungere la destinazione. È a causa della perdita di pacchetti che molti di noi potrebbero aver riscontrato problemi simili durante l'utilizzo di videochiamate Skype, giochi su Internet o disconnessioni casuali da Internet.
Prerequisiti per testare la connettività Internet:
- Per testare la stabilità di Internet, è necessario disporre di un browser Web in cui il firewall sia disabilitato.
- Scegli un indirizzo web ( Per esempio, https://www.google.com/ ) che è improbabile che fallisca.
- Utilizza Google Spreadsheet o Microsoft Excel per registrare il risultato, poiché è di facile comprensione e più leggibile per gli utenti.
- Ricontrolla la connettività Internet, i dispositivi e controlla di nuovo le connessioni. Effettueremo quindi i test indicati di seguito.
Metodi utilizzati per testare la connettività Internet:
Il modo migliore per testare la connettività è visitare Test di velocità . (prima di ulteriori letture si prega di visitare il sito). In SpeedTest.net abbiamo una disposizione per la scelta dei server. Scegli ed esegui il server vicino a te.
Successivamente, il sito eseguirà alcuni calcoli basati su alcuni algoritmi predefiniti e mostrerà il report che determina immediatamente la qualità della nostra connessione Internet. Nel report è inclusa la percentuale di perdita di pacchetti. Dovrebbe essere '0%'.
La perdita di pacchetti '0%' determina l'elevata stabilità della connessione. Qualsiasi numero maggiore di '0' indica che la connettività è instabile.
Il secondo modo è utilizzare il prompt 'cmd' e digitare il comando 'ping' (fare riferimento alla figura seguente). Qui, utilizzando il prompt dei comandi, possiamo testare anche la stabilità e la latenza di Internet in tempo reale.
Nella figura si prega di controllare la sezione 'Statistiche ping'.
Qui,
Numero di pacchetti inviati = 4
Numero di pacchetti ricevuti = 4
Numero di pacchetti persi = 0
Il risultato mostra che la connessione è altamente stabile.
Processo utilizzato:
Passo 1: I tester sceglieranno uno dei due metodi spiegati sopra.
Passo 2: I tester eseguiranno il processo e registreranno le informazioni necessarie ottenute come risposta alla connettività Internet, in un foglio di calcolo.
Passaggio 3: Ripeteranno il processo 3 o quattro volte a settimana.
(Poiché il test di stabilità viene eseguito per un periodo di tempo, i tester dovranno programmare il processo almeno più di due volte a settimana.)
Passaggio 4: I risultati vengono registrati in fogli di calcolo.
I tester devono annotare la data di esecuzione del processo. Confronta il risultato ottenuto in ogni data per avere un'idea della stabilità della nostra rete attuale.
Nota: Punto di rottura è lo stato del sistema in cui il sistema collasserà quando gli viene assegnato un ulteriore carico. Definisce la capacità del sistema.
Il documento delle specifiche è un documento fornito ai tester dal team leader e conterrà dettagli sul carico previsto nel sistema. Nei test di stabilità, i tester controlleranno il punto di interruzione del sistema in base alle linee guida fornite loro nel documento delle specifiche.
Il team di test controllerà il sistema testando l'applicazione con il carico sopra / sotto il punto di interruzione specificato nel documento delle specifiche. Questo è diverso dal caso del test di carico.
1nf 2nf 3nf bcnf con esempio
Nel test di stabilità, utilizzeremo solo il carico previsto per il test, ma nel test di carico viene assegnato un carico imprevisto all'applicazione ei tester controllano la capacità dell'applicazione.
Ciclo di vita del test del software basato sul test di stabilità
Le diverse fasi del Ciclo di vita del test del software sono arruolati di seguito:
- Analisi dei requisiti
- Piano di test
- Sviluppo del test case
- Configurazione dell'ambiente di prova
- Esecuzione del test case
- Chiusura del test
Comprendiamo in dettaglio tutte le fasi di cui sopra.
# 1) Analisi dei requisiti
In questa fase, il team di test deciderà i diversi tipi di test da eseguire nell'applicazione. Dipende esclusivamente dai requisiti del cliente e dal tipo di applicazione. Per esempio, i tester stanno testando un'applicazione bancaria, quindi il test più prioritario, in questo caso, è il test di sicurezza. Se i tester stanno testando un'applicazione immobiliare, daranno la priorità ai test funzionali.
# 2) Pianificazione dei test
In questa fase vengono discussi gli ambiti dei test. I tester discuteranno della necessità di automazione. Per i test di stabilità, i processi di test sono noiosi e devono essere ripetuti molte volte per una certa durata, l'automazione sarà una buona scelta. 'LoadStrom' è un buon strumento per eseguire test di stabilità utilizzando l'automazione.
In questa fase discuteremo con il cliente il budget e il limite di tempo per il test. Poiché il test richiede tempo, il budget e il limite di tempo dovrebbero rispettare il piano di test.
# 3) Sviluppo del test case
Lo scenario di test per il test dell'applicazione viene creato in questa fase.
# 4) Ambiente di test
L'ambiente di test è un fattore vitale per testare la stabilità. Abbiamo bisogno di un ambiente di test adeguato che sia la replica del nostro ambiente di produzione. L'ambiente originale dovrebbe essere inutilizzato perché durante il test il sito potrebbe a volte bloccarsi o addirittura perdere dati.
# 5) Esecuzione del test
In questa fase vengono eseguiti casi di test e vengono verificati i risultati dei test. Questa è una fase che richiede tempo. I problemi generali affrontati dai tester in questa fase sono perdite di memoria, problemi con la connettività dei dati, tempi di risposta lenti, ecc.
# 6) Chiusura del test
In questa fase, tutti i membri del team si incontreranno e discuteranno i criteri di uscita utilizzati nel progetto. I criteri di uscita dipendono da fattori come il numero di difetti riscontrati e il tempo impiegato nei test.
Strumenti utilizzati nei test di stabilità
Vengono utilizzati i seguenti strumenti:
cos'è il test di regressione nel software
- LoadRunner
- OpenSTA
- LoadUI
- WebLOAD
- LoadComplete
- Appvance
- LoadUI
- Rational Performance Tester
Come utilizzare Apache JMeter per i test di resistenza?
Apache JMeter è un ottimo strumento per i test di resistenza. Prima di iniziare il test, i tester devono avere una buona conoscenza degli obiettivi di business. Dopo di che i tester creeranno gli script di test. Quindi configureremo le impostazioni del gruppo di thread in JMeter.
Durante i test di resistenza utilizzando JMeter, dobbiamo specificare i seguenti fattori:
- Il numero di thread: Indica il numero previsto di utenti sul sito.
- Periodo di accelerazione: Ciò indica il tempo impiegato da ciascun thread per il completamento. Se abbiamo 5 thread, il periodo di avvio è di 50 secondi.
- Conteggio loop: Indica il numero di volte in cui il processo viene ripetuto. Per i test di resistenza, è impostato per sempre.
- Scheduler: In questo test, utilizzeremo la funzionalità di pianificazione. Dobbiamo specificare la configurazione dello scheduler in base al requisito.
Conclusione
Molte applicazioni sono progettate in modo improprio e non liberano la memoria del dispositivo dopo l'uso. Questo porterà gradualmente alla perdita di memoria. Possiamo superare il problema con i test di stabilità. Quindi, il test di stabilità è molto importante. È un test non funzionale. Riguarda solo le caratteristiche dell'applicazione. Qui, il test non riguarda il comportamento del sistema.
Spero che tu abbia capito l'importanza e la necessità dei test di stabilità.
Lettura consigliata
- Lavoro assistente QA test software
- Corso di test del software: quale istituto di test del software dovrei iscrivermi?
- Lavoro freelance di scrittore di contenuti tecnici di test del software
- Scegliere il test del software come carriera
- Consigli sul test del software per i tester alle prime armi
- Feedback e recensioni sul corso di test del software
- Come mantenere viva la motivazione nei tester di software?
- Che cos'è il Monkey Testing nel Software Testing?