Machine Learning für Software Qualität
Kann Machine Learning bei der Bewertung von Software Qualität helfen?
Sowohl in der Software-Neuentwicklung als auch bei bestehenden Systemen spielt die Wartbarkeit als zentraler Bestandteil der Software Qualität eine wichtige Rolle, da sie die zukünftigen Kosten für Wartung und Weiterentwicklung maßgeblich bestimmt. Die Wartbarkeit von Sourcecode wird durch Aspekte wie Modularität, Lesbarkeit und Duplikation beeinflusst.
Einige davon lassen sich durch Code-Metriken, wie z.B. kognitive Komplexität oder Cloning, relativ einfach mit syntaktischer Analyse bestimmen, und werden daher auch von typischen Qualitätssicherungs-Tools ermittelt. Solche Metriken sind in der Praxis durchaus wertvoll, erfassen aber nicht alle Facetten, die Wartbarkeit von Sourcecode ausmachen.
Belastbare Aussagen über die Wartbarkeit großer, oft über Jahrzehnte gewachsener Software-Landschaften, sind daher nicht ohne manuelle Code-Inspektion durch erfahrene Software-Ingenieure möglich. Aus Aufwandsgründen kann in einem solchen „Software HealthCheck“ nur ein kleiner Teil des Sourcecodes gesichtet werden, so dass eine zielgerichtete Auswahl nötig ist.
Im Rahmen einer mehrjährigen Forschungskooperation mit dem Lehrstuhl für Software und Systems Engineering der TU München hat itestra unter anderem inhaltlich und finanziell eine Dissertation unterstützt, die untersuchte, wie gut sich Machine Learning-Ansätze zur automatischen Bewertung von Wartbarkeit einsetzen lassen.
So wurden z.B. Machine Learning-Modelle auf eigens von Software-Ingenieuren erfassten Qualitäts-Bewertungen bekannter Code-Fragmente trainiert, die anschließend mit hoher Präzision auch unbekannten Code klassifizieren konnten. In einer interaktiven Übersicht können solche automatisch berechneten Bewertungen, kombiniert mit weiteren aggregierten Metriken, den Software-Analysten nun einen grafischen Überblick über sehr große Codebasen geben und sie systematisch zu „interessanten“ Codestellen.
Die als Teil dieser Forschung verfassten wissenschaftlichen Arbeiten wurden auf internationalen Konferenzen wie ICSME, EASE, und ESEM publiziert, und unter anderem mit einem Best Paper Award sowie dem Pelkhoven-Preis für herausragende Masterarbeiten ausgezeichnet.
Der enge Austausch mit Wissenschaft und Forschung, den itestra von Beginn an pflegt, bleibt für uns auch in Zukunft wichtig, um innovative Ideen für unsere Arbeit und unsere Kunden nutzbar zu machen und Praxiserfahrungen in die Forschung zurückfließen zu lassen.