Tutorial sul test di affidabilità: cos'è, metodi, strumenti, esempio

Sommario:

Anonim

Test di affidabilità

Il test di affidabilità è un processo di test del software che verifica se il software può eseguire un'operazione senza errori per un periodo di tempo specificato in un particolare ambiente. Lo scopo del test di affidabilità è garantire che il prodotto software sia privo di bug e sufficientemente affidabile per lo scopo previsto.

Affidabilità significa "produrre lo stesso", in altri termini, la parola "affidabile" significa che qualcosa è affidabile e che darà lo stesso risultato ogni volta. Lo stesso vale per i test di affidabilità.

In questo tutorial imparerai-

  • Che cos'è il test di affidabilità?
  • Esempio di test di affidabilità
  • Fattori che influenzano l'affidabilità del software
  • Perché eseguire il test di affidabilità
  • Tipi di test di affidabilità
  • Come eseguire il test di affidabilità
  • Metodi di esempio per i test di affidabilità
  • Strumenti di test di affidabilità

Esempio di test di affidabilità

La probabilità che un PC in un negozio sia attivo e funzionante per otto ore senza crash è del 99%; questo è indicato come affidabilità.

I test di affidabilità possono essere classificati in tre segmenti,

  • Modellazione
  • Misurazione
  • Miglioramento

La seguente formula serve per calcolare la probabilità di guasto.

Probabilità = Numero di casi non riusciti / Numero totale di casi presi in considerazione

Fattori che influenzano l'affidabilità del software

  1. Il numero di guasti presenti nel software
  2. Il modo in cui gli utenti utilizzano il sistema
  • Il test di affidabilità è una delle chiavi per una migliore qualità del software. Questo test aiuta a scoprire molti problemi nella progettazione e nella funzionalità del software.
  • Lo scopo principale del test di affidabilità è verificare se il software soddisfa i requisiti di affidabilità del cliente.
  • I test di affidabilità verranno eseguiti a diversi livelli. I sistemi complessi saranno testati a livello di unità, assemblaggio, sottosistema e sistema.

Perché eseguire il test di affidabilità

Il test di affidabilità viene eseguito per testare le prestazioni del software nelle condizioni date.

L'obiettivo dietro l'esecuzione dei test di affidabilità è,

  1. Per trovare la struttura dei fallimenti ripetuti.
  2. Per trovare il numero di errori che si verificano è la quantità di tempo specificata.
  3. Per scoprire la causa principale del fallimento
  4. Per condurre test delle prestazioni di vari moduli dell'applicazione software dopo aver riparato il difetto

Anche dopo il rilascio del prodotto, possiamo ridurre al minimo la possibilità che si verifichino difetti e quindi migliorare l'affidabilità del software. Alcuni degli strumenti utili per questo sono: analisi delle tendenze, classificazione dei difetti ortogonali e metodi formali, ecc ...

Tipi di test di affidabilità

I test di affidabilità del software includono test delle funzionalità, test di carico e test di regressione

Test delle funzionalità: -

Il test in primo piano controlla la funzionalità fornita dal software e viene condotto nei seguenti passaggi: -

  • Ogni operazione nel software viene eseguita almeno una volta.
  • L'interazione tra le due operazioni è ridotta.
  • Ogni operazione deve essere controllata per la sua corretta esecuzione.

Test di carico: -

Di solito, il software funzionerà meglio all'inizio del processo e successivamente inizierà a degradarsi. Il test di carico viene condotto per verificare le prestazioni del software sotto il carico di lavoro massimo.

Test di regressione:-

Il test di regressione viene utilizzato principalmente per verificare se sono stati introdotti nuovi bug a causa della correzione di bug precedenti. Il test di regressione viene condotto dopo ogni modifica o aggiornamento delle caratteristiche del software e delle loro funzionalità.

Come eseguire il test di affidabilità

Il test di affidabilità è costoso rispetto ad altri tipi di test. Quindi è necessaria una corretta pianificazione e gestione durante i test di affidabilità. Ciò include il processo di test da implementare, i dati per l'ambiente di test, la pianificazione dei test, i punti di test, ecc.

