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 are All You Need? MOJO के साथफ़ज़ टेस्टिंग में सुधार के लिए बड़े भाषा मॉडल

मूल जानकारी

  • पेपर ID: 2510.10179
  • शीर्षक: LLMs are All You Need? Improving Fuzz Testing for MOJO with Large Language Models
  • लेखक: Linghan Huang, Peizhou Zhao, Huaming Chen (सिडनी विश्वविद्यालय)
  • वर्गीकरण: cs.SE (सॉफ्टवेयर इंजीनियरिंग), cs.AI (कृत्रिम बुद्धिमत्ता)
  • प्रकाशन तिथि: 11 अक्टूबर 2025 (arXiv प्रीप्रिंट)
  • पेपर लिंक: https://arxiv.org/abs/2510.10179

सारांश

बड़े भाषा मॉडल (LLMs) के तीव्र विकास ने स्वचालित रूप से विविध और प्रभावी परीक्षण इनपुट उत्पन्न करके सॉफ्टवेयर परीक्षण, विशेष रूप से फ़ज़ टेस्टिंग में क्रांति ला दी है। इसी समय, MOJO एक उच्च-प्रदर्शन AI प्रोग्रामिंग भाषा के रूप में पेश किया गया है जो Python की सरलता को C/C++ की दक्षता के साथ जोड़ता है, जो AI मॉडल की स्केलेबिलिटी और प्रोग्रामेबिलिटी को बढ़ाने के लिए नए अवसर प्रदान करता है। हालांकि, एक उदीयमान भाषा के रूप में, MOJO में व्यापक परीक्षण ढांचे की कमी है और LLM प्रशिक्षण कॉर्पस अपर्याप्त है, जो मॉडल हॉलुसिनेशन समस्या को बढ़ाता है। इस चुनौती का समाधान करने के लिए, यह पेपर MOJOFuzzer प्रस्तुत करता है, जो उदीयमान प्रोग्रामिंग भाषाओं के लिए शून्य-शॉट लर्निंग वातावरण में डिज़ाइन किया गया पहला अनुकूली LLM फ़ज़ टेस्टिंग ढांचा है। प्रायोगिक परिणाम दर्शाते हैं कि MOJOFuzzer परीक्षण प्रभावशीलता, API कवरेज और त्रुटि पहचान प्रदर्शन में पारंपरिक फ़ज़ टेस्टिंग और अत्याधुनिक LLM-आधारित फ़ज़ टेस्टिंग विधियों से काफी बेहतर है, और MOJO में 13 अज्ञात त्रुटियों की सफलतापूर्वक खोज की है।

अनुसंधान पृष्ठभूमि और प्रेरणा

मूल समस्या

यह अनुसंधान उदीयमान प्रोग्रामिंग भाषाओं की फ़ज़ टेस्टिंग चुनौतियों को संबोधित करता है, विशेष रूप से शून्य-शॉट लर्निंग वातावरण में अपर्याप्त प्रशिक्षण डेटा के साथ प्रभावी परीक्षण कैसे करें।

समस्या की महत्ता

  1. AI विकास की आवश्यकता: स्वायत्त वाहन, चिकित्सा निदान, वित्तीय सेवाओं जैसे महत्वपूर्ण क्षेत्रों में AI के व्यापक अनुप्रयोग के साथ, कुशल प्रोग्रामिंग भाषा समर्थन की आवश्यकता है
  2. MOJO भाषा की क्षमता: MOJO Python की तुलना में 68,000 गुना तेज़ प्रदर्शन प्राप्त कर सकता है, जो AI विकास के लिए एक महत्वपूर्ण उपकरण है
  3. परीक्षण ढांचे की कमी: एक उदीयमान भाषा के रूप में, MOJO में परिपक्व परीक्षण ढांचे की कमी है, अज्ञात सॉफ्टवेयर त्रुटियां और सुरक्षा कमजोरियां मौजूद हैं

मौजूदा विधियों की सीमाएं

  1. पारंपरिक LLM फ़ज़ टेस्टर बड़ी मात्रा में डोमेन-विशिष्ट प्रशिक्षण डेटा पर निर्भर हैं, जो उदीयमान भाषाओं पर अनुप्रयोग को सीमित करता है
  2. मॉडल हॉलुसिनेशन समस्या: शून्य-शॉट वातावरण में, LLM वाक्य-रचनात्मक रूप से सही लेकिन शब्दार्थ रूप से गलत कोड उत्पन्न करने के लिए प्रवण है
  3. विशिष्टता की कमी: मौजूदा उपकरण MOJO भाषा की विशेषताओं के लिए विशेष रूप से अनुकूलित नहीं हैं

