totale Kontrolle

Jeden Tag sind wir darauf angewiesen, dass Computersoftware korrekt funktioniert. Nicht nur, wenn wir Laptops oder Handys benutzen, auch, wenn wir in ein Flugzeug steigen, Geld überweisen oder uns einfach nur auf die alltägliche Stromversor­gung verlassen, sind wir von komplizierter Software abhängig.

Text: tuw.media-Redaktion

Die Suche nach Fehlern in dieser Software ist längst automatisiert: Es gibt Computerprogramme, die andere Computerprogramme auf Fehler überprüfen. Aber wer kontrolliert nun die Software-Kontrollprogramme? Mit dieser höchst diffizilen Frage beschäftigt sich Prof. Maria Christakis vom Institut für Information Systems Engineering der TU Wien. Sie wurde nun vom European Research Council (ERC) mit einem ERC Starting Grant ausgezeichnet – einer der prestigeträchtigsten und höchstdotierten Förderungen der europäischen Forschungslandschaft.

In besonders kritischen Bereichen, etwa bei der Steuerung eines Flugzeugs oder eines Kernkraftwerks, möchte man sich nicht damit begnügen, dass die Software bei bisherigen Tests keine Fehler gemacht hat. Man möchte einen Beweis dafür, dass die Software fehlerfrei ist und sich in jeder denkbaren Situation richtig verhält. Dafür verwendet man heute Programmanalyse-Tools, die Computercode auf Basis formaler Logik untersuchen. In bestimmten Fällen kann man dann mit mathematischer Präzision beweisen, dass ein bestimmter Code tatsächlich absolut fehlerfrei ist.

Doch wer analysiert diese Analysetools selbst? „Programmanalyse-Tools sind heute höchst komplex – die Wahrscheinlichkeit, dass sie selbst irgendwelche Fehler beinhalten, ist daher groß“, sagt Maria Christakis. Das kann zu falschen oder irreführenden Ergebnissen führen – etwa zur Diagnose, dass der untersuchte Code korrekt ist, obwohl er immer noch Fehler enthält.

Die Fehlerlosigkeit eines solchen Analysetools mit herkömmlichen Methoden zu untersuchen ist kaum möglich – die Tools sind so komplex, dass das viel zu lange dauern würde. Christakis wählt daher eine andere Strategie: Anstatt die Fehlerlosigkeit der Programme mit mathematisch-logischer Präzision zu verifizieren, kann man auch versuchen, auf automatisierte Weise passende Testsituationen für diese Programme generieren zu lassen. „Diese automatisierte Erstellung von Tests kann Programmfehler sehr effektiv aufspüren“, erklärt Christakis, „allerdings stecken die Methoden für diesen Einsatzzweck noch in den Kinderschuhen.“

Das soll sich aber ändern: Mit dem Projekt „Miranda­Testing“, das nun durch den ERC-Grant finanziert wird, will Maria Christakis mit ihrem Team erstmals einen systematischen Zugang entwickeln, um ein breites Spektrum an Programmanalyse-Tools zu testen. So sollen diese Tools verläss­licher werden, und damit wird auch die Software, auf die wir Tag für Tag angewiesen sind, zuverlässiger – ganz besonders in Hochrisiko­bereichen, in denen jeder Fehler zu schweren Schäden an Menschen, der Umwelt oder kritischer Infrastruktur führen könnte.  

Programmanalyse-Tools, zu denen Maria Christakis forscht, sind höchst komplex.

Text: Florian Aigner
Foto: TU Wien