Il software è composto di istruzioni che assegnano al computer operazioni da eseguire. Spesso il software comprende parecchi milioni di righe di istruzioni simili. Considerata la quantità d'istruzioni non è sorprendente che vi siano anche alcuni errori. Praticamente ogni giorno vengono scoperti e pubblicati errori di design e di programmazione nei programmi di vasta diffusione. Gli errori con ripercussioni sulla sicurezza possono rendere possibile un accesso non autorizzato ai dati e al sistema.