अनुसंधान प्रेरणा

MOJO भाषा के लिए पहला समर्पित LLM फ़ज़ टेस्टिंग ढांचा विकसित करना, नवीन प्रॉम्प्ट इंजीनियरिंग और फाइन-ट्यूनिंग तकनीकों के माध्यम से, शून्य-शॉट लर्निंग वातावरण में प्रभावी त्रुटि पहचान प्राप्त करना।

मूल योगदान

  1. शून्य-शॉट LLM फ़ज़ टेस्टिंग ढांचा का आविष्कार: MOJOFuzzer शून्य-शॉट लर्निंग वातावरण के लिए डिज़ाइन किया गया पहला LLM-संचालित फ़ज़ टेस्टिंग ढांचा है, जो प्रभावी रूप से LLM हॉलुसिनेशन समस्या को कम करता है
  2. बहु-चरणीय गुणवत्ता नियंत्रण तंत्र: परीक्षण मामलों की प्रभावशीलता में काफी सुधार करते हुए, कम-गुणवत्ता इनपुट फ़िल्टरिंग का एक व्यवस्थित तंत्र एकीकृत करता है
  3. अनुकूली उत्परिवर्तन रणनीति: रनटाइम प्रतिक्रिया के आधार पर LLM प्रॉम्प्ट को गतिशील रूप से समायोजित करता है, एक पुनरावृत्तिमूलक सीखने की प्रक्रिया को लागू करता है
  4. व्यावहारिक त्रुटि खोज: MOJO में 13 अज्ञात त्रुटियों की सफलतापूर्वक खोज की, जिनमें से 9 को आधिकारिक रूप से पुष्टि की गई और ठीक किया गया
  5. प्रदर्शन में महत्वपूर्ण सुधार: परीक्षण प्रभावशीलता (98%), API कवरेज (77.3%) और त्रुटि पहचान क्षमता में मौजूदा विधियों से काफी बेहतर

विधि विवरण

कार्य परिभाषा

इनपुट: MOJO प्रोग्रामिंग भाषा वातावरण और सीमित वाक्य-रचना नियम, ऐतिहासिक त्रुटि रिपोर्ट आउटपुट: MOJO त्रुटियों को ट्रिगर करने में सक्षम वैध परीक्षण मामले बाधा शर्तें: शून्य-शॉट लर्निंग वातावरण, बड़ी मात्रा में MOJO-विशिष्ट प्रशिक्षण डेटा नहीं

मॉडल आर्किटेक्चर

समग्र ढांचा

MOJOFuzzer एक बहु-चरणीय आर्किटेक्चर अपनाता है, जिसमें निम्नलिखित मूल घटक शामिल हैं:

  1. डेटा तैयारी चरण
    • GitHub और आधिकारिक दस्तावेज़ से लगभग 300 त्रुटि रिपोर्ट और 1,500 वाक्य-रचना नमूने एकत्र करना
    • डेटा सफाई और मानकीकरण प्रसंस्करण
  2. आरंभीकरण चरण
    • प्रॉम्प्ट बैंक (Prompt Bank): संरचित प्रॉम्प्ट टेम्पलेट संग्रहीत करता है
    • सीड बैंक (Seed Bank): परीक्षण बीजों की पीढ़ी और भंडारण का प्रबंधन करता है
  3. उत्परिवर्तन रणनीति
    • उत्परिवर्तन स्कोरिंग तंत्र: API कॉल संख्या और कोड जटिलता के आधार पर स्कोर की गणना करता है
    • आधा उत्परिवर्तन (Half Mutation): उच्च-स्कोर बीजों के लिए कोड-स्तरीय उत्परिवर्तन
    • पूर्ण उत्परिवर्तन (Full Mutation): निम्न-स्कोर बीजों के लिए प्रॉम्प्ट-स्तरीय उत्परिवर्तन

मुख्य तकनीकी विवरण

उत्परिवर्तन स्कोरिंग सूत्र:

S_mutation = N_API + C_complexity

जहां:

  • N_API: API कॉल संख्या
  • C_complexity: कोड जटिलता स्कोर (समय जटिलता O(1) से O(n³) के आधार पर विभिन्न स्कोर आवंटित)

प्रॉम्प्ट इंजीनियरिंग रणनीति: चेन-ऑफ-थॉट (CoT) और भूमिका प्रॉम्प्ट तकनीक का उपयोग करता है, जिसमें 5 मूल घटक शामिल हैं:

  1. वाक्य-रचना विश्लेषण निर्देश
  2. भूमिका-आधारित ढांचा
  3. स्वचालित डेटा फ़िल्टरिंग
  4. सामग्री सारांश
  5. प्रॉम्प्ट बीज पीढ़ी

फाइन-ट्यूनिंग रणनीति

LLAMA2 13B मॉडल का उपयोग करके दो-चरणीय फाइन-ट्यूनिंग:

  1. पहला चरण: MOJO वाक्य-रचना डेटासेट के आधार पर भाषा संरचना सीखना
  2. दूसरा चरण: ऐतिहासिक त्रुटि रिकॉर्ड के आधार पर दोष पैटर्न सीखना

तकनीकी नवाचार बिंदु

  1. शून्य-शॉट अनुकूलनशीलता: पहली बार बड़ी मात्रा में प्रशिक्षण डेटा के बिना प्रभावी LLM फ़ज़ टेस्टिंग प्राप्त करना
  2. दोहरी-परत उत्परिवर्तन तंत्र: कोड-स्तरीय और प्रॉम्प्ट-स्तरीय उत्परिवर्तन को जोड़ता है, परीक्षण विविधता में सुधार करता है
  3. अनुकूली स्कोरिंग प्रणाली: बीज गुणवत्ता का गतिशील मूल्यांकन, संसाधन आवंटन को अनुकूलित करता है
  4. बहु-चरणीय गुणवत्ता नियंत्रण: कम-गुणवत्ता इनपुट को व्यवस्थित रूप से फ़िल्टर करता है, हॉलुसिनेशन समस्या को कम करता है

प्रायोगिक सेटअप

डेटासेट

  • MOJO वाक्य-रचना डेटा: लगभग 1,500 वाक्य-रचना नियम और कोड उदाहरण
  • ऐतिहासिक त्रुटि रिपोर्ट: GitHub से लगभग 300 त्रुटि रिकॉर्ड
  • परीक्षण वातावरण: MOJO कंपाइलर और रनटाइम वातावरण

मूल्यांकन मेट्रिक्स

  1. अद्वितीय वैध प्रोग्राम संख्या: वाक्य-रचनात्मक और शब्दार्थ रूप से सही परीक्षण प्रोग्राम का अनुपात
  2. उत्परिवर्तन दक्षता: परीक्षण विविधता, प्रभावशीलता और त्रुटि पहचान क्षमता में सुधार
  3. API कवरेज: परीक्षण के दौरान बुलाए गए अद्वितीय MOJO API फ़ंक्शन की संख्या
  4. पहचानी गई त्रुटि संख्या: खोजी गई विभिन्न सॉफ्टवेयर कमियों की संख्या

तुलना विधियां

  • पारंपरिक विधि: MojoCoder
  • LLM फ़ज़ टेस्टर: Fuzz4All, TitanFuzz
  • सामान्य LLM: GPT-4o, LLAMA3-8B, LLAMA2-7B

कार्यान्वयन विवरण

  • हार्डवेयर प्लेटफॉर्म: NVIDIA A6000 Ada
  • फाइन-ट्यूनिंग तकनीक: LoRA (Low-Rank Adaptation)
  • अधिकतम पुनरावृत्ति संख्या: 10 राउंड
  • उत्परिवर्तन थ्रेशोल्ड: आधा उत्परिवर्तन/पूर्ण उत्परिवर्तन के विभाजन बिंदु के रूप में स्कोर 50

प्रायोगिक परिणाम

मुख्य परिणाम

API कवरेज तुलना

मॉडलAPI कवरेज
MOJOFuzzer77.3%
Fine-tuned MojoCoder68.2%
Fuzz4All37.8%
TitanFuzz17.2%
GPT-4o25.6%

वैध प्रोग्राम पीढ़ी दर

मॉडलवैध प्रोग्राम दर
MOJOFuzzer98%
Mojo-Coder-it 7B66.4%
GPT-4o~25%
LLaMA3-8B~10%
LLaMA2-7B~10%

त्रुटि खोज क्षमता

  • कुल खोजी गई त्रुटियां: 13 अज्ञात त्रुटियां
  • पुष्टि की गई और ठीक की गई: 9 त्रुटियों को MOJO टीम द्वारा पुष्टि की गई और ठीक किया गया
  • त्रुटि प्रकार: यादृच्छिक संख्या जनरेटर कमियां, Python लाइब्रेरी एकीकरण समस्याएं आदि शामिल हैं

विलोपन प्रयोग

विलोपन अध्ययन तीन मुख्य घटकों के योगदान का मूल्यांकन करता है:

घटक कॉन्फ़िगरेशनहॉलुसिनेशन दरवैध कोड दरशब्दार्थ सही होना
आधारभूत40%60%50%
केवल प्रॉम्प्ट इंजीनियरिंग (PE)28%75%65%
केवल फाइन-ट्यूनिंग (FT)15%88%78%
केवल आधा उत्परिवर्तन (HM)35%68%55%
PE + FT8%95%88%
PE + FT + HM (सभी)5%98%90%

केस विश्लेषण

खोजी गई मुख्य त्रुटि उदाहरण:

  1. यादृच्छिक संख्या जनरेटर त्रुटि:
    • random_si64, random_float64, random_ui64 फ़ंक्शन हमेशा निश्चित मान लौटाते हैं
    • यादृच्छिक संख्या पीढ़ी की सही कार्यक्षमता को प्रभावित करता है
  2. Python लाइब्रेरी एकीकरण त्रुटि:
    • numpy फ़ंक्शन कॉल करते समय मॉड्यूल प्राप्त विफलता होती है
    • MOJO और Python लाइब्रेरी एकीकरण में अंतर्निहित तर्क त्रुटि दिखाता है

प्रायोगिक निष्कर्ष

  1. फाइन-ट्यूनिंग की महत्वपूर्ण भूमिका: फाइन-ट्यूनिंग हॉलुसिनेशन समस्या को कम करने का सबसे प्रभावी एकल कारक है
  2. घटक सहक्रिया प्रभाव: तीनों घटकों को एक साथ उपयोग करने पर सर्वोत्तम प्रभाव
  3. शून्य-शॉट लर्निंग व्यवहार्यता: बड़ी मात्रा में प्रशिक्षण डेटा के बिना प्रभावी परीक्षण की संभावना को प्रमाणित करता है

संबंधित कार्य

LLM फ़ज़ टेस्टिंग विकास

  1. LLM-आधारित फ़ज़ टेस्टर: TitanFuzz, ChatAFL, Fuzz4All आदि बीज पीढ़ी और उत्परिवर्तन में सुधार के लिए LLM का उपयोग करते हैं
  2. फाइन-ट्यून किए गए फ़ज़ टेस्टर: FuzzGPT आदि डोमेन-विशिष्ट डेटा के साथ फाइन-ट्यूनिंग के माध्यम से प्रभाव में सुधार करते हैं
  3. पारंपरिक फ़ज़ टेस्टिंग: OSS-Fuzz आदि पारंपरिक उपकरण उदीयमान भाषाओं पर सीमाएं

इस पेपर के लाभ

मौजूदा कार्य की तुलना में, MOJOFuzzer के मुख्य लाभ:

  1. शून्य-शॉट क्षमता: बड़ी मात्रा में पूर्व-प्रशिक्षण डेटा की आवश्यकता नहीं
  2. दोहरी-परत उत्परिवर्तन: कोड और प्रॉम्प्ट स्तर दोनों पर उत्परिवर्तन
  3. अनुकूली तंत्र: रनटाइम प्रतिक्रिया के आधार पर रणनीति को गतिशील रूप से समायोजित करता है

निष्कर्ष और चर्चा

मुख्य निष्कर्ष

  1. MOJOFuzzer ने उदीयमान प्रोग्रामिंग भाषाओं की फ़ज़ टेस्टिंग चुनौतियों को सफलतापूर्वक हल किया
  2. शून्य-शॉट LLM फ़ज़ टेस्टिंग व्यावहारिक अनुप्रयोग में व्यवहार्य है
  3. फाइन-ट्यूनिंग, प्रॉम्प्ट इंजीनियरिंग और अनुकूली उत्परिवर्तन को जोड़ने की विधि एकल तकनीक से काफी बेहतर है

सीमाएं

  1. समय वैधता खतरा: जैसे-जैसे उन्नत LLM धीरे-धीरे MOJO ज्ञान को एकीकृत करते हैं, शून्य-शॉट लाभ कम हो सकता है
  2. डेटा निर्भरता: अभी भी न्यूनतम मात्रा में वाक्य-रचना नियम और त्रुटि रिपोर्ट की आवश्यकता है
  3. कम्प्यूटेशनल संसाधन आवश्यकता: फाइन-ट्यूनिंग और अनुमान प्रक्रिया के लिए उच्च कम्प्यूटेशनल लागत की आवश्यकता है

भविष्य की दिशाएं

  1. पूर्ण स्वचालन परीक्षण: पूरी तरह से स्वचालित फ़ज़ टेस्टिंग की ओर विकास
  2. अधिक उदीयमान भाषाएं: विधि को अन्य उदीयमान प्रोग्रामिंग भाषाओं तक विस्तारित करना
  3. पूर्व-प्रशिक्षण डेटासेट अनुकूलन: सीमित प्रशिक्षण डेटा का बेहतर उपयोग कैसे करें, इस पर अनुसंधान

गहन मूल्यांकन

शक्तियां

  1. मजबूत नवाचार: उदीयमान भाषाओं के लिए पहला शून्य-शॉट LLM फ़ज़ टेस्टिंग ढांचा
  2. उच्च व्यावहारिक मूल्य: 13 वास्तविक त्रुटियों की सफलतापूर्वक खोज, विधि की प्रभावशीलता को प्रमाणित करता है
  3. संपूर्ण तकनीकी समाधान: डेटा संग्रह से त्रुटि पहचान तक संपूर्ण पाइपलाइन
  4. व्यापक प्रयोग: व्यापक तुलनात्मक प्रयोग और विलोपन अध्ययन शामिल
  5. स्पष्ट लेखन: तकनीकी विवरण सटीक वर्णन, तर्कसंगत प्रायोगिक डिज़ाइन

कमियां

  1. सीमित मूल्यांकन दायरा: मुख्य रूप से MOJO भाषा पर केंद्रित, सामान्यीकरण क्षमता सत्यापन की प्रतीक्षा में है
  2. आधारभूत तुलना: कुछ आधारभूत विधियां इष्टतम विकल्प नहीं हो सकती हैं
  3. दीर्घकालिक प्रभावशीलता: MOJO पारिस्थितिकी तंत्र के परिपक्व होने के साथ, विधि लाभ कम हो सकता है
  4. कम्प्यूटेशनल लागत विश्लेषण: विस्तृत कम्प्यूटेशनल संसाधन खपत विश्लेषण की कमी

प्रभाव

  1. शैक्षणिक योगदान: उदीयमान भाषा परीक्षण के लिए महत्वपूर्ण पद्धति आधार प्रदान करता है
  2. व्यावहारिक मूल्य: सीधे MOJO भाषा में सुधार में मदद करता है, तत्काल प्रभाव है
  3. पुनरुत्पादनशीलता: लेखक कोड और डेटा को ओपन-सोर्स करने का वचन देते हैं, बाद के अनुसंधान में सहायता करता है
  4. क्षेत्र को आगे बढ़ाना: उदीयमान तकनीकों के लिए अधिक AI परीक्षण विधियों को प्रेरित कर सकता है

लागू परिदृश्य

  1. उदीयमान प्रोग्रामिंग भाषाएं: परिपक्व परीक्षण ढांचे की कमी वाली प्रोग्रामिंग भाषाएं
  2. शून्य-शॉट परीक्षण वातावरण: प्रशिक्षण डेटा दुर्लभ परीक्षण परिदृश्य
  3. AI सिस्टम परीक्षण: कुशल परीक्षण उपकरणों की आवश्यकता वाले AI विकास वातावरण
  4. सुरक्षा-महत्वपूर्ण सिस्टम: संभावित त्रुटियों की खोज की आवश्यकता वाले महत्वपूर्ण अनुप्रयोग

संदर्भ

पेपर ने 58 संबंधित संदर्भों का हवाला दिया है, जो LLM, फ़ज़ टेस्टिंग, सॉफ्टवेयर इंजीनियरिंग और अन्य क्षेत्रों के महत्वपूर्ण कार्यों को कवर करता है, अनुसंधान के लिए एक मजबूत सैद्धांतिक आधार प्रदान करता है।


समग्र मूल्यांकन: यह एक उच्च-गुणवत्ता वाला सॉफ्टवेयर इंजीनियरिंग अनुसंधान पेपर है जो व्यावहारिक समस्याओं के लिए नवीन समाधान प्रस्तुत करता है, कठोर प्रायोगिक डिज़ाइन, और विश्वसनीय परिणाम। यह कार्य न केवल तकनीकी रूप से सफल है, बल्कि उदीयमान तकनीकों के परीक्षण के लिए एक व्यवहार्य पद्धति प्रदान करता है, जिसका महत्वपूर्ण शैक्षणिक और व्यावहारिक मूल्य है।