Differenza tra Errore, Difetto e Malfunzionamento in informatica

Differenza tra Errore, Difetto e Malfunzionamento in informatica

In questo articolo vediamo la differenza che intercorre tra Errore, Difetto e Malfunzionamento in informatica. Di fatto e nella pratica, occorre distinguere i malfunzionamenti del software (failure) dai difetti (defect) derivati da errori nello sviluppo (defect o bug). Un malfunzionamento viene definito semplicemente come un comportamento del software diverso dai requisiti di progetto e si presenta quando il sistema non esegue quello che l’utente si aspetta. Mentre un difetto è una parte di software o processo, che quando eseguito in particolari circostanze, genera un malfunzionamento.

Differenza tra Errore, Difetto e Malfunzionamento in informatica

In altre parole e più nel dettaglio, un essere umano può commettere un errore (quindi uno sbaglio), il quale produce un difetto (fault, bug) nel codice del programma oppure in un documento. Se il codice difettoso viene eseguito, il sistema può fallire nel fare quello che deve fare (o può fare qualcosa che non deve), causando un esito negativo ‘failure’. Difetti nel software, nei sistemi, nei documenti possono provocare ‘failures’, ma non tutti i difetti li possono provocare.
I difetti nascono perché l’essere umano non è infallibile, e diventa maggiormente incline agli errori nelle condizioni in cui può essere costretto ad operare: mancanza di tempo, complessità del codice, complessità dell’infrastruttura, cambiamento delle tecnologie, e/o a causa delle molte interazioni nel sistema.

Esiti negativi possono essere causati anche da condizioni ambientali: ad esempio radiazioni, magnetismo, campi elettrici e inquinamento, possono causare guasti nel firmware o influenzare l’esecuzione del software andando a modificare condizioni hardware.

Riassumendo:

  1. Errore: deriva da una causa umana ed è poco prevedibile;
  2. Difetto: è introdotto da un errore ed è da eliminare;
  3. Malfunzionamento: è prodotto da un difetto ed è da riparare;
  4. Scostamento: è la differenza tra l’osservato e il desiderato.

Error, fault and failure

Le attività di controllo si differenziano in “verifica” e “convalida”. Di fatto, la verifica assicura che il sistema integri tutti i requisiti funzionali definiti in analisi di progetto. La convalida assicura che il software sia conforme con le aspettative dell’utente e che quindi le funzionalità siano effettivamente quelle richieste.

L’attività di verifica è particolare, si può ottenere un software perfettamente funzionante, senza errori, ma del tutto inutile in quanto non rispecchia quanto era stato richiesto all’inizio, aspetto evidenziato da una attività di convalida. Inoltre, le attività di verifica si dividono in due famiglie: “verifica statica” o “metodi formali” ed “analisi dinamica” da cui deriva il termine Testing.

Infine, bisogna osservare che le attività di verifica vengono eseguite più volte durante lo sviluppo del software in base al modello di sviluppo utilizzato.

 

Pubblicato da Vito Lavecchia

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

Lascia un commento

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