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 के साथफ़ज़ टेस्टिंग में सुधार के लिए बड़े भाषा मॉडल
बड़े भाषा मॉडल (LLMs) के तीव्र विकास ने स्वचालित रूप से विविध और प्रभावी परीक्षण इनपुट उत्पन्न करके सॉफ्टवेयर परीक्षण, विशेष रूप से फ़ज़ टेस्टिंग में क्रांति ला दी है। इसी समय, MOJO एक उच्च-प्रदर्शन AI प्रोग्रामिंग भाषा के रूप में पेश किया गया है जो Python की सरलता को C/C++ की दक्षता के साथ जोड़ता है, जो AI मॉडल की स्केलेबिलिटी और प्रोग्रामेबिलिटी को बढ़ाने के लिए नए अवसर प्रदान करता है। हालांकि, एक उदीयमान भाषा के रूप में, MOJO में व्यापक परीक्षण ढांचे की कमी है और LLM प्रशिक्षण कॉर्पस अपर्याप्त है, जो मॉडल हॉलुसिनेशन समस्या को बढ़ाता है। इस चुनौती का समाधान करने के लिए, यह पेपर MOJOFuzzer प्रस्तुत करता है, जो उदीयमान प्रोग्रामिंग भाषाओं के लिए शून्य-शॉट लर्निंग वातावरण में डिज़ाइन किया गया पहला अनुकूली LLM फ़ज़ टेस्टिंग ढांचा है। प्रायोगिक परिणाम दर्शाते हैं कि MOJOFuzzer परीक्षण प्रभावशीलता, API कवरेज और त्रुटि पहचान प्रदर्शन में पारंपरिक फ़ज़ टेस्टिंग और अत्याधुनिक LLM-आधारित फ़ज़ टेस्टिंग विधियों से काफी बेहतर है, और MOJO में 13 अज्ञात त्रुटियों की सफलतापूर्वक खोज की है।
यह अनुसंधान उदीयमान प्रोग्रामिंग भाषाओं की फ़ज़ टेस्टिंग चुनौतियों को संबोधित करता है, विशेष रूप से शून्य-शॉट लर्निंग वातावरण में अपर्याप्त प्रशिक्षण डेटा के साथ प्रभावी परीक्षण कैसे करें।
AI विकास की आवश्यकता: स्वायत्त वाहन, चिकित्सा निदान, वित्तीय सेवाओं जैसे महत्वपूर्ण क्षेत्रों में AI के व्यापक अनुप्रयोग के साथ, कुशल प्रोग्रामिंग भाषा समर्थन की आवश्यकता है
MOJO भाषा की क्षमता: MOJO Python की तुलना में 68,000 गुना तेज़ प्रदर्शन प्राप्त कर सकता है, जो AI विकास के लिए एक महत्वपूर्ण उपकरण है
परीक्षण ढांचे की कमी: एक उदीयमान भाषा के रूप में, MOJO में परिपक्व परीक्षण ढांचे की कमी है, अज्ञात सॉफ्टवेयर त्रुटियां और सुरक्षा कमजोरियां मौजूद हैं
MOJO भाषा के लिए पहला समर्पित LLM फ़ज़ टेस्टिंग ढांचा विकसित करना, नवीन प्रॉम्प्ट इंजीनियरिंग और फाइन-ट्यूनिंग तकनीकों के माध्यम से, शून्य-शॉट लर्निंग वातावरण में प्रभावी त्रुटि पहचान प्राप्त करना।
शून्य-शॉट LLM फ़ज़ टेस्टिंग ढांचा का आविष्कार: MOJOFuzzer शून्य-शॉट लर्निंग वातावरण के लिए डिज़ाइन किया गया पहला LLM-संचालित फ़ज़ टेस्टिंग ढांचा है, जो प्रभावी रूप से LLM हॉलुसिनेशन समस्या को कम करता है
बहु-चरणीय गुणवत्ता नियंत्रण तंत्र: परीक्षण मामलों की प्रभावशीलता में काफी सुधार करते हुए, कम-गुणवत्ता इनपुट फ़िल्टरिंग का एक व्यवस्थित तंत्र एकीकृत करता है
अनुकूली उत्परिवर्तन रणनीति: रनटाइम प्रतिक्रिया के आधार पर LLM प्रॉम्प्ट को गतिशील रूप से समायोजित करता है, एक पुनरावृत्तिमूलक सीखने की प्रक्रिया को लागू करता है
व्यावहारिक त्रुटि खोज: MOJO में 13 अज्ञात त्रुटियों की सफलतापूर्वक खोज की, जिनमें से 9 को आधिकारिक रूप से पुष्टि की गई और ठीक किया गया
प्रदर्शन में महत्वपूर्ण सुधार: परीक्षण प्रभावशीलता (98%), API कवरेज (77.3%) और त्रुटि पहचान क्षमता में मौजूदा विधियों से काफी बेहतर
इनपुट: MOJO प्रोग्रामिंग भाषा वातावरण और सीमित वाक्य-रचना नियम, ऐतिहासिक त्रुटि रिपोर्ट
आउटपुट: MOJO त्रुटियों को ट्रिगर करने में सक्षम वैध परीक्षण मामले
बाधा शर्तें: शून्य-शॉट लर्निंग वातावरण, बड़ी मात्रा में MOJO-विशिष्ट प्रशिक्षण डेटा नहीं
पेपर ने 58 संबंधित संदर्भों का हवाला दिया है, जो LLM, फ़ज़ टेस्टिंग, सॉफ्टवेयर इंजीनियरिंग और अन्य क्षेत्रों के महत्वपूर्ण कार्यों को कवर करता है, अनुसंधान के लिए एक मजबूत सैद्धांतिक आधार प्रदान करता है।
समग्र मूल्यांकन: यह एक उच्च-गुणवत्ता वाला सॉफ्टवेयर इंजीनियरिंग अनुसंधान पेपर है जो व्यावहारिक समस्याओं के लिए नवीन समाधान प्रस्तुत करता है, कठोर प्रायोगिक डिज़ाइन, और विश्वसनीय परिणाम। यह कार्य न केवल तकनीकी रूप से सफल है, बल्कि उदीयमान तकनीकों के परीक्षण के लिए एक व्यवहार्य पद्धति प्रदान करता है, जिसका महत्वपूर्ण शैक्षणिक और व्यावहारिक मूल्य है।