Testing software: Differenza tra errore, bug, fault, difetto e guasto in informatica

Testing software: Differenza tra errore, bug, fault, difetto e guasto in informatica

Guasto, errore e fallimento

A differenza dei sistemi fisici, la maggior parte dei guasti software riguarda errori di progettazione e non di fabbricazione. Scoprire gli errori di progettazione è tanto più difficile quanto più è complesso il software.

Di seguito sono riportate tutte le definizioni.

DIFETTO: può essere semplicemente definito come una varianzione tra risultato atteso e reale. Il difetto è un errore riscontrato dopo che l’applicazione entra in produzione. Si riferisce comunemente a diversi problemi con i prodotti software, con il suo comportamento esterno o con le sue caratteristiche interne. In altre parole, Difetto è la differenza tra risultato atteso e reale nel contesto del test. In altre parole, rappresenta la deviazione del requisito del cliente.

Il difetto può essere classificato come segue:

  • Sbagliato: quando i requisiti sono implementati non nel modo giusto. Questo difetto è una variazione rispetto alla specifica fornita. È sbagliato!
  • Mancante: requisito del cliente non soddisfatto. Questa è una variazione rispetto alle specifiche, un’indicazione che una specifica non è stata implementata o un requisito del cliente non è stato annotato correttamente.
  • Extra: un requisito incorporato nel prodotto che non è stato dato dal cliente finale. Questa è sempre una variazione rispetto alle specifiche, ma può essere un attributo desiderato dall’utente del prodotto. Tuttavia, è considerato un difetto perché differisce dai requisiti esistenti.

Vediamo adesso la differenza tra error, bug, e failure

ERROR o ERRORE: un errore è associato ad un errato sviluppo software. Nella categoria degli sviluppatori includiamo ingegneri del software, programmatori, analisti e tester. Ad esempio, uno sviluppatore potrebbe fraintendere una notazione di design, oppure un programmatore potrebbe digitare un nome di variabile in modo errato, causando un errore. È quello che viene generato a causa di login, loop o sintassi errati. L’errore si presenta normalmente nel software; porta a cambiare dunque la funzionalità del programma.

FAULT, BUG o DEFECT: una codifica errata, una definizione di processo o di dati in un programma per computer provoca l’esecuzione del programma in modo involontario o imprevisto. Un bug viene introdotto nel software a seguito di un errore. Si tratta di un’anomalia nel software che può causare un comportamento errato e non conforme alle specifiche. Quindi è il risultato dell’errore.

FAILURE o GUASTO: un failure è l’incapacità di un sistema software o di un componente di eseguire le funzioni richieste entro i requisiti di prestazione specificati. Quando un difetto raggiunge il cliente finale, viene chiamato failure (guasto). Durante lo sviluppo, i tester osservano solitamente guasti.

Testing software

Il metodo più naturale e tradizionale per verificare un prodotto è quello di provarlo in un certo numero di situazioni rappresentative, accertando che si comporti come previsto. In generale, è impossibile testare un software in tutte le sue possibili condizioni operative; pertanto risulta necessario trovare alcuni casi di test che forniscano con una sufficiente evidenza che il prodotto avrà un comportamento accettabile anche nelle situazioni in cui non è stato testato.

Il test è un’attività critica nell’ingegneria del software e dovrebbe essere eseguita nel modo più sistematico possibile, definendo in maniera chiara i risultati che si attendono e il modo in cui si vuole ottenerli. Nella pratica, invece, il test viene eseguito in maniera non sistematica e senza applicare criteri predeterminati.

Il test può essere usato per dimostrare la presenza di malfunzionamenti, non per dimostrare la loro assenza (tesi di Dijkstra, 1972).
Il test dovrebbe dunque aiutare a localizzare gli errori e non solo a rilevarne la presenza. Prima di rilasciare il software finale gli ingegneri devono testare sia i requisiti funzionali che quelli non funzionali, utilizzando eventualmente più di una tecnica di test.

Testing software: Differenza tra errore, bug, fault, difetto e guasto in informatica

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: www.vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *