Softwarefehler
Fehler in Computerprogrammen sind lästig, allgegenwärtig, teuer, manchmal verheerend und oft ein Risiko für die Computer-
Beispiele
- Jahr-
2000- – Bis Mitte der 1990er Jahre haben sich viele Programmierer einfach nicht darum gekümmert, was ab dem Jahr 2000 sein wird. Als problematisch haben sich z. B. zweistellige Jahreszahlen in Datumsangaben erwiesen.Problem - Die Raumsonde Mariner 1 stürzte ab, weil im Programmcode der Steuerungssoftware ein Bindestrich vergessen worden war.
- Die Ariane-
5- Rakete stürzte bei ihrem Erstflug ab, weil eine Variable zu große Werte annahm. - Eine präparierte, über das Netz verschickte Nachricht genügte, um einen Windows-
Rechner zu übernehmen. So breitete sich die Schadsoftware "Conficker" über das Internet auf Millionen Rechner aus. - Fehlerhafte Software ist mit Abstand der häufigste Grund, warum Handys zur Reparatur müssen.
- Automobilclubs berichten, dass 10% ihrer Panneneinsätze auf Störungen in der Elektronik zurückgehen. Immer wieder müssen Auto-
Hersteller ihre Fahrzeuge zurückrufen, um Fehler in der Software auszubessern. - Ein MP3-
Player war am 31.12.2008 nicht verwendbar, weil die Datumsfunktion aufgrund des Schaltjahres in eine Endlosschleife geriet. - Linux-
Server stürzten ab, als eine Schaltsekunde eingeschoben wurde. - Bill Gates bekommt ständig Mahnschreiben vom US-
Finanzamt, weil die Computer mit den großen Summen überfordert sind und sich laufend verrechnen.[1]
Problem
Viele der Fehler haben ganz banale Ursachen, sodass ich durchaus verstehen kann, wenn Laien eine schlechte Meinung von Programmierern und Softwarefirmen haben. Dass die Softwaretechnik noch zu keiner besseren Qualitätssicherung gekommen ist, hat aber nachvollziehbare Gründe:
- Selbst der sorgfältigste Programmierer macht Fehler.
- Es ist bewiesen, dass es kein allgemeines Verfahren geben kann, das jeden Fehler in einer Software findet.
- Kleinste Fehler können drastische Auswirkungen haben.
Gegenmaßnahmen
- Testen – Kann man nie genug.
- Fehlersuche – auch schon bevor ein Fehler entdeckt wurde
- Fehlerbehandlung – d. h. Fehler voraussehen und sinnvolle Reaktionen vorsehen
- Robuste Software – sodass Fehler weniger drastische Auswirkungen haben
- Verzicht auf Funktionen, um die Software einfacher zu machen – Ist für mich eher eine Notlösung.
Immer wieder werden neue Ideen vorgestellt, was man gegen Softwarefehler tun kann, aber einen wirklichen Durchbruch sehe ich nicht. Wahrscheinlich muss man auch da erst auf die künstliche Intelligenz warten.
Weiter
Weblinks
- Die schwersten Software-
Fehler in der Geschichte , derStandard.at, 12.1.2006
Quellen
[1] | Kurier, 2.2.2006, S. 21 |