2025-11-21T20:19:23.757806

The Prompt Alchemist: Automated LLM-Tailored Prompt Optimization for Test Case Generation

Gao, Wang, Gao et al.
Test cases are essential for validating the reliability and quality of software applications. Recent studies have demonstrated the capability of Large Language Models (LLMs) to generate useful test cases for given source code. However, the existing work primarily relies on human-written plain prompts, which often leads to suboptimal results since the performance of LLMs can be highly influenced by the prompts. Moreover, these approaches use the same prompt for all LLMs, overlooking the fact that different LLMs might be best suited to different prompts. Given the wide variety of possible prompt formulations, automatically discovering the optimal prompt for each LLM presents a significant challenge. Although there are methods on automated prompt optimization in the natural language processing field, they are hard to produce effective prompts for the test case generation task. First, the methods iteratively optimize prompts by simply combining and mutating existing ones without proper guidance, resulting in prompts that lack diversity and tend to repeat the same errors in the generated test cases. Second, the prompts are generally lack of domain contextual knowledge, limiting LLMs' performance in the task.
academic

The Prompt Alchemist: Automatisierte LLM-angepasste Prompt-Optimierung für die Testfall-Generierung

Grundinformationen

  • Papier-ID: 2501.01329
  • Titel: The Prompt Alchemist: Automated LLM-Tailored Prompt Optimization for Test Case Generation
  • Autoren: Shuzheng Gao, Chaozheng Wang, Cuiyun Gao, Xiaoqian Jiao, Chun Yong Chong, Shan Gao, Michael R. Lyu
  • Klassifizierung: cs.SE cs.AI cs.CL
  • Veröffentlichungszeit/Konferenz: JOURNAL OF LATEX CLASS FILES, VOL. 18, NO. 9, SEPTEMBER 2020
  • Papierlink: https://arxiv.org/abs/2501.01329

Zusammenfassung

Testfälle sind entscheidend für die Überprüfung der Zuverlässigkeit und Qualität von Softwareanwendungen. Neuere Forschungen zeigen, dass große Sprachmodelle (LLMs) in der Lage sind, nützliche Testfälle für einen gegebenen Quellcode zu generieren. Allerdings verlassen sich bestehende Arbeiten hauptsächlich auf manuell geschriebene einfache Prompts, was oft zu suboptimalen Ergebnissen führt, da die Leistung von LLMs stark von der Qualität des Prompts abhängt. Darüber hinaus verwenden diese Methoden denselben Prompt für alle LLMs und ignorieren die Tatsache, dass verschiedene LLMs möglicherweise von unterschiedlichen Prompts profitieren. Dieses Papier stellt die MAPS-Methode vor, die durch drei Kernmodule – diversitätsgesteuerte Prompt-Generierung, fehlergesteuerte Regelinduktion und Extraktion von Domänenkontextwissen – eine automatisierte Prompt-Optimierung für verschiedene LLMs ermöglicht.

Forschungshintergrund und Motivation

1. Kernproblem

Die Testfall-Generierung ist eine Schlüsselaufgabe in der Softwaretechnik. Während traditionelle Methoden wie Evosuite und Randoop auf Such- und Constraint-Techniken angewiesen sind, weisen LLM-basierte Methoden trotz ihres Potenzials folgende Probleme auf:

  • Abhängigkeit von manuell geschriebenen einfachen Prompts führt zu suboptimaler Leistung
  • Verwendung desselben Prompts für alle LLMs ignoriert Unterschiede zwischen LLMs
  • Mangel an spezialisierter Optimierung für die Testfall-Generierungsaufgabe

2. Bedeutung des Problems

  • Manuelle Testfall-Erstellung ist zeitaufwändig und schwierig
  • Hochwertige Testfälle sind für die Softwarequalitätssicherung entscheidend
  • Die starken Fähigkeiten von LLMs im Code-Verständnis und in der Code-Generierung müssen durch Prompt-Optimierung vollständig genutzt werden

3. Einschränkungen bestehender Methoden

Durch vorläufige Experimente identifizierten die Autoren drei Hauptprobleme bestehender automatisierter Prompt-Optimierungsmethoden (APO) bei der Testfall-Generierung:

  • Geringe Diversität: Generierte Prompts mangelt es an Vielfalt, was zu lokalen Optima führt
  • Wiederholte Fehler: Optimierte Prompts erzeugen immer noch dieselben Fehler wie ursprüngliche Prompts
  • Mangel an Domänenwissen: Fehlende projektspezifische Kontextinformationen wie Vererbungsbeziehungen und Klassenaufrufinformationen

Kernbeiträge

  1. Erste Untersuchung: Nach Aussage der Autoren ist dies die erste Studie zur LLM-angepassten Prompt-Optimierung speziell für die Testfall-Generierungsaufgabe
  2. Innovative Methode: Vorstellung der MAPS-Methode, die diversitätsgesteuerte Prompt-Generierung, fehlergesteuerte Regelinduktion und Extraktion von Domänenkontextwissen integriert
  3. Signifikante Verbesserung: Experimente auf drei populären LLMs zeigen, dass MAPS im Vergleich zur stärksten Baseline durchschnittlich 6,19% Zeilencoverage und 5,03% Branchencoverage verbessert
  4. LLM-Anpassung: Nachweis der Wirksamkeit der Generierung angepasster Prompts für verschiedene LLMs

Methodische Details

Aufgabendefinition

Gegeben ein Black-Box-Modell M, ein kleiner Entwicklungssatz Ddev, ein Testsatz Dtest und eine Bewertungsfunktion s(·), zielt APO darauf ab, basierend auf Ddev einen optimierten Prompt p aus dem natürlichsprachigen Raum zu finden, der die Leistung von M auf dem Testsatz Dtest maximiert.

Modellarchitektur

MAPS besteht aus drei Kernmodulen:

1. Extraktion von Domänenkontextwissen (Domain Contextual Knowledge Extraction)

Dieses Modul stellt dem LLM relevante projektspezifische Kontextinformationen bereit:

Kontextwissen innerhalb von Dateien:

  • Klassensignatur: Typ und Name der Klasse, die die Fokus-Methode enthält
  • Fokus-Methode: Die spezifische Methode, für die Testfälle generiert werden sollen
  • Signaturen von Elementmethoden: Funktionssignaturen anderer Methoden in der Klasse

Kontextwissen über Dateien hinweg:

  • Klassenvererbungsinformationen: Für abstrakte oder private Klassen wird das gesamte Projekt gescannt, um ihre Unterklassen zu lokalisieren
  • Klassenaufrufinformationen: Identifizierung von Parametertypen der Fokus-Methode, Verfolgung von Definitionen und Konstruktoren benutzerdefinierter Typen

2. Diversitätsgesteuerte Prompt-Generierung (Diversity-guided Prompt Generation)

Dieses Modul erstellt vielfältige Prompts durch Erkundung verschiedener Modifikationspfade:

Algorithmus 2: PROMPTIMPROVEMENT
1. Auswahl der K leistungsstärksten Prompts
2. Generierung von N verschiedenen Modifikationsmethoden
3. Generierung neuer Prompts basierend auf jeder Modifikationsmethode
4. Zusammenführung ausgewählter und neu generierter Prompts

3. Fehlergesteuerte Regelinduktion (Failure-driven Rule Induction)

Dieses Modul vermeidet wiederholte Fehler durch Analyse fehlgeschlagener Testfälle und Regelinduktion:

Auswahl von Fehlerinformationen:

  • Erfassung fehlgeschlagener Testfälle und Fehlermeldungen
  • Verwendung des DBSCAN-Clustering-Algorithmus zur Aggregation von Fehlerinformationen
  • Gewichtete Stichprobenentnahme basierend auf Clustergröße und Ähnlichkeit mit historischen Fehlern

Fehlerreflexion:

  • Auswahl repräsentativer Fehlerfälle zur Konstruktion von Reflexions-Prompts
  • Aufforderung an das LLM, detaillierte Erklärungen und Lösungen bereitzustellen
  • Umwandlung von Erklärungen und Lösungen in prägnante Regeln

Regelvalidierung:

  • Validierung der Wirksamkeit jeder neu generierten Regel
  • Beibehaltung der leistungsstärksten Regeln

