Programmfehler
Ein Programmfehler, im englischen auch einfach Bug genannt, ist ein Ausdruck aus dem EDV-Bereich. Ein Programmfehler tritt in Computerprogrammen auf, wenn der Programmierer einen bestimmten Zustand in der Programmlogik nicht berücksichtigt hat, oder wenn die Laufzeitumgebung selber fehlerhaft arbeitet. Auch Unvollständigkeit, Fehler, Ungenauigkeiten, Mehrdeutigkeiten o.ä. in der Spezifikation des Programms können zu Bugs führen, bzw. als solche interpretiert werden. Es gibt eine Regel, nach der ein Computerprogramm ab einer bestimmten Größe immer auch Programmfehler beinhaltet. Auch nichtinitialisierte Variablen führen im Programmablauf zu undefinierten, meist nicht reproduzierbaren Zuständen.
Die Bezeichnung Bug entstand, als 1945 eine Motte in einem der ersten Computer einen Kurzschluss verursacht hatte. US Navy Captain Grace Murray Hopper, eine Pionierin der Computerwissenschaft, entdeckte den Bug und klebte die Motte in ihr Logbuch ein, das heute am Smithsonian Institute aufbewahrt wird (siehe auch Urban Legend).
Um Fehler in Computerprogrammen aufzufinden, werden u.a. Debugger eingesetzt (zum so genannten Debugging, Entfehlerung) oder automatisiert Eingabe- und Bedienungsvorgänge simuliert. Manche Softwareanbieter geben Betaversionen heraus, um die unvorhersehbar vielfältigen Nutzungsbedingungen verschiedener Anwender durch diese selbst testen und kommentieren zu lassen. Dies nennt man scherzhaft auch "Bananensoftware", weil sie erst beim Kunden reift. Außer durch Debugging versucht man, durch Methoden wie Verifizierung oder Code-Review Programmfehler zu vermeiden oder zumindest zu reduzieren.
Die Folgen eines Programmfehlers können außerordentlich sein:
- 1962 führte ein fehlender Bindestrich in einem Fortran-Programm zum Verlust der Venus-Sonde Mariner 1, welche über 80 Millionen US Dollar gekostet hatte.
- Zwischen 1985 und 1987 gab es mehrere Unfälle mit dem medizinischen Bestrahlungsgerät Therac-25. Infolge einer Überdosis mussten Organe entfernt werden, ein Patient verstarb drei Wochen nach der Bestrahlung.
- 1996 wurde der Prototyp der Ariane-5-Rakete der Europäischen Raumfahrtbehörde wegen eines Programmfehlers in einem Steuerungscomputer eine Minute nach dem Start zerstört.