Kostenloser Elchtest für Software
Wer aber garantiert, dass diese Tools tatsächlich auch das tun, was sie sollen: nämlich Fehler finden. Um das im Einzelnen herauszufinden haben Forscher der Universität des Saarlandes ein Prüfverfahren entwickelt, bei dem automatisch Fehler in ein Programm gestreut werden.
Finden die Test-Programme diese Veränderungen nicht, dann sind Andreas Zeller, Professor für Softwaretechnik an der Universität des Saarlandes und der Vater des so genannten Delta-Debuggings, und seine Truppe dem Programm auf die Schliche gekommen. Denn wenn die automatisierten Fehler nicht gefunden werden, dann findet das Programm auch nicht die echten Fehler in der Software.
Wer also die Test-Tools an seinen eigenen Java-Programmen prüfen will, kann das mit dem Javalanche-System, das frei im Internet zugänglich ist. Das Forscherteam um Andreas Zeller, wird das System auf der Cebit 2010 in Hannover vom 2. bis 6. März am saarländischen Forschungsstand (Halle 9, Stand B 43) vorstellen.
Javalanches Aufgabe ist es, Programme möglichst kunstvoll zum Absturz zu bringen. David Schuler, Doktorand an der Universität des Saarlandes, forscht an künstlichen Programm-Fehlern. “Unser Werkzeug erzeugt den ganzen Tag Fehler, wie auch Programmierer sie machen und prüft dann, ob sie vom Test gefunden werden”, erläutert Schuler. Eigentlich sollte ein guter Programm-Test alle Fehler aufspüren. “Findet er aber die künstlichen Fehler nicht, wird er auch die echten, noch vorhandenen Fehler verpassen”, sagt Professor Andreas Zeller, der Leiter des Projektes. Dann müsse der Test auf jeden Fall nachgebessert werden.
Den hohen Wirkungsgrad erreichen die Saarbrücker Forscher, indem sie messen, wie stark die Veränderung ist, die durch die eingestreuten Fehler ausgelöst wird. “Je größer die Veränderung, umso bedeutender ist sie für die Prüfung”, erläutert Zeller. Viele eingestreute Fehler zeigten jedoch keine Wirkung und mussten bisher mühsam von Hand herausgesucht werden, weil sie von Softwaretests nicht gefunden werden konnten. Das Javalanche-Verfahren hingegen entdeckt die Veränderungen, auch Mutationen genannt, ganz automatisch. Bereits vor 30 Jahren wurden Mutationstests erfunden. Bisher waren sie aber auf äußerst 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”, unterstreicht Professor Zeller.
In Zukunft wollen die Saarbrücker Forscher künstliche Fehler regelrecht züchten. Am Ende sieht Zeller “Super-Mutanten”, die “alles im Programm durcheinander bringen, aber vom Test nicht gefunden werden und so automatisch die größten Schwachstellen beim Testen aufdecken.”