idw – Informationsdienst Wissenschaft

Nachrichten, Termine, Experten

Grafik: idw-Logo
Science Video Project
idw-Abo

idw-News App:

AppStore

Google Play Store



Instance:
Share on: 
07/31/2024 10:05

Forschende beschleunigen Fehlersuche bei Software-Entwicklung

Falko Schoklitsch Kommunikation und Marketing
Technische Universität Graz

    Fehler in Programmcodes zu finden und zu beheben, verschlingt nach wie vor viel Entwickler*innen-Zeit. Ein Team der TU Graz hat nun eine Lösung erarbeitet, die den größten Zeitfressern zu Leibe rückt.

    Moderne Software-Anwendungen bestehen meist aus zahlreichen Dateien und mehreren Millionen Codezeilen. Aufgrund dieser Menge gestaltet sich das Finden und Beheben von Fehlern, das sogenannte Debugging, als schwierig. In vielen Softwarefirmen suchen Entwickler*innen derzeit noch manuell nach Fehlern, was einen großen Teil ihrer Arbeitszeit beansprucht – Studien geben hier zwischen 30 und 90 Prozent als Anteil an der gesamten Entwicklungszeit an. Birgit Hofer und Thomas Hirsch vom Institut für Softwaretechnologie der TU Graz haben auf Basis bestehender Natural-Language-Processing-Methoden und vorhandener Metriken eine Lösung erarbeitet, die das Finden der fehlerhaften Codestellen und damit das Debugging stark beschleunigen kann.

    Fehlersuche kostet am meisten Zeit

    „Als ersten Schritt haben wir bei bei Befragungen unter Entwickler*innen herausgearbeitet, was der größte Zeitfresser beim Debugging ist. Dabei hat sich gezeigt, dass die eigentliche Fehlerbehebung gar nicht das große Problem ist, sondern die Programmierer*innen hauptsächlich bei der Lokalisierung feststecken, also der Eingrenzung der Suche auf den richtigen Bereich im Programmcode“, erklärt Birgit Hofer.

    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 gibt es zwar gut funktionierende, modellbasierte Ansätze, bei denen ein Programm in eine logische Darstellung (bezeichnet als Modell) umgewandelt wird, doch dies funktioniert nur für kleine Programme. Das liegt daran, dass mit der Zunahme an Code der Rechenaufwand exponentiell ansteigt. Der von Birgit Hofer und Thomas Hirsch aufgegriffene 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.

    Abgleich von Fehlerbeschreibung und Code

    Ausgangspunkt bei der Fehlersuche ist der Bug Report, für den Tester*innen oder Anwender*innen ein Formular 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 dieses Bug Reports analysiert die Kombination aus Natural Language Processing und Metriken den gesamten Code hinsichtlich Klassen sowie der Namen für Variablen, Dateien, Methoden oder Funktionen und der Aufrufe von Methoden sowie Funktionen. Dabei identifiziert die Anwendung Code-Abschnitte, die am besten der Fehlerbeschreibung entsprechen. Die Entwickler*innen bekommen als Ergebnis eine Liste mit fünf bis zehn Dateien, die nach der Wahrscheinlichkeit gereiht sind, dass sie für den beobachteten Fehler verantwortlich sein könnten. Zusätzlich erhalten die Entwickler*innen noch die Information, um welche Art von Fehler es sich am ehesten handelt. Anhand dieser Daten kann der Fehler schneller aufgespürt und behoben werden.

    „Die Arbeitszeit von Software-Entwickler*innen ist teuer, dennoch verbringen sie oft mehr dieser teuren Zeit damit, Fehler zu suchen und zu beheben, als neue Features zu entwickeln“, sagt Birgit Hofer. „Da es bereits einige Ansätze gibt, um diesen Umstand auszumerzen, haben wir untersucht, wie wir diese kombinieren und verbessern können, damit es eine Basis für die wirtschaftliche Anwendung gibt. Die Grundlagen haben wir jetzt geschaffen und das System ist funktionstauglich. Um es in einem Unternehmen zu integrieren, müsste es aber noch an die jeweiligen Bedürfnisse angepasst werden.“

    Das Debugging-System steht über die Plattform „GitHub“ (https://github.com/AmadeusBugProject) frei zur Verfügung. Auf der Projekt-Website (https://amadeus.ist.tugraz.at/) sind die mit dieser Forschung verbundenen Papers und Repositories zu finden.

    Dieses Forschungsergebnis entstand im FWF-Projekt „Amadeus“ (https://doi.org/10.55776/P32653) und ist im Field of Expertise „Information, Communication & Computing“ verankert, einem von fünf strategischen Schwerpunktfeldern der TU Graz.


    Contact for scientific information:

    Birgit HOFER
    Dipl.-Ing. Dr.techn.
    TU Graz | Institut für Softwaretechnologie
    Tel.: +43 316 873 5746
    bhofer@tugraz.at


    Original publication:

    Automated Debugging in Use https://doi.org/10.55776/P32653


    Images

    Debugging ist derzeit noch ein großer Zeitfresser.
    Debugging ist derzeit noch ein großer Zeitfresser.
    Helmut Lunghammer
    Lunghammer - TU Graz


    Criteria of this press release:
    Business and commerce, Journalists
    Information technology
    transregional, national
    Research results, Transfer of Science or Research
    German


     

    Debugging ist derzeit noch ein großer Zeitfresser.


    For download

    x

    Help

    Search / advanced search of the idw archives
    Combination of search terms

    You can combine search terms with and, or and/or not, e.g. Philo not logy.

    Brackets

    You can use brackets to separate combinations from each other, e.g. (Philo not logy) or (Psycho and logy).

    Phrases

    Coherent groups of words will be located as complete phrases if you put them into quotation marks, e.g. “Federal Republic of Germany”.

    Selection criteria

    You can also use the advanced search without entering search terms. It will then follow the criteria you have selected (e.g. country or subject area).

    If you have not selected any criteria in a given category, the entire category will be searched (e.g. all subject areas or all countries).