Bekämpfung von Softwarefehlern in der Computersimulation

Laufzeitfehler zählen zu den häufigsten und gefährlichsten Softwarefehlern, auch in wissenschaftlichen Computersimulationen. Das mathematische Verfahren der ‚abstrakten Interpretation’ soll sie laut der FH Stralsund sicher aufspüren.

Prof. Dr. Gero Wedemann von der Fachhochschule Stralsund: „Wissenschaftliche Software wird oft nicht gründlich genug getestet. Dadurch besteht die Gefahr, dass sich Fehler in die Simulation einschleichen und unbemerkt das Modell beeinflussen.“

Da es sich meist um Grundlagenforschung handelt, liegen nur wenige Vergleichsdaten für die Beurteilung der Simulationsergebnisse vor. Ein unentdeckter Fehler könnte daher die Forschung der folgenden Jahre in eine falsche Richtung lenken. Deswegen spielen Korrektheit und Fehlerfreiheit von Software in wissenschaftlichen Projekten eine ausschlaggebende Rolle.

Laufzeitfehler machen sich erst bemerkbar, wenn das Programm ausgeführt wird und lassen es zumeist ohne Vorwarnung abstürzen. Seit neuestem greifen die Stralsunder Forscher auf das Analysewerkzeug „Polyspace Verifier“ der Polyspace Technologies GmbH zu. Es nutzt das Prinzip der „abstrakten Interpretation“, um Auftreten und Art von Laufzeitfehlern zu berechnen. Der britische Mathematiker Alan Turing hatte Mitte der 50er Jahre postuliert, dass es nicht möglich sei, Laufzeitfehler automatisch vorher zu bestimmen. Die exakte Menge der möglichen Zustände eines Systems sei nicht berechenbar, so sein Argument.

Der französische Mathematiker Dr. Alain Deutsch von Polyspace umging dieses Problem jedoch. Je nach Datentyp verfügen Variablen über eine bestimmte Spannweite möglicher Ausprägungen. Der Polyspace Verifier berechnet ausgehend vom Datenfluss des Quellcode, welchen Wertebereich jede Variable zu jedem Zeitpunkt während des Programmablaufs beinhalten kann. Darauf folgend wird für jede mögliche Operation des Programms analysiert, ob nicht erlaubte Zustände (z.B. Division durch Null, Overflow) auftreten können.

Zahlreiche Nachteile dynamischer Softwaretests sollen sich so vermeiden lassen. So kann beispielsweise anhand von herkömmlichen Tests nur festgestellt werden, dass ein Laufzeitfehler vorliegt, aber nicht, worin er besteht. Auch bleiben viele Fehler unentdeckt, weil die dazu notwendigen Testszenarien nicht ausgeführt wurden oder weil die Fehler auf das erwartete Testergebnis keinen Einfluss hatten. Gegenüber dem weit verbreiteten Faganschen Inspektionsprozess hat die automatisierte Prüfung den Vorteil, dass sie wesentlich schneller abläuft: 400 Zeilen Quellcode überprüft der Verifier in etwa zehn Minuten. Dazu benötigen vier Inspektoren nach Fagan jeweils sechs Stunden. (dsc)