← Neueste Arbeiten
💻 computer science

Heterogeneous Prompting and Execution Feedback for SWE Issue Test Generation and Selection

Dieses Paper stellt e-Otter++ vor, einen neuartigen Testgenerator, der die Herausforderung fehlenden oder fehlerhaften Codes bei Software-Engineering-Problemen durch die Nutzung von heterogenem Prompting und Ausführungs-Feedback überwindet, um automatisch Reproduktionstests zu erstellen, wobei eine State-of-the-Art-Fail-to-Pass-Rate von 63 % auf dem TDD-Bench Verified Benchmark erreicht wird.

Ursprüngliche Autoren: Toufique Ahmed, Jatin Ganhotra, Avraham Shinnar, Martin Hirzel

Veröffentlicht 2026-01-26
📖 5 Min. Lesezeit🧠 Tiefgang

Ursprüngliche Autoren: Toufique Ahmed, Jatin Ganhotra, Avraham Shinnar, Martin Hirzel

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

Stellen Sie sich vor, Sie sind ein Detektiv, der versucht, ein Rätsel in einer riesigen, unordentlichen Bibliothek (dem Softwarecode) zu lösen. Ein Besucher (der Entwickler) kommt zu Ihnen und sagt: „Mit diesem Buch stimmt etwas nicht, aber ich kann nicht genau erklären, was, und ich habe kein spezifisches Beispiel für den Fehler.“

In der Welt der Software wird dies als SWE-Issue bezeichnet. Normals braucht man, um einen Bug zu beheben, einen „Reproduktionstest“ – ein spezielles Skript, das besagt: „Wenn man X tut, stürzt die Bibliothek ab.“ Dies beweist, dass der Bug existiert. Aber oft existieren diese Skripte noch nicht.

Dieses Paper stellt ein neues Detektiv-Werkzeug namens e-Otter++ vor. Seine Aufgabe ist es, automatisch dieses „Crash-Skript“ (den Test) zu schreiben, indem es nur die unordentliche Beschreibung des Problems liest, noch bevor der eigentliche Fix geschrieben wurde.

Hier ist die Funktionsweise von e-Otter++, erklärt durch einfache Analogien:

1. Das Problem: Der „blinde“ Detektiv

Normalerweise, wenn man eine kluge KI (ein Large Language Model) bittet, einen Test zu schreiben, versucht sie zu raten. Wenn man sie einmal fragt, könnte sie falsch liegen. Wenn man sie 10 Mal mit exakt denselben Anweisungen fragt, liefert sie einem vielleicht einfach 10 leicht unterschiedliche Versionen derselben falschen Vermutung. Es ist, als würde man einen Freund bitten, einen Film zu beschreiben, den er nur einmal gesehen hat; wenn man ihn 10 Mal fragt, wiederholt er vielleicht nur immer wieder denselben Fehler.

2. Der erste Trick: „Heterogeneous Prompting“ (Die Kostümparty)

Um bessere Vermutungen zu erhalten, stellt e-Otter++ der KI nicht einfach 10 Mal dieselbe Frage. Stattdessen ändert es die Art und Weise, wie die Frage gestellt wird, als würde es die KI in verschiedene Kostüme stecken oder ihr unterschiedliche Perspektiven geben.

  • Die „Masken“: Stellen Sie sich vor, die KI betrachtet ein Puzzle. Manchmal deckt e-Otter++ Teile des Puzzles (den Code-Kontext) ab, sodass die KI basierend auf weniger Informationen raten muss. Ein andermal zeigt es nur spezifische Teile. Dies zwingt die KI, das Problem aus einem anderen Blickwinkel zu betrachten.
  • Die „Morphs“: Stellen Sie sich vor, der Bugbericht ist in verwirrendem Jargon geschrieben. e-Otter++ bittet die KI, den Bericht in verschiedenen Stilen umzuschreiben:
    • Der „Standardisierer“: Verwandelt eine unordentliche Notiz in einen formellen, strukturierten Bericht.
    • Der „Vereinfacher“: Entfernt verwirrenden technischen Jargon, um es leicht verständlich zu machen.
    • Der „Dropper“ (Entferner): Entfernt spezifische Code-Schnipsel, die irreführend sein könnten (wie der Anweisung an die KI, ein Tool zu verwenden, das die Bibliothek eigentlich gar nicht besitzt).
    • Der „Pre-Thinker“ (Vordenker): Bittet die KI, zuerst eine Lösung zu erraten, und dann diese Vermutung zu nutzen, um den Test zu schreiben.