Technische Innovationspunkte

  1. Diversitätssicherung: Erzwingung der Verwendung verschiedener Modifikationsmethoden zur Sicherung der Prompt-Vielfalt und Vermeidung lokaler Optima
  2. Fehlerlernen: Lernen aus Fehlerfällen, Lenkung des Optimierungsprozesses durch Regelinduktion
  3. Kontextanreicherung: Bereitstellung projektspezifischer Kontextinformationen zur Unterstützung des LLM bei der Generierung genauer Testfälle
  4. Sanfte Integration: Umwandlung von Reflexionsausgaben in prägnante Regeln, Vermeidung von Leistungseinbußen durch lange Prompts

Experimentelle Einrichtung

Datensatz

Verwendung des weit verbreiteten Defects4J-Benchmarks mit fünf Java-Projekten:

  • Apache Commons CLI (29 Fehler)
  • Apache Commons CSV (15 Fehler)
  • Google Gson (17 Fehler)
  • JFreeChart (26 Fehler)
  • Apache Commons Lang (60 Fehler)
  • Gesamt: 147 Fehler, 85 Fokus-Klassen, 5.278 Fokus-Methoden

Bewertungsmetriken

  • Zeilencoverage (%): Prozentsatz der während des Tests ausgeführten Codezeilen
  • Branchencoverage (%): Prozentsatz der während des Tests ausgeführten Branches

Vergleichsmethoden

LLM-Modelle:

  • ChatGPT (gpt-3.5-turbo-0125)
  • Llama-3.1-70B-Instruct
  • Qwen2-72B-Instruct

Baseline-Methoden:

  • Basic: Leistung des besten Seed-Prompts
  • APE: Direkte Aufforderung an das LLM, semantisch erhaltende Prompt-Varianten zu generieren
  • OPRO: Generierung neuer Prompts unter Berücksichtigung von Leistungsinformationen
  • EVOPROMPT (GA/DE): Neueste Prompt-Optimierungsmethoden basierend auf Evolutionsalgorithmen

Implementierungsdetails

  • Anzahl der Seed-Prompts: 5
  • Anzahl der pro Runde generierten Prompts: 2
  • Maximale Iterationen: 5
  • Entwicklungssatz: Zufällige Stichprobe von 10 Fehlern
  • Wiederholung des Experiments 3-mal mit Berichterstattung von Durchschnittsergebnissen

Experimentelle Ergebnisse

Hauptergebnisse

Leistung auf ChatGPT:

  • Zeilencoverage: MAPS erreicht 53,80%, stärkste Baseline EVOPROMPT(GA) 46,63%, Verbesserung um 7,17%
  • Branchencoverage: MAPS erreicht 41,84%, stärkste Baseline 35,88%, Verbesserung um 5,96%

Leistung auf Llama-3.1:

  • Zeilencoverage: MAPS erreicht 50,59%, stärkste Baseline 46,52%, Verbesserung um 4,07%
  • Branchencoverage: MAPS erreicht 39,50%, stärkste Baseline 35,07%, Verbesserung um 4,43%

Leistung auf Qwen2:

  • Zeilencoverage: MAPS erreicht 45,51%, stärkste Baseline 39,41%, Verbesserung um 6,10%
  • Branchencoverage: MAPS erreicht 32,71%, stärkste Baseline 28,92%, Verbesserung um 3,79%

Ablationsstudien

Analyse des Beitrags einzelner Module (mit ChatGPT als Beispiel):

  • Entfernung der Extraktion von Domänenkontextwissen: Zeilencoverage sinkt um 9,64%, Branchencoverage um 8,53%
  • Entfernung der diversitätsgesteuerten Prompt-Generierung: Zeilencoverage sinkt um 8,21%, Branchencoverage um 7,80%
  • Entfernung der fehlergesteuerten Regelinduktion: Zeilencoverage sinkt um 6,94%, Branchencoverage um 4,76%

LLM-Anpassungseffekt

Experimente validieren, dass MAPS angepasste Prompts für verschiedene LLMs generieren kann:

  • Jedes LLM zeigt die beste Leistung auf seinen speziell optimierten Prompts
  • Der endgültige Prompt von ChatGPT übertrifft die Prompts anderer LLMs um 2,45% bzw. 2,66% beim Zeilencoverage
  • Von MAPS optimierte Prompts übertreffen alle manuell gestalteten Prompts

Fallstudien

Fall 1 - Llama-3.1: Durch die zweite induzierte Regel generiert das Modell korrekt Testfälle mit Ausnahmeverarbeitung Fall 2 - ChatGPT: Durch dateiübergreifendes Kontextwissen kann das Modell abstrakte Klassen korrekt initialisieren

