2025-11-12T23:04:10.380766

LLMs are All You Need? Improving Fuzz Testing for MOJO with Large Language Models

Huang, Zhao, Chen
The rapid development of large language models (LLMs) has revolutionized software testing, particularly fuzz testing, by automating the generation of diverse and effective test inputs. This advancement holds great promise for improving software reliability. Meanwhile, the introduction of MOJO, a high-performance AI programming language blending Python's usability with the efficiency of C and C++, presents new opportunities to enhance AI model scalability and programmability. However, as a new language, MOJO lacks comprehensive testing frameworks and a sufficient corpus for LLM-based testing, which exacerbates model hallucination. In this case, LLMs will generate syntactically valid but semantically incorrect code, significantly reducing the effectiveness of fuzz testing. To address this challenge, we propose MOJOFuzzer, the first adaptive LLM-based fuzzing framework designed for zero-shot learning environments of emerging programming languages. MOJOFuzzer integrates a mutil-phase framework that systematically eliminates low-quality generated inputs before execution, significantly improving test case validity. Furthermore, MOJOFuzzer dynamically adapts LLM prompts based on runtime feedback for test case mutation, enabling an iterative learning process that continuously enhances fuzzing efficiency and bug detection performance. Our experimental results demonstrate that MOJOFuzzer significantly enhances test validity, API coverage, and bug detection performance, outperforming traditional fuzz testing and state-of-the-art LLM-based fuzzing approaches. Using MOJOFuzzer, we have conducted a first large-scale fuzz testing evaluation of MOJO, uncorvering 13 previous unknown bugs. This study not only advances the field of LLM-driven software testing but also establishes a foundational methodology for leveraging LLMs in the testing of emerging programming languages.
academic

LLMs sind alles, was Sie brauchen? Verbesserung des Fuzz-Testings für MOJO mit großen Sprachmodellen

Grundinformationen

  • Papier-ID: 2510.10179
  • Titel: LLMs sind alles, was Sie brauchen? Verbesserung des Fuzz-Testings für MOJO mit großen Sprachmodellen
  • Autoren: Linghan Huang, Peizhou Zhao, Huaming Chen (University of Sydney)
  • Klassifizierung: cs.SE (Softwaretechnik), cs.AI (Künstliche Intelligenz)
  • Veröffentlichungsdatum: 11. Oktober 2025 (arXiv-Preprint)
  • Papier-Link: https://arxiv.org/abs/2510.10179

Zusammenfassung

Die schnelle Entwicklung großer Sprachmodelle (LLMs) hat das Softwaretesten, insbesondere das Fuzz-Testing, durch die automatische Generierung vielfältiger und effektiver Testeingaben revolutioniert. Gleichzeitig bietet die Einführung von MOJO, einer hochperformanten KI-Programmiersprache, die die Benutzerfreundlichkeit von Python mit der Effizienz von C/C++ verbindet, neue Möglichkeiten zur Verbesserung der Skalierbarkeit und Programmierbarkeit von KI-Modellen. Als neue Sprache mangelt es MOJO jedoch an umfassenden Test-Frameworks und ausreichenden LLM-Trainingsdaten, was das Problem der Modellhalluziationen verschärft. Um diese Herausforderung zu bewältigen, wird MOJOFuzzer vorgestellt – das erste adaptive LLM-Fuzz-Testing-Framework, das speziell für Zero-Shot-Learning-Umgebungen neuer Programmiersprachen entwickelt wurde. Die experimentellen Ergebnisse zeigen, dass MOJOFuzzer traditionelle Fuzz-Testing- und modernste LLM-basierte Fuzz-Testing-Methoden in Bezug auf Test-Effektivität, API-Abdeckung und Fehlererkennungsleistung erheblich übertrifft und erfolgreich 13 unbekannte Fehler in MOJO entdeckt hat.

Forschungshintergrund und Motivation

Kernproblem

Das Kernproblem dieser Forschung ist die Herausforderung des Fuzz-Testings für neue Programmiersprachen, insbesondere wie effektives Testen in Zero-Shot-Learning-Umgebungen ohne ausreichende Trainingsdaten durchgeführt werden kann.

Bedeutung des Problems

  1. KI-Entwicklungsanforderungen: Mit der weit verbreiteten Anwendung von KI in kritischen Bereichen wie autonomes Fahren, medizinische Diagnostik und Finanzdienstleistungen werden effiziente Programmiersprachen benötigt
  2. MOJO-Sprachenpotenzial: MOJO kann eine Leistungssteigerung um das 68.000-fache gegenüber Python erreichen und ist ein wichtiges Werkzeug für die KI-Entwicklung
  3. Fehlende Test-Frameworks: Als neue Sprache mangelt es MOJO an ausgereiften Test-Frameworks, mit unentdeckten Softwarefehlern und Sicherheitslücken
  4. Praktische Relevanz: Die Notwendigkeit, neue Programmiersprachen schnell und zuverlässig zu testen

Einschränkungen bestehender Methoden

  1. Traditionelle LLM-Fuzz-Tester sind auf große Mengen domänenspezifischer Trainingsdaten angewiesen, was ihre Anwendung auf neue Sprachen einschränkt
  2. Modellhalluziationsproblem: In Zero-Shot-Umgebungen generieren LLMs leicht syntaktisch korrekte, aber semantisch fehlerhafte Code
  3. Mangelnde Zielgerichtetheit: Bestehende Werkzeuge sind nicht speziell für die Besonderheiten der MOJO-Sprache optimiert

Forschungsmotivation

Entwicklung des ersten LLM-Fuzz-Testing-Frameworks speziell für die MOJO-Sprache, das durch innovative Prompt-Engineering- und Fine-Tuning-Techniken effektive Fehlererkennung in Zero-Shot-Learning-Umgebungen ermöglicht.

Kernbeiträge

  1. Erstes Zero-Shot-LLM-Fuzz-Testing-Framework: MOJOFuzzer ist das erste LLM-gesteuerte Fuzz-Testing-Framework, das speziell für Zero-Shot-Learning-Umgebungen entwickelt wurde und das LLM-Halluziationsproblem effektiv lindert
  2. Mehrstufiger Qualitätskontrollmechanismus: Integriert systematische Filtermechanismen für minderwertige Eingaben und erhöht die Effektivität von Testfällen erheblich
  3. Adaptive Mutationsstrategie: Passt LLM-Prompts basierend auf Laufzeit-Feedback dynamisch an und ermöglicht iterative Lernprozesse
  4. Praktische Fehlererkennung: Entdeckt erfolgreich 13 unbekannte Fehler in MOJO, von denen 9 vom MOJO-Team bestätigt und behoben wurden
  5. Erhebliche Leistungsverbesserung: Zeigt signifikante Verbesserungen in Test-Effektivität (98%), API-Abdeckung (77,3%) und Fehlererkennungsfähigkeit gegenüber bestehenden Methoden

Methodische Details

Aufgabendefinition

Eingabe: MOJO-Programmiersprache-Umgebung und begrenzte Syntaxregeln, historische Fehlerberichte Ausgabe: Gültige Testfälle, die Fehler in MOJO auslösen können Einschränkungen: Zero-Shot-Learning-Umgebung ohne umfangreiche MOJO-spezifische Trainingsdaten

Modellarchitektur

Gesamtrahmen

MOJOFuzzer verwendet eine mehrstufige Architektur mit den folgenden Kernkomponenten:

  1. Datenvorbereitung
    • Sammlung von etwa 300 Fehlerberichten und 1.500 Syntaxbeispielen von GitHub und offizieller Dokumentation
    • Datenbereinigung und Standardisierungsverarbeitung
  2. Initialisierungsphase
    • Prompt-Bank: Speichert strukturierte Prompt-Vorlagen
    • Seed-Bank: Verwaltet die Generierung und Speicherung von Test-Seeds
  3. Mutationsstrategien
    • Mutations-Bewertungsmechanismus: Berechnet Scores basierend auf API-Aufrufen und Code-Komplexität
    • Halb-Mutation: Code-Level-Mutation für hochbewertete Seeds
    • Voll-Mutation: Prompt-Level-Mutation für niedrig bewertete Seeds

Wichtige technische Details

Mutations-Bewertungsformel:

S_mutation = N_API + C_complexity

Wobei:

  • N_API: Anzahl der API-Aufrufe
  • C_complexity: Code-Komplexitätsbewertung (basierend auf Zeitkomplexität O(1) bis O(n³) mit unterschiedlichen Scores)

Prompt-Engineering-Strategie: Verwendet Chain-of-Thought (CoT) und rollenbasierte Prompt-Techniken mit 5 Kernkomponenten:

  1. Syntaxanalyse-Anweisungen
  2. Rollenbasiertes Framework
  3. Automatische Datenfilterung
  4. Inhaltsübersicht
  5. Prompt-Seed-Generierung

Fine-Tuning-Strategie

Verwendet LLAMA2 13B-Modell für zweistufiges Fine-Tuning:

  1. Erste Phase: Erlernt Sprachstruktur basierend auf MOJO-Syntaxdatensatz
  2. Zweite Phase: Erlernt Defektmuster basierend auf historischen Fehlerberichten

Technische Innovationen

  1. Zero-Shot-Adaptivität: Erste erfolgreiche Implementierung effektiven LLM-Fuzz-Testings ohne umfangreiche Trainingsdaten
  2. Duales Mutationsmechanismus: Kombiniert Code-Level- und Prompt-Level-Mutation zur Verbesserung der Test-Vielfalt
  3. Adaptives Bewertungssystem: Bewertet Seed-Qualität dynamisch und optimiert Ressourcenallokation
  4. Mehrstufige Qualitätskontrolle: Systematische Filterung minderwertiger Eingaben zur Reduzierung von Halluzinatione

Experimentelle Einrichtung

Datensätze

  • MOJO-Syntaxdaten: Etwa 1.500 Syntaxregeln und Code-Beispiele
  • Historische Fehlerberichte: Etwa 300 Fehlerberichte von GitHub
  • Test-Umgebung: MOJO-Compiler und Laufzeitumgebung

Bewertungsmetriken

  1. Anzahl eindeutiger gültiger Programme: Anteil syntaktisch und semantisch korrekter Testprogramme
  2. Mutations-Effizienz: Verbesserungen in Test-Vielfalt, Effektivität und Fehlererkennungsfähigkeit
  3. API-Abdeckung: Anzahl eindeutiger MOJO-API-Funktionen, die während des Testens aufgerufen werden
  4. Anzahl erkannter Fehler: Anzahl unterschiedlicher entdeckter Softwaremängel

Vergleichsmethoden

  • Traditionelle Methode: MojoCoder
  • LLM-Fuzz-Tester: Fuzz4All, TitanFuzz
  • Allgemeine LLMs: GPT-4o, LLAMA3-8B, LLAMA2-7B

Implementierungsdetails

  • Hardware-Plattform: NVIDIA A6000 Ada
  • Fine-Tuning-Technik: LoRA (Low-Rank Adaptation)
  • Maximale Iterationen: 10 Runden
  • Mutations-Schwellenwert: Score 50 als Grenzwert zwischen Halb-Mutation/Voll-Mutation

Experimentelle Ergebnisse

Hauptergebnisse

API-Abdeckungsvergleich

ModellAPI-Abdeckung
MOJOFuzzer77,3%
Fine-tuned MojoCoder68,2%
Fuzz4All37,8%
TitanFuzz17,2%
GPT-4o25,6%

Gültige Programmgenerierungsrate

ModellGültige Programmrate
MOJOFuzzer98%
Mojo-Coder-it 7B66,4%
GPT-4o~25%
LLaMA3-8B~10%
LLaMA2-7B~10%

Fehlererkennungsfähigkeit

  • Insgesamt entdeckte Fehler: 13 unbekannte Fehler
  • Bestätigte und behobene Fehler: 9 Fehler vom MOJO-Team bestätigt und behoben
  • Fehlertypen: Einschließlich Zufallszahlengenerator-Mängel, Python-Bibliotheks-Integrationsprobleme

Ablationsstudien

Ablationsstudien bewerteten den Beitrag von drei Schlüsselkomponenten:

KomponentenkonfigurationHalluzinatonsrateGültiger Code-RateSemantische Korrektheit
Baseline40%60%50%
Nur Prompt-Engineering (PE)28%75%65%
Nur Fine-Tuning (FT)15%88%78%
Nur Halb-Mutation (HM)35%68%55%
PE + FT8%95%88%
PE + FT + HM (Alle)5%98%90%

Fallstudien

Beispiele entdeckter kritischer Fehler:

  1. Zufallszahlengenerator-Fehler:
    • Die Funktionen random_si64, random_float64, random_ui64 geben immer feste Werte zurück
    • Beeinträchtigt die Korrektheit der Zufallszahlengenerierung
  2. Python-Bibliotheks-Integrationsfehler:
    • Modulabfragefehler beim Aufrufen von NumPy-Funktionen
    • Zeigt grundlegende Logikfehler in der MOJO-Python-Bibliotheks-Integration

Experimentelle Erkenntnisse

  1. Kritische Rolle des Fine-Tunings: Fine-Tuning ist der einzeln wirksamste Faktor zur Reduzierung von Halluzinatione
  2. Synergie der Komponenten: Die beste Leistung wird erreicht, wenn alle drei Komponenten zusammen verwendet werden
  3. Machbarkeit des Zero-Shot-Lernens: Beweist die Möglichkeit effektiven Testings ohne umfangreiche Trainingsdaten

Verwandte Arbeiten

Entwicklung des LLM-Fuzz-Testings

  1. LLM-basierte Fuzz-Tester: TitanFuzz, ChatAFL, Fuzz4All und andere nutzen LLMs zur Verbesserung der Seed-Generierung und Mutation
  2. Fine-Tuned Fuzz-Tester: FuzzGPT und andere verbessern die Leistung durch domänenspezifisches Fine-Tuning
  3. Traditionelle Fuzz-Tester: OSS-Fuzz und andere traditionelle Werkzeuge zeigen Einschränkungen bei neuen Sprachen

