Fehler

Ein Fehler (defect, bug) ist aus Projektsicht eine Abweichung vom geforderten Stand in in einer bestimmten Version. Je nach Projektauftrag (meist bei Werkverträgen) kann ein Fehler aus rechtlicher Sicht einen Mangel darstellen, der vom Auftragnehmer auf dessen Kosten zu beheben ist. In anderen Fällen ist die Behebung Teil der entgeltlichen Entwicklungstätigkeit.

Während man in vielen Fachbereichen grundsätzlich fehlerfreie Produkte erwarten kann, geht man in der Softwareentwicklung allein aufgrund der Komplexität der Systeme davon aus, dass trotz aller Anstrengungen zur Fehlervermeidung und -behebung selbst als stabil angesehene Software eine Fehlerdichte von bis zu 0,5 Fehlern pro 1000 Zeilen Programmcode aufweist.

Der Begriff kann auch allgemeiner eine Abweichung (error, fault) vom spezifizierten, erwarteten oder aber auch vom "normalen" Verhalten (happy path) in einem Computerprogramm bezeichnen, die nicht immer von einem defect verursacht sein muss. So werden auch durchaus erwartete und während der Ausführung vom Programm behandelte Fehler (alternative path) als solche bezeichnet. Die korrekte Behandlung aller denkbaren Fehlerzustände ist ein wichtiges Merkmal qualitativ hochwertiger Software.