Verwandte Arbeiten

Automatisierte Prompt-Optimierung

  • APE: Direkte Aufforderung an das LLM, semantisch erhaltende Prompt-Varianten zu generieren
  • OPRO: Generierung neuer Prompts unter Berücksichtigung von Leistungsinformationen
  • EVOPROMPT: Neueste Methoden basierend auf Evolutionsalgorithmen

Testfall-Generierung

  • Traditionelle Methoden: Randoop (zufälliges Fuzzing), Evosuite (Suchalgorithmen)
  • Deep-Learning-Methoden: AthenaTest (Fine-tuning von BART), A3Test (Assertion-Wissen-Erweiterung)
  • LLM-Methoden: ChatUniTest, ChatTESTER usw.

Schlussfolgerungen und Diskussion

Hauptschlussfolgerungen

  1. MAPS übertrifft bestehende Prompt-Optimierungsmethoden auf allen LLMs erheblich
  2. Verschiedene LLMs benötigen tatsächlich angepasste Prompts
  3. Alle drei Kernmodule tragen wesentlich zur Leistungsverbesserung bei, wobei die Extraktion von Domänenkontextwissen den größten Beitrag leistet

Einschränkungen

  1. LLM-Einschränkungen: Bewertung nur auf drei repräsentativen LLMs durchgeführt
  2. Spracheinschränkungen: Experimente beschränkt auf Java-Projekte, keine Abdeckung anderer Programmiersprachen
  3. Datensatzumfang: Nur Defects4J-Benchmark verwendet

Zukünftige Richtungen

  1. Erweiterung auf mehr LLMs und Programmiersprachen
  2. Integration mit bestehenden LLM-Testgenerierungsmethoden
  3. Erkundung komplexerer projektspezifischer Kontextinformationen

Tiefgreifende Bewertung

Stärken

  1. Klare Problemdefinition: Erste systematische Untersuchung der Prompt-Optimierung für die LLM-Testfall-Generierung
  2. Starke Methodische Innovation: Drei Module sind gut konzipiert und lösen Schlüsselprobleme bestehender Methoden
  3. Umfassende Experimente: Vollständige Bewertung auf mehreren LLMs und Projekten
  4. Hoher praktischer Wert: Methode ist universell anwendbar auf verschiedene LLMs und Projekte

Schwächen

  1. Rechnerische Kosten: Der iterative Optimierungsprozess kann zahlreiche API-Aufrufe erfordern, was kostspielig ist
  2. Regelqualität: Die fehlergesteuerte Regelinduktion hängt von der Reflexionsfähigkeit des LLM ab, die Regelqualität kann instabil sein
  3. Kontextextraktion: Vollständigkeit und Genauigkeit der dateiübergreifenden Kontextextraktion bedürfen weiterer Validierung

Einfluss

  1. Akademischer Beitrag: Eröffnet eine neue Forschungsrichtung in der Prompt-Optimierung für die LLM-Testfall-Generierung
  2. Praktischer Wert: Kann direkt in der praktischen Softwareentwicklung für die Testfall-Generierung angewendet werden
  3. Reproduzierbarkeit: Bereitstellung eines vollständigen Reproduktionspakets erleichtert nachfolgende Forschung

Anwendungsszenarien

  1. Softwareprojekte, die automatisierte Generierung hochwertiger Testfälle benötigen
  2. Teams, die verschiedene LLMs für die Code-Generierung einsetzen
  3. Softwaretechnik-Aufgaben, die LLM-Leistungsoptimierung erfordern

Literaturverzeichnis

Das Papier zitiert 48 relevante Arbeiten, die wichtige Arbeiten in mehreren Bereichen abdecken – Softwaretests, Prompt-Engineering und große Sprachmodelle – und bieten eine solide theoretische Grundlage für die Forschung.


Gesamtbewertung: Dies ist ein hochqualitatives Softwaretechnik-Forschungspapier mit bedeutendem theoretischen und praktischen Wert im Bereich der LLM-Testfall-Generierung. Die Methodengestaltung ist angemessen, die experimentelle Bewertung umfassend und die Ergebnisse überzeugend. Obwohl es einige Einschränkungen gibt, sind die Gesamtbeiträge erheblich und bieten wichtige Impulse für die Entwicklung des Feldes.