Werkzeug zum automatisierten, KI-gestützen Beheben von SonarQube-Issues


Hintergrund: Bisherige Forschung hat sich vor allem auf das automatische Beheben von Bugs konzentriert. Bei SonarQube-Regeln handelt es sich aber nicht nur um Bugs, sondern auch um Code Smells und Verwundbarkeiten.

Ziel der Arbeit: Ziel dieser Masterarbeit ist es, eine Prompt-Vorlage für das automatische Generieren von Code Refactorings zu erstellen, d.h. das automatische Beheben von SonarQube-Issues. Mittels eines zu entwickelnden (einfachen) Toolings soll der Prompt verfeinert und ausgiebig getestet und validiert werden. Fragen hierzu könnten sein: Kompiliert der automatisch refactorte Code? Konnten die SonarQube-Issues eliminiert werden? Werden neue Issues gefunden? Bestehen in Summe mehr oder weniger Issues? Wie viele manuelle Änderungen sind nötig? Auch eine manuelle Bewertung der Ergebnisse (+/-/o) ist denkbar.

Aufgaben:

  • Literaturrecherche zu Prompting-Techniken, Related Work im Bereich KI-Code-Generierung, Hyperparameter-Einstellungen
  • Ausarbeitung eines Prompts
  • Entwicklung des Tools, das
    • aus SonarQube-Issues und relevantem Source Code den Prompt zusammensetzt,
    • eine GenAI-Schnittstelle abfragt (z.B. OpenAI),
    • den Vorschlag zur Behebung des/der Issues darstellt und
    • die Bewertung sowie manuelle Korrektur dieses Vorschlags ermöglicht.
      • Metriken wie eliminierte / neu hinzugekommene Issues, Kompilierbarkeit sind auch automatisiert denkbar (optional)
    • Idealerweise bietet das Tooling auch statistische Daten zu den generierten Refactoring-Vorschlägen.

Erwartete Ergebnisse:

  • Auto-Refactoring-Werkzeug
  • Ausgearbeitete Prompting-Methodik
  • Umfassende quantitative und qualitative Auswertungen der Refactoring-Ergebnisse, nach obigen Kriterien

Betreuung: Reinhold Plösch

Automatisches GPT-basiertes Refactoring von SonarQube-Schwachstellen