Per Vererbungslehre automatisch Softwarefehler finden

Redakteur: Peter Koller

Anbieter zum Thema

Informatik-Professor Andreas Zeller von der Universität des Saarlandes hat eine Software entwickelt, die eine Vielzahl unterschiedlicher Programme automatisch testen kann.
Informatik-Professor Andreas Zeller von der Universität des Saarlandes hat eine Software entwickelt, die eine Vielzahl unterschiedlicher Programme automatisch testen kann.
( Oliver Dietze)

Beim Programmieren bleiben Fehler nicht aus. Automatisches Testen kann Abhilfe schaffen, setzt aber voraus, dass sich kluge Köpfe Testfälle ausdenken, die möglichst viele Fehler abfangen können. Saarbrücker Informatiker haben einen Ansatz gefunden, der dies automatisiert – basierend auf der Vererbunglehre.

Beim Programmieren bleiben Fehler nicht aus. Automatisches Testen kann Abhilfe schaffen, setzt aber voraus, dass sich kluge Köpfe Testfälle ausdenken, die möglichst viele Fehler abfangen können. Saarbrücker Informatiker haben einen Ansatz gefunden, der dies automatisiert – basierend auf der Vererbunglehre.

Ihre Software „XMLMATE“ nutzt genetische Algorithmen, um systematisch Testfälle für Computerprogramme zu erzeugen. Während der Computermesse Cebit in Hannover demonstrierten die Forscher XMLMATE erstmals öffentlich.

Laut einer aktuellen Studie der englischen Elite-Universität Cambridge verbringen Software-Entwickler gut die Hälfte ihrer Programmier-Zeit damit, Fehler zu finden und zu reparieren. Hochgerechnet auf die globale Software-Industrie, so die Studie, verursacht das jährlich Kosten von 312 Milliarden US-Dollar. „Natürlich ist automatisches Testen preiswerter“, erklärt Andreas Zeller, Professor für Softwaretechnik an der Universität des Saarlandes. Schließlich könne man ein Programm tausend Mal durchlaufen lassen, ohne dabei großartig Kosten zu verursachen. „Aber woher bekommen sie die dafür notwendigen Testfälle?“, fragt Zeller. „Automatisch generieren ist hart, selber ausdenken noch härter.“

Zusammen mit den Informatikern Nikolas Havrikov und Matthias Höschele hat er nun das Softwaresystem „XMLMATE“ entwickelt. Es generiert automatisch Testfälle und überprüft damit den jeweiligen Programmcode. Der Clou: Die einzige Anforderung an das zu testende Programm besteht darin, dass seine Eingaben in irgendeiner Form strukturiert sind. Denn aus diesen generieren die Forscher eine Anfangsmenge von Testfällen.

Mit diesen füttern sie einen sogenannten genetischen Algorithmus, auf dem das Testen basiert. Dieser funktioniert ähnlich wie die biologische Evolution, die Eingaben sind die Chromosome.

Allerdings lässt er nur die Eingaben überleben, die möglichst viel noch nicht ausgeführten Programmcode abdecken. „Es ist gar nicht so leicht, einen echten Fehler zu finden und je mehr Code wir dabei abdecken, desto sicherer können wir sein, dass es keine weiteren Fehler gibt“, erklärt Nikolas Havrikov diese Strategie. Havrikov hat XMLMATE implementiert. „Und da wir die real existierende Eingabeschnittstelle nutzen, stellen wir auch sicher, dass es keine Fehlalarme gibt: Jeder gefundene Fehler kann so auch während des Programmeinsatzes auftreten“, ergänzt Zeller.

Viele schwere Programmierfehler bei etablierter Software

Die Forscher haben ihre Software auf Code losgelassen, der von frei verfügbaren Programmen stammt, die Anwender bereits im Alltag nutzen. Sie fanden damit mehr als doppelt so viele schwere Programmierfehler wie gleichartige Testverfahren, die lediglich mit wahllos generierten Eingaben arbeiten. Die Saarbrücker Informatiker haben XMLMATE in der Programmiersprache Java entwickelt. Die Eingaben für ihre Software sind gemäß der Beschreibungssprache XML definiert.

(ID:42561506)