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.
대규모 언어 모델(LLM)의 급속한 발전은 다양하고 효과적인 테스트 입력의 자동 생성을 통해 소프트웨어 테스팅, 특히 퍼즈 테스팅을 혁신했습니다. 동시에 Python의 사용 편의성과 C/C++의 효율성을 결합한 고성능 AI 프로그래밍 언어인 MOJO의 등장은 AI 모델의 확장성과 프로그래밍 가능성을 향상시킬 새로운 기회를 제공합니다. 그러나 신흥 언어로서 MOJO는 포괄적인 테스트 프레임워크와 충분한 LLM 훈련 말뭉치가 부족하여 모델 환각 문제를 악화시킵니다. 이러한 도전에 대응하여, 본 논문은 신흥 프로그래밍 언어의 영샷 학습 환경을 위해 설계된 첫 번째 적응형 LLM 퍼즈 테스팅 프레임워크인 MOJOFuzzer를 제안합니다. 실험 결과는 MOJOFuzzer가 테스트 유효성, API 커버리지 및 오류 감지 성능 측면에서 기존 퍼즈 테스팅 및 최첨단 LLM 기반 퍼즈 테스팅 방법을 크게 능가하며, MOJO에서 13개의 미발견 오류를 성공적으로 발견했음을 보여줍니다.
논문은 LLM, 퍼즈 테스팅, 소프트웨어 공학 등 여러 분야의 중요 연구를 포함한 58개의 관련 문헌을 인용하여 견고한 이론적 기초를 제공합니다.
종합 평가: 이는 실제 문제에 대해 혁신적인 해결책을 제시한 고품질의 소프트웨어 공학 연구 논문입니다. 실험 설계가 엄밀하고 결과가 설득력 있습니다. 이 연구는 기술적 돌파구를 제시할 뿐만 아니라, 신흥 기술의 테스팅을 위한 실행 가능한 방법론을 제공하여 중요한 학술적 및 실무적 가치를 지닙니다.