<span style="font-family:'times new roman', serif;">Software: Bugs finden mit Konsequenz der Evolution


Â*


<span style="font-family:'times new roman', serif;"><span style="font-size:12pt;">Software soll mit einem neuen Verfahren wesentlich gründlicher auf Fehler untersucht werden können. Die Entwickler haben dabei Anleihen an dem bekanntermaßen recht erfolgreichen Mechanismus der Evolution genommen.


In der professionellen Software-Entwicklung machen automatisierte Testverfahren einen wichtigen Bestandteil aus. Allerdings müssen sich hier kluge Köpfe bisher immer noch eine möglichst breite Palette an Fällen ausdenken, mit denen ein Programm gefüttert werden kann, um eventuell vorhandene Fehler zu finden. Immerhin gilt es im Grunde, möglichst jedes Szenario vorauszuahnen, dem ein beliebiger Anwender die Software aussetzen kann.


Informatiker aus Saarbrücken haben nun einen Ansatz gefunden, der dies automatisiert. Ihre Software "XMLMATE" nutzt genetische Algorithmen, um systematisch Testfälle zu erzeugen. Dies soll den Entwicklungsprozess klar entlasten. Denn laut einer aktuellen Studie der 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 Dollar.


<span style="font-family:'times new roman', serif;"><span style="font-size:12pt;">"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. Doch auch hier muss erst einmal ausreichend Vorarbeit geleistet worden sein. Zwar wurden auch bisher schon Testfälle automatisiert erzeugt, doch dieses Verfahren hat seine Mängel.


Auch XMLMATE generiert automatisch Testfälle und überprüft damit den jeweiligen Code. 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. Hier werden die Szenarien nach und nach ausgesiebt - ähnlich wie bei der biologischen Evolution. So "überleben" nur die Eingaben, die möglichst viel noch nicht ausgeführten Programmcode abdecken.


Die Informatiker haben ihre Software bereits auf Code losgelassen, der von frei verfügbaren Programmen stammt, die Anwender schon im Alltag nutzen. Sie fanden damit mehr als doppelt so viele schwere Programmierfehler wie gleichartige Testverfahren, die lediglich mit wahllos generierten Eingaben arbeiten.


Â*


Quelle: winfuture.de


Â*