Programmierer (Symbolbild)

Programmierer (Symbolbild)

© Maskot / Getty Images

Science

TU Graz: Lösung für großen Zeitfresser beim Programmieren

Debugging ist eine sehr zeitintensive Arbeit. Wenn Software-Anwendungen aus zahlreichen Dateien und mehreren Millionen Codezeilen bestehen, gleicht es einer Suche nach der Nadel im Heuhaufen. Das hat auch die TU Graz erkannt. Demnach würden Studien zeigen, dass zwischen 30 und 90 Prozent der gesamten Entwicklungszeit für die Fehlerbehebung aufgewendet wird. 

➤ Mehr lesen: Nvidia-Chef sagt, warum man nicht mehr programmieren lernen sollte

Birgit Hofer und Thomas Hirsch vom Institut für Softwaretechnologie der TU Graz haben auf Basis bestehender Natural-Language-Processing-Methoden und vorhandener Metriken nun eine Lösung erarbeitet, die das Finden der fehlerhaften Codestellen und damit das Debugging stark beschleunigen kann. Davon berichtet die Uni in einer Presseaussendung. 

Lokalisierung meist langwierig

Als ersten Schritt habe man demnach Programmiererinnen und Programmierer befragt, was beim Debugging überhaupt der größte Zeitfresser sei. Dabei zeigte sich, dass die Lokalisierung, also die Eingrenzung der Suche auf den richtigen Bereich im Programmcode, extrem arbeitsintensiv sei.

Auf Basis dieser Erkenntnis machten sich die Forschenden daran, für dieses Problem eine Lösung zu finden, die auch auf Anwendungen mit viel Code skalierbar ist. So gebe es zwar gut funktionierende, modellbasierte Ansätze, bei denen ein Programm in eine logische Darstellung (bezeichnet als Modell) umgewandelt wird, doch das funktioniert nur für kleine Programme. Das liege daran, dass mit der Zunahme an Code der Rechenaufwand exponentiell ansteigt. 

➤ Mehr lesen: KI wird 60 Prozent aller Jobs beeinflussen

Der neue Ansatz bildet bestimmte Software-Eigenschaften in Zahlen ab – beispielsweise die Lesbarkeit oder Komplexität von Code – und ist auch für große Codemengen anwendbar, da der Rechenaufwand nur linear zunimmt.

Bug Report als Basis

Um den Fehler zu finden, müssen Testerinnen und Tester einen Bug Report ausfüllen, in dem sie den Fehler beschreiben und Angaben zur Softwareversion, ihrem Betriebssystem, ihren Arbeitsschritten vor dem Fehler und andere relevante Informationen eintragen. Auf Basis dessen analysiert die Kombination aus Natural Language Processing und Metriken den gesamten Code. 

➤ Mehr lesen: Forscher der TU Graz finden Sicherheitsleck in Browserschnittstelle

Anschließend präsentiert die Anwendung den Programmiererinnen und Programmierer eine Liste mit 5 bis 10 Dateien, die Code-Abschnitte erhalten, die für den Fehler möglicherweise verantwortlich sind. Gereiht sind sie nach Wahrscheinlichkeit. Zusätzlich gibt es noch Information, um welche Art von Fehler es sich am ehesten handelt. Anhand dieser Daten könne er schneller aufgespürt und behoben werden.

Das Debugging-System AmadeusBugProject steht über GitHub frei zur Verfügung. Auf der Projekt-Website sind die mit dieser Forschung verbundenen Papers und Repositorys zu finden.

Hat dir der Artikel gefallen? Jetzt teilen!

Kommentare