Per iniziare con i test di affidabilità, il tester deve continuare a seguire le cose,

  • Stabilire obiettivi di affidabilità
  • Sviluppare il profilo operativo
  • Pianifica ed esegui i test
  • Usa i risultati dei test per guidare le decisioni

Come abbiamo discusso in precedenza, ci sono tre categorie in cui possiamo eseguire il test di affidabilità: modellazione, misurazione e miglioramento .

I parametri chiave coinvolti nel test di affidabilità sono: -

  • Probabilità di funzionamento senza guasti
  • Durata del funzionamento senza guasti
  • L'ambiente in cui viene eseguito

Passaggio 1) Modellazione

La tecnica di modellazione software può essere suddivisa in due sottocategorie:

1. Prediction Modeling

2. Modellazione di stima

  • Risultati significativi possono essere ottenuti applicando modelli adeguati.
  • Si possono fare ipotesi e astrazioni per semplificare i problemi e nessun singolo modello sarà adatto a tutte le situazioni.

    Le principali differenze tra due modelli sono: -

Problemi Modelli di previsione Modelli di stima
Riferimento dati Utilizza dati storici Utilizza i dati correnti dallo sviluppo del software.
Se utilizzato nel ciclo di sviluppo Di solito viene creato prima delle fasi di sviluppo o test. Di solito verrà utilizzato nella fase successiva del ciclo di vita dello sviluppo del software.
Lasso di tempo Prevede l'affidabilità in futuro. Prevede l'affidabilità per il tempo presente o per il tempo futuro.

Passaggio 2) Misurazione

L'affidabilità del software non può essere misurata direttamente e, quindi, altri fattori correlati sono considerati al fine di stimare l'affidabilità del software. Le attuali pratiche di misurazione dell'affidabilità del software sono suddivise in quattro categorie: -

1. Metriche del prodotto: -

Le metriche del prodotto sono la combinazione di 4 tipi di metriche:

  • Dimensioni del software : - Line of Code (LOC) è un approccio iniziale intuitivo per misurare le dimensioni del software. Solo il codice sorgente viene conteggiato in questa metrica e i commenti e altre istruzioni non eseguibili non verranno conteggiati.
  • Function point Metric : - Function Pont Metric è il metodo per misurare la funzionalità dello sviluppo software. Considererà il conteggio di input, output, file master, ecc. Misura la funzionalità fornita all'utente ed è indipendente dal linguaggio di programmazione.
  • Complessità : - È direttamente correlata all'affidabilità del software, quindi rappresentare la complessità è importante. La metrica orientata alla complessità è un metodo per determinare la complessità della struttura di controllo di un programma, semplificando il codice in una rappresentazione grafica.
  • Metriche di copertura del test : - È un modo per stimare i guasti e l'affidabilità eseguendo il test completo dei prodotti software. Affidabilità del software significa che è la funzione di determinare che il sistema è stato completamente verificato e testato.

2. Metriche di gestione del progetto

  • I ricercatori hanno capito che una buona gestione può portare a prodotti migliori.
  • Una buona gestione può raggiungere una maggiore affidabilità utilizzando un migliore processo di sviluppo, processo di gestione del rischio, processo di gestione della configurazione, ecc.

3. Metriche di processo

La qualità del prodotto è direttamente correlata al processo. Le metriche di processo possono essere utilizzate per stimare, monitorare e migliorare l'affidabilità e la qualità del software.

4. Metriche di guasto e guasto

Le metriche di errore e guasto vengono utilizzate principalmente per verificare se il sistema è completamente privo di guasti. Per raggiungere questo obiettivo vengono raccolti, riepilogati e analizzati sia i tipi di guasti rilevati durante il processo di test (ovvero prima della consegna) sia i guasti segnalati dagli utenti dopo la consegna.

L'affidabilità del software viene misurata in termini di tempo medio tra guasti (MTBF) . L'MTBF è costituito da

  • Mean to failure (MTTF): è la differenza di tempo tra due guasti consecutivi
  • Tempo medio di riparazione (MTTR): è il tempo necessario per correggere l'errore.
MTBF = MTTF + MTTR

L'affidabilità per un buon software è un numero compreso tra 0 e 1.

L'affidabilità aumenta quando vengono rimossi errori o bug dal programma.

Passaggio 3) Miglioramento

Il miglioramento dipende completamente dai problemi verificatisi nell'applicazione o nel sistema, oppure dalle caratteristiche del software. A seconda della complessità del modulo software, anche la via del miglioramento sarà diversa. Due principali vincoli di tempo e budget, che limiteranno gli sforzi per migliorare l'affidabilità del software.

Metodi di esempio per i test di affidabilità

Il test dell'affidabilità riguarda l'esercizio di un'applicazione in modo che gli errori vengano rilevati e rimossi prima che il sistema venga distribuito.

Esistono principalmente tre approcci utilizzati per i test di affidabilità

  • Affidabilità test-retest
  • Affidabilità delle forme parallele
  • Coerenza decisionale

Di seguito abbiamo cercato di spiegare tutto questo con un esempio.

Affidabilità test-retest

Per stimare l'affidabilità del test-retest, un singolo gruppo di esaminati eseguirà il processo di test a distanza di pochi giorni o settimane. Il tempo dovrebbe essere abbastanza breve da consentire la valutazione delle abilità dei candidati nell'area. La relazione tra i punteggi del candidato da due diverse amministrazioni è stimata, attraverso la correlazione statistica. Questo tipo di affidabilità dimostra fino a che punto un test è in grado di produrre punteggi stabili e coerenti nel tempo.

Affidabilità delle forme parallele

Molti esami hanno più formati di fogli di domande, queste forme parallele di esame forniscono sicurezza. L'affidabilità delle forme parallele viene stimata somministrando entrambe le forme dell'esame allo stesso gruppo di esaminati. I punteggi dei candidati sui due moduli di prova sono correlati al fine di determinare come funzionano allo stesso modo i due moduli di prova. Questa stima dell'affidabilità è una misura di quanto ci si può aspettare che i punteggi degli esaminandi siano coerenti tra i moduli di test.

Coerenza decisionale

Dopo aver eseguito Test-Retest Reliability e Parallel Form Reliability, otterremo un risultato di esaminati che hanno superato o meno. È l'affidabilità di questa decisione di classificazione che viene stimata nell'affidabilità della coerenza decisionale.

Importanza dei test di affidabilità

È necessaria una valutazione approfondita dell'affidabilità per migliorare le prestazioni del prodotto e del processo software. Testare l'affidabilità del software aiuterà in larga misura i gestori del software e i professionisti.

Per verificare l'affidabilità del software tramite test: -

  1. È necessario eseguire un gran numero di casi di test per un periodo di tempo prolungato per scoprire per quanto tempo il software verrà eseguito senza errori.
  2. La distribuzione dei casi di test deve corrispondere al profilo operativo effettivo o pianificato del software. Più spesso viene eseguita una funzione del software, maggiore è la percentuale di casi di test che dovrebbero essere assegnati a quella funzione o sottoinsieme.

Strumenti di test di affidabilità

Alcuni degli strumenti di test di affidabilità utilizzati per l'affidabilità del software sono:

1. WEIBULL ++: - Analisi dei dati sulla vita affidabile

2. RGA: - Analisi della crescita dell'affidabilità

3. RCM: - Manutenzione centrata sull'affidabilità

Sommario:

Il test di affidabilità è la parte importante di un programma di ingegneria dell'affidabilità. Più correttamente, è l'anima del programma di ingegneria dell'affidabilità.

Inoltre, i test di affidabilità sono progettati principalmente per scoprire particolari modalità di guasto e altri problemi durante i test del software.

Nell'ingegneria del software, i test di affidabilità possono essere classificati in tre segmenti,

  • Modellazione
  • Misurazione
  • Miglioramento

Fattori che influenzano l'affidabilità del software

  • Il numero di guasti presenti nel software
  • Il modo in cui gli utenti utilizzano il sistema