Wild Card von Daniel Liebhart

Vom Schädling, den wir kaum loswerden

Uhr

Er ist lästig, er ist hartnäckig, er wechselt ständig sein Erscheinungsbild, er versteckt sich und es ist teuer, ihn zu ­bekämpfen: den Fehler in einem IT-System.

(Source: Jackie Niam / adobestock.com)
(Source: Jackie Niam / adobestock.com)

Die Zahlen sind erschreckend: Fehlerhafte Software verursacht in den USA einen Schaden von 2,4 Trillionen Dollar pro Jahr. Das beziffert der zum dritten Mal veröffentlichte Report des Consortium for Information & Software Quality (CISQ) für 2022 – Tendenz steigend. Umgerechnet auf die Wirtschaftsleistung der Schweiz sind das Kosten in Milliardenhöhe. Sie werden in zwei Drittel aller Fälle durch Fehler verursacht, die im laufenden Betrieb auftreten. Darüber hinaus sind die hohen Kosten für die Behebung von Fehlern sowie die indirekten Kosten, die durch den Einsatz veralteter Software erstehen, für den Schaden mitverantwortlich. 

Die einfache Weisheit

Ein interessantes Detail ist die Tatsache, dass wir uns mit dem grossflächigen Einsatz von Open-Source-Software ein Problem eingehandelt haben. Eine durchschnittliche Anwendung mit etwas weniger als 1 Million LoC (Codezeilen) verwendet im Schnitt zwischen 200 und 300 Komponenten eines Drittanbieters – in den meisten Fällen Open-Source-Software. Davon ist mindestens die Hälfte veraltet. Wer sie einsetzt, geht damit ein grosses Risiko ein. Konkret weist der 2024 Open Source Security and Risk Analysis Report nach, dass sogar 54 Prozent aller analysierten Open-Source-Komponenten hochriskante Schwachstellen enthalten, die vielfach durch den Einsatz aktueller Versionen vermieden werden könnten. Die erste Regel der Vermeidung von Fehlern heisst also: immer aktuelle Software einsetzen. 

Die schwierige Gesamtsicht

Doch dann wird es unübersichtlich. Die Vermeidung von Fehlern würde voraussetzen, dass wir wissen, wann und wie sie entstehen. Gemäss einer Feldstudie von IBM gibt es über 400 verschiedene Fehlertypen. Das durchschnittliche Vorkommen von Fehlern in Software ist in den letzten Jahrzehnten sehr gut erforscht worden. Die Schwierigkeit jedoch ist und bleibt, dass die Auswirkung eines Fehlers sehr unterschiedlich sein kann. «Software hat diese erstaunlichen Eigenschaften. Manchmal kann man etwas ändern und es passiert überhaupt nichts. Manchmal ändert man etwas und das Licht geht aus und man kann nach Hause gehen», sagte Les Hatton, Professor für forensisches Software Engineering an der Universität Kingston, in einem Vortrag zum Thema «A General Theory of Software Defects». Programmiersprache und Grösse der Software spielen dabei kaum eine Rolle. 

Der Blick in die Glaskugel

Bleibt also nur der Blick in die Glaskugel – im Klartext die Vorhersage und Vorbeugung von Fehlern während ihrer Entstehung durch qualitätssichernde Massnahmen. In der Theorie gibt es eine Vielzahl von Ansätzen, um solche Vorhersagen treffen zu können. Entscheidend ist dabei die Frage, wie gross ein Fehler sein muss, damit er sich überhaupt bemerkbar macht. Meist ist das erst unter realen Einsatzbedingungen der Fall. Die Konsequenz: Eine Vorhersage ist kaum möglich und keiner dieser sehr interessanten theoretischen Ansätze greift wirklich. In der Praxis sieht die Sache weitaus einfacher aus. Die Umfrage des State of Software Quality Report 2023 zeigt, dass Testautomatisierung (68 Prozent) und Code Reviews (57 Prozent) die beliebtesten Techniken sind, um Fehler zu vermeiden oder frühzeitig zu entdecken. Leider ist die Wirkung dieser Techniken beschränkt. Die zunehmende Verbreitung von Software in alle wirtschaftlichen und privaten Bereiche macht all diese Anstrengungen zunichte. An einer zweiten Regel der Vermeidung von Fehlern müssen wir noch arbeiten.

Webcode
8FCAoVsL