Vorteile dieser Arbeit

Im Vergleich zu bestehenden Arbeiten hat MOJOFuzzer folgende Hauptvorteile:

  1. Zero-Shot-Fähigkeit: Benötigt keine umfangreichen vortrainierten Daten
  2. Duales Mutations-Framework: Mutation auf Code- und Prompt-Ebene
  3. Adaptive Mechanismen: Dynamische Strategieanpassung basierend auf Laufzeit-Feedback

Schlussfolgerungen und Diskussion

Hauptschlussfolgerungen

  1. MOJOFuzzer löst erfolgreich die Herausforderungen des Fuzz-Testings für neue Programmiersprachen
  2. Zero-Shot-LLM-Fuzz-Testing ist in praktischen Anwendungen machbar
  3. Die Kombination von Fine-Tuning, Prompt-Engineering und adaptiver Mutation ist erheblich überlegen gegenüber einzelnen Techniken

Einschränkungen

  1. Zeitliche Gültigkeitsbedrohung: Mit der schrittweisen Integration von MOJO-Wissen in fortgeschrittene LLMs könnte der Zero-Shot-Vorteil schwinden
  2. Datenabhängigkeit: Erfordert immer noch minimale Mengen an Syntaxregeln und Fehlerberichten
  3. Rechnerische Ressourcenerfordernis: Fine-Tuning und Inferenz erfordern erhebliche Rechenleistung

Zukünftige Richtungen

  1. Vollständige Automatisierung: Entwicklung vollständig automatisierter Fuzz-Testing-Methoden
  2. Weitere neue Sprachen: Erweiterung der Methode auf andere neue Programmiersprachen
  3. Optimierung von Vortrainingsdatensätzen: Forschung zur besseren Nutzung begrenzter Trainingsdaten

Tiefgreifende Bewertung

Stärken

  1. Starke Innovativität: Erstes Zero-Shot-LLM-Fuzz-Testing-Framework für neue Sprachen
  2. Hoher praktischer Wert: Erfolgreiches Entdecken von 13 realen Fehlern beweist die Effektivität der Methode
  3. Vollständige technische Lösung: Komplette Pipeline von Datenerfassung bis Fehlererkennung
  4. Umfassende Experimente: Umfangreiche Vergleichsexperimente und Ablationsstudien
  5. Klare Darstellung: Genaue Beschreibung technischer Details und vernünftiges Experimentaldesign

Schwächen

  1. Begrenzte Bewertungsreichweite: Hauptsächlich auf MOJO-Sprache fokussiert, Generalisierungsfähigkeit zu überprüfen
  2. Baseline-Vergleiche: Einige Baseline-Methoden könnten nicht optimal sein
  3. Langfristige Gültigkeit: Mit der Reifung des MOJO-Ökosystems könnten Methodenvorteile schwinden
  4. Fehlende Kostenanalyse: Mangelnde detaillierte Analyse des Rechenressourcenverbrauchs

Auswirkungen

  1. Akademischer Beitrag: Bietet wichtige methodologische Grundlagen für das Testen neuer Sprachen
  2. Praktischer Wert: Hilft direkt bei der Verbesserung der MOJO-Sprache mit unmittelbarer Wirkung
  3. Reproduzierbarkeit: Autoren versprechen Open-Source-Code und Daten, fördern Folgeforschu
  4. Feldförderung: Könnte mehr KI-Testmethoden für neue Technologien katalysieren

Anwendungsszenarien

  1. Neue Programmiersprachen: Programmiersprachen ohne ausgereiftes Test-Framework
  2. Zero-Shot-Test-Umgebungen: Test-Szenarien mit knappen Trainingsdaten
  3. KI-Systemtests: KI-Entwicklungsumgebungen, die effiziente Test-Werkzeuge benötigen
  4. Sicherheitskritische Systeme: Kritische Anwendungen, die potenzielle Fehler erkennen müssen

Literaturverzeichnis

Das Papier zitiert 58 verwandte Arbeiten, die wichtige Arbeiten in den Bereichen LLM, Fuzz-Testing und Softwaretechnik abdecken und eine solide theoretische Grundlage für die Forschung bieten.


Gesamtbewertung: Dies ist ein hochqualitatives Softwaretechnik-Forschungspapier, das innovative Lösungen für praktische Probleme bietet, mit rigorosen Experimentaldesigns und überzeugenden Ergebnissen. Diese Arbeit stellt nicht nur einen technischen Durchbruch dar, sondern bietet vor allem eine praktikable Methodik für das Testen neuer Technologien mit wichtigem akademischem und praktischem Wert.