Il motivo principale è che il software non è mai corretto, a prescindere alle tecniche di sviluppo utilizzate, quindi tutti i software vanno verificati. Tuttavia, le operazioni di testing e analisi pur essendo molto importanti per il controllo di qualità del prodotto, sono molto costose.
L'US National Institute of Standards and Technology ha dichiarato che i software bugs costano all'economia americana circa $59.5 miliardi ogni anno, e più di un terzo di questo costo (circa $22.2 miliardi) può essere evitato semplicemente migliorando il testing.
Un errore può causare più di un difetto, e un difetto può essere causato da più errori.
Un difetto può causare più di un malfunzionamento, e un malfunzionamento può essere causato da più difetti.
Non c'è una "giusta" categorizzazione, questa può dipendere dallo stile di design, dal linguaggio di implementazion, dai processi e dai documenti, etc..
In ogni caso è importante revisionare le categorie.
Una categorizzazione valida è quella di Pareto (regola dell'80/20) che considera la severità e i costi. In ogni caso la categorizzazione non deve essere perfetta e neanche particolarmente complessa, ma è importante averla. Questa categorizzazione consiste nell':