← Neueste Arbeiten
💻 computer science

CodeCureAgent: Automatic Classification and Repair of Static Analysis Warnings

Das Paper stellt CodeCureAgent vor, einen auf LLM-Agents basierenden Ansatz, der statische Analyse-Warnungen automatisch klassifiziert und durch iterative Code-Änderungen sowie strenge Validierungsschritte behebt, wodurch er im Vergleich zu bestehenden Methoden signifikant höhere Erfolgsraten bei der Behebung von Fehlern in Java-Projekten erzielt.

Ursprüngliche Autoren: Pascal Joos, Islem Bouzenia, Michael Pradel

Veröffentlicht 2026-04-02
📖 4 Min. Lesezeit☕ Kaffeepausen-Lektüre

Ursprüngliche Autoren: Pascal Joos, Islem Bouzenia, Michael Pradel

Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen

Stell dir vor, du hast einen riesigen, alten Schatzkeller (dein Computerprogramm), der voller wertvoller Gegenstände ist. Aber der Keller ist auch voller Staub, alter Zeitungen und vielleicht sogar ein paar Fallen, die du nicht bemerkt hast.

Ein statischer Analyse-Tool (wie SonarQube) ist wie ein sehr pedantischer, aber manchmal etwas verwirrter Hausmeister. Er läuft durch den Keller, hält eine Liste von Regeln (z. B. "Keine losen Kabel", "Alles muss beschriftet sein") und schreit laut: "Achtung! Hier ist ein Problem!"

Das Problem ist: Der Hausmeister schreit oft auch dann, wenn gar kein Problem vorliegt (ein "falscher Alarm"), oder er schlägt Lösungen vor, die den Keller eigentlich noch mehr durcheinanderbringen. Entwickler müssen sich dann mühsam jeden einzelnen Schrei anhören, überlegen, ob es ein echtes Problem ist, und dann selbst die Lösung suchen. Das ist langweilig, nervig und führt dazu, dass viele Warnungen einfach ignoriert werden.

Hier kommt CodeCureAgent ins Spiel.

Was ist CodeCureAgent?

CodeCureAgent ist wie ein super-intelligenter, selbstständiger Handwerker-Roboter, der von einer künstlichen Intelligenz (einem "Großen Sprachmodell" oder LLM) angetrieben wird. Aber er ist nicht wie ein alter Roboter, der nur fest programmierte Befehle ausführt. Er ist wie ein detektivischer Agent.

Stell dir den Prozess so vor:

1. Der Detektiv-Check (Klassifizierung)

Wenn der Hausmeister schreit "Hier ist ein lose Kabel!", schaut CodeCureAgent nicht sofort auf die Uhr und fängt an zu löten.

  • Der alte Weg: "Oh, Warnung! Ich löte sofort etwas zusammen." (Das kann katastrophal sein, wenn es gar kein Kabel war, sondern nur ein Schatten).
  • Der CodeCureAgent-Weg: Der Agent macht erst eine Recherche. Er fragt: "Ist das wirklich ein Kabel? Oder ist es nur ein Schatten, der wie ein Kabel aussieht?"
    • Wenn es ein echtes Problem ist (True Positive), plant er eine Reparatur.
    • Wenn es ein falscher Alarm ist (False Positive), sagt er: "Alles klar, das ist absichtlich so gemacht. Ich ignoriere das." (Er unterdrückt die Warnung, statt etwas kaputtzumachen).

2. Die Reparatur (Fixing oder Unterdrückung)

Sobald er weiß, was zu tun ist, geht er an die Arbeit.

  • Bei echten Problemen: Er repariert nicht nur die eine Stelle, an der der Hausmeister schrie. Er schaut sich den ganzen Keller an. Vielleicht muss er ein Kabel in einem anderen Raum neu verlegen, damit es passt. Er kann also mehrere Räume (Dateien) gleichzeitig bearbeiten, was frühere Roboter nicht konnten.
  • Bei falschen Alarmen: Er klebt einfach ein kleines Schildchen ("Ignorieren") an die Stelle, damit der Hausmeister nicht mehr schreit, ohne den Keller zu verändern.

3. Der Qualitäts-Check (Validierung)

Bevor der Agent das Werkzeug weglegt, macht er einen strengen Test, den wir "Change Approver" nennen. Er fragt sich:

  1. Brennt der Keller noch? (Wird das Programm noch gebaut?)
  2. Schreit der Hausmeister immer noch? (Ist die Warnung weg?)
  3. Habe ich neue Probleme verursacht? (Laufen alle Tests?)

Wenn einer dieser Tests fehlschlägt, denkt der Agent: "Ups, das war keine gute Idee." Er holt sich neue Informationen, versucht es noch einmal und verbessert seinen Plan. Er gibt nicht auf, bis es perfekt ist.

Warum ist das so besonders?

Bisherige Werkzeuge waren wie Bastler mit einem einzigen Werkzeug:

  • Sie konnten oft nur an einer Stelle arbeiten (eine Datei).
  • Sie dachten immer, jede Warnung sei ein echtes Problem (selbst wenn es einer war).
  • Sie testeten ihre Arbeit nicht richtig.

CodeCureAgent ist wie ein voll ausgestattetes Team aus Architekten, Elektrikern und Sicherheitsinspektoren, die in einem Team arbeiten:

  • Er versteht den Kontext (er weiß, warum das Kabel dort liegt).
  • Er kann komplexe Reparaturen durchführen, die viele Räume betreffen.
  • Er ist sehr vorsichtig und testet alles gründlich.

Das Ergebnis

Die Forscher haben diesen Agenten an 1.000 verschiedenen Warnungen in echten Java-Projekten getestet.

  • Er hat in 96,8 % der Fälle eine Lösung gefunden, die funktioniert.
  • Er hat falsche Alarme erfolgreich erkannt und ignoriert.
  • Er hat echte Fehler repariert, ohne das Programm zu zerstören.
  • Das kostet nur etwa 2,9 Cent pro Warnung und dauert im Durchschnitt 4 Minuten.

Fazit

CodeCureAgent ist wie ein automatischer Hausmeister, der nicht nur putzt, sondern auch denkt. Er unterscheidet zwischen echtem Dreck und nur Schatten, repariert Schäden, ohne das Haus abzureißen, und überprüft am Ende, ob alles sicher ist. Das bedeutet: Entwickler können sich wieder auf das Wesentliche konzentrieren, während der Roboter den mühsamen Teil der Wartung übernimmt, damit der Code sauber, sicher und fehlerfrei bleibt.

Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?

Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.

Digest testen →