Von der Natur abgeschaut: Per Vererbungslehre automatisch Softwarefehler finden

Bild der Pressemitteilung


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.

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.

„Das Beste ist jedoch, dass wir völlig unabhängig vom Anwendungsbereich sind. Wir können mit unserem Programm nicht nur Computernetzwerke, das Verarbeiten von Dateien, Websites oder Betriebssysteme testen, selbst die Software von Sensoren in Autos könnte damit untersucht werden“, so Zeller.

Die Saarbrücker Informatiker haben XMLMATE in der Programmiersprache Java entwickelt. Die Eingaben für ihre Software sind gemäß der Beschreibungssprache XML definiert, daher ist die Existenz eines sogenannten XML Schemas hilfreich. Da XML standardisiert ist und somit als eine Art Weltsprache zwischen Eingabeformaten gilt, sind bereits die meisten Programmeingaben XMLMATE-tauglich oder können schnell mit entsprechenden Werkzeugen dorthin überführt werden.

 

Weitere Fragen beantworten

Matthias Höschele
+49 681 302-70987
E-Mail

Prof. Andreas Zeller
+49 681 302-70971
E-Mail

Lehrstuhl für Softwaretechnik
Universität des Saarlandes

 

Weitere Informationen