Software wird von Menschen erstellt, und Menschen machen Fehler. Selbst einfache Softwareanwendungen bestehen in der Regel aus einer beträchtlichen Anzahl funktionierender Teile oder Einheiten, von denen jede aus vielen Zeilen komplexen Programmcodes besteht. Einzelne Komponenten lassen sich nicht immer gut integrieren, und das führt zu Fehlern.