Forscher züchten Software-Fehler

Ein Computerprogramm sollte erst in den Handel kommen, wenn es ausreichend getestet wurde. Doch wie weiß man, ob dies der Fall ist? Forscher der Universität des Saarlandes haben ein Prüfverfahren entwickelt, das automatisch künstliche Fehler in ein Programm einstreut.

“Unser Werkzeug erzeugt den ganzen Tag Fehler, wie auch Programmierer sie machen – und prüft dann, ob sie vom Test gefunden werden”, sagte David Schuler, Doktorand an der Universität des Saarlandes. Eigentlich sollte ein guter Programm-Test alle Fehler aufspüren. “Findet er aber die künstlichen Fehler nicht, wird er auch die echten Fehler verpassen”, so Andreas Zeller, Professor für Softwaretechnik in Saarbrücken.

Das so genannte Mutationstesten wurde bereits vor 30 Jahren erfunden. Bisher war es aber auf kleine Programme von hundert Zeilen und weniger beschränkt. “Unser Javalanche-System prüft Programme, die tausendmal so groß sind wie die bisherigen – bis hin zu großen kommerziellen Java-Programmen”, so Zeller.

Die Saarbrücker Forscher erreichen nach eigenen Angaben mehr Effizienz, indem sie die Wirkung der eingestreuten Fehler messen. “Je größer die Wirkung einer Mutation, umso bedeutender ist sie für die Prüfung”, so Valentin Dallmeier, Experte für Programmanalyse. Viele eingestreute Mutationen zeigten kaum Wirkung und müssten bisher mühsam von Hand herausgesucht werden. Das Javalanche-Verfahren hingegen suche die Fehler vollautomatisch.

In Zukunft wollen die Forscher künstliche Fehler regelrecht züchten. “Wir wollen aus wirkungsvollen Mutationen neue Generationen ableiten, die die Wirkung weiter steigern”, sagte Zeller. Am Ende stehen ‘Super-Mutanten’, die “alles im Programm durcheinander bringen, aber vom Test nicht gefunden werden” – und so automatisch die größten Schwachstellen beim Testen aufdecken.

&nbsp

David Schuler
Das Forscher-Team um David Schuler (Mitte)
Bild: Universität des Saarlandes

&nbsp