Fehlanzeige bei Software-Qualitätsmanagement
Kleine Fehler – große Wirkung
Zu viel Vertrauen
Fehlanzeige bei Software-Qualitätsmanagement
Wenn es um die Ursachen von Programmabstürzen geht, sind falsche Eingaben die unumstrittene Nummer Eins. In einem guten Programm sollten alle möglichen Inputs und Outputs überprüft werden. Das gilt für die interne Konsistenz – wurde in ein numerisches Feld eine Zahl eingegeben? – wie auch für gültige Wertebereiche – wurde das Alter einer Person vielleicht als negative Zahl eingegeben? – gleichermaßen.
Leider kosten solche Überprüfungen Zeit und Geld, deshalb werden sie von Programmierern stillschweigend ignoriert. Stattdessen verlässt man sich darauf, dass die Anwender schon wissen, was sie vernünftigerweise einzugeben haben. Aber ein solches Vertrauen ist absolut fehl am Platz.
Ganz egal, in welchen Umgebungen diese Programme laufen, ob unter Windows oder im Web: Solche Mängel tauchen mit penetranter Regelmäßigkeit überall auf.
Wenn Sie nicht genau wissen, was ich meine, probieren Sie doch mal Folgendes: Öffnen Sie in Word 2000 den “Ersetzen”-Dialog und geben Sie mehr als 255 Zeichen in das “Suchen”-Feld ein (einfach auf irgendeine Taste so lange drücken, bis es piepst!). Dann tun Sie dasselbe im “Ersetzen”-Feld. Auch hier piepst es, aber wenn Sie dann den “Ersetzen”-Button drücken, verabschiedet sich Word kurz und bündig (unbehandelte Ausnahme in Winword.exe 0x0000005 falls Sie es genauer wissen wollen!).
Negativbeispiel: MS Office
Fehlanzeige bei Software-Qualitätsmanagement
Zufall? Nein, wirklich nicht! Versuchen Sie, eine Tabelle mit mehr als 50 Spalten und 32.000 Zeilen einzufügen. Word akzeptiert dies zunächst und hängt sich dann auf. Sie meinen, ich sollte Geld für ein Upgrade ausgeben? Fehlanzeige, an einer neuen Latte solcher Fehler bin ich nicht interessiert.
Im Web sind solche Probleme noch viel verbreiteter. Wenn Sie ein Webprogramm auf Herz und Nieren durchchecken, müssen Sie das sowohl für die Frontend- als auch die Backend-Anwendung tun.
Es wäre schön, könnte man auf dem Frontend für einen kompletten Check JavaScript einsetzen, aber da tauchen zwei weitere Probleme auf: Erstens, unsere “Jungen Wilden” unter den Hackern knacken das, und zweitens, JavaScript ist selbst voll von Bugs. So akzeptiert beispielsweise die JavaScript-Version, die ich verwende, “3;rm*” als Eingabe in ein numerisches Feld, weil es nur das erste Zeichen überprüft (der Rest dieser Eingabe löscht übrigens Dateien…!).
Noch schlimmer im Web
Fehlanzeige bei Software-Qualitätsmanagement
Web-Programme sollten sich nicht alleine auf Frontend-Checks beschränken, sondern müssen auf vielen Sites getestet werden, auch wenn diese Tests nicht immer vernünftig funktionieren. Einige der ersten Sites, auf denen mit Kreditkarten bezahlt werden konnte, akzeptierten sogar negative Beträge oder schrieben dem Onlinekäufer Beträge gut.
Und auch das Backend muss bei jeder guten Webanwendung mit ASP, PHP oder einem ähnlichen Programm gründlich getestet werden.
Glauben Sie immer noch, ich übertreibe? Dann will ich Ihnen ein noch überzeugenderes Beispiel liefern: Am 9. Dezember 2005 verlor der japanische Aktienbroker Mizuho Securities knapp 2,2 Millionen Euro wegen eines Tippfehlers (wir berichteten). Ein Aktienhändler bot versehentlich 610.000 Aktien zum Verkauf von je einem Yen an, statt eine Aktie für 610.000 Yen (etwa 4.200 Euro). Gut dass es an der Tokioter Börse Grenzwerte für Preisschwankungen gibt, die noch größere Verluste verhindern.
Der unglückliche Aktienhändler musste viel Kritik einstecken, aber die wirklichen Übeltäter waren schlampig entwickelte Programme und ebenso schlampige Testverfahren.
Es braucht wirklich nicht viel, um falschen Input auszuschließen, aber dies sind leider Beispiele für die unprofessionellen Standards, die sich auch in der IT-Welt vielerorts noch hartnäckig halten. Ein Qualitätsmanagement nach ISO-Norrm, wie es Professor Jamin von der FH München im IT-Managementblog vorschlägt, findet in den wenigsten Fällen statt. Zumindest planen mehrere Hochschulen in Deutschland, ihren Studenten mehr Qualitätsbewusstsein und das Umgehen mit den Testverfahren beizubringen. Denn Manager müssen den Programmieren “Manieren beibringen” (also Routine im Qualitätsmanagement), statt sich nur ihre Software “unter den Nagel zu reißen”.