Durch das Mischen dieser „Masken“ und „Morphs“ generiert e-Otter++ einen riesigen, vielfältigen Pool an potenziellen Tests. Es ist, als würde man 10 verschiedene Personen bitten, einen Tatort zu beschreiben, aber jeder gibt ihnen dabei unterschiedliche Hinweise und eine andere Art zu sprechen. Dies erhöht die Chance, dass mindestens einer von ihnen richtig liegt.

3. Der zweite Trick: „Execution Feedback“ (Der Testlauf)

Sobald die KI einen Test generiert hat, vertraut e-Otter++ ihm nicht einfach blind. Es führt den Test auf dem alten Code (der fehlerhaften Version) aus.

  • Das Ziel: Der Test muss fehlschlagen. Aber er muss aus dem richtigen Grund fehlschlagen.
  • Das Problem: Manchmal schlägt der Test aufgrund eines banalen Fehlers fehl (wie einem Tippfehler), nicht wegen des eigentlichen Bugs.
  • Die Lösung: e-Otter++ besitzt einen „Kritiker“ (eine andere KI), der den Fehler analysiert. Wenn der Test aus dem falschen Grund fehlgeschlagen ist, sagt der Kritiker: „Nein, das ist nicht der Bug. Hier ist die spezifische Zeile, die falsch ist, und hier ist zusätzlicher Code, den du dir ansehen musst.“ Dann schreibt das System den Test mit diesen neuen Informationen neu. Es wiederholt diese Schleife so lange, bis der Test exakt so fehlschlägt, wie es die Bugbeschreibung vorgibt.

4. Der dritte Trick: Der „Surrogate“ Patch (Der Dummy-Fix)

Hier ist der schwierigste Teil: Um zu wissen, ob ein Test gut ist, muss er am neuen Code (dem Fix) bestehen. Aber der Fix existiert noch gar nicht! Wie kann man also den besten Test auswählen?

e-Otter++ nutzt einen cleveren Umweg:

  1. Es bittet ein anderes KI-System (genannt Agentless), eine Reihe von vorläufigen Fixes (Surrogate Patches) zu generieren. Diese sind nicht perfekt, aber sie kommen dem Ziel nahe.
  2. Es führt alle Kandidaten-Tests gegen diese vorläufigen Fixes aus.
  3. Wenn ein Test bei dem vorläufigen Fix besteht, ist es wahrscheinlich ein guter Test.
  4. Schließlich wählt es den einen besten Test basierend darauf aus, welcher die wichtigsten Teile des Codes am besten abdeckt.

Die Ergebnisse: Ein großer Sprung nach vorn

Das Paper hat dieses System auf zwei großen Benchmarks getestet (TDD-Bench und SWT-bench).

  • Bisheriger Bestwert: Die führenden Systeme konnten einen funktionierenden Test etwa 37 % bis 38 % der Zeit generieren.
  • e-Otter++: Durch den Einsatz dieser neuen Tricks (die Art der Fragestellung ändern und vorläufige Fixes zur Filterung der Antworten nutzen) steigerte e-Otter++ die Erfolgsquote auf 63 % bei einem Benchmark und auf 52,5 % beim anderen.

Warum das wichtig ist

Die Autoren sagen, dass dies in zwei Hauptaspekien hilft:

  1. Für Menschen: Es automatisiert den langweiligen Teil der „Test-Driven Development“ (das Schreiben von Tests vor der Behebung von Bugs), was es Entwicklern erleichtert, Bugs zu bestätigen und zu beheben.
  2. Für KI-Agenten: Viele KI-Coding-Agenten verlassen sich auf diese Tests, um zu wissen, ob sie einen Bug behoben haben. Indem e-Otter++ bessere Tests bereitstellt, hilft es auch anderen KI-Agenten, ihre Aufgaben besser zu erfüllen.

Kurz gesagt: e-Otter++ ist eine intelligentere, kreativere und gründlichere Methode, um eine KI anzuweisen, den „Beweis“ zu schreiben, dass ein Software-Bug existiert und behoben wurde, ohne dass ein Mensch diesen Beweis zuerst schreiben muss.

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 →