Assessing the Quality and Security of AI-Generated Code: A Quantitative Analysis
2508.14727v1
cs.SE, cs.LG
2025-08-22
Авторы:
Abbas Sabra, Olivier Schmitt, Joseph Tyler
Резюме на русском
## Контекст
В последние годы широко распространены становятся технологии искусственного интеллекта (ИИ), которые найдены во многих сферах жизнедеятельности человека. Одним из важных направлений ИИ является автоматизированное создание кода с помощью Large Language Models (LLM). Эти модели позволяют значительно ускорить процесс программирования, однако возникают вопросы касательно качества и безопасности полученного кода. Несмотря на то, что LLM могут генерировать код, который выполняет заданные функции, неясно, насколько этот код качественный и безопасен. Это создает проблему для развития систем высокого качества, которые зависят от надежного и безопасного кода. Исследование направлено на оценку качества и безопасности кода, генерируемого LLM, чтобы определить преимущества и ограничения данных моделей.
## Метод
Исследование основывается на компаративном анализе выходных данных пяти моделей LLM: Claude Sonnet 4, Claude 3.7 Sonnet, GPT-4o, Llama 3.2 90B и OpenCoder 8B. Для оценки качества и безопасности генерируемого кода были проведены тесты на 4,442 Java-заданиях с использованием статического анализатора SonarQube. SonarQube позволяет выявить различные проблемы кода, включая баги, системные уязвимости и код с медленным выполнением. Эксперименты были проведены на независимых выборках, чтобы убедиться в достоверности результатов.
## Результаты
Результаты исследования показали, что все исследованные модели LLM способны генерировать функциональный код. Однако они также внедряют различные проблемы, такие как баги, уязвимости и неэффективный код. Легко выявить, что критические проблемы, такие как хардкодинг паролей и пути путей, возникали в нескольких моделях. Для оценки качества кода использовался показатель SonarQube, который выявил ошибки и уязвимости. Однако было обнаружено, что уровень функциональной силы, измеренный по скорости прохождения юнит-тестов, не является хорошим индикатором общего качества и безопасности кода.
## Значимость
Результаты имеют значение для нескольких областей. Во-первых, они подчеркивают необходимость проведения статического анализа для выявления и исправления ошибок в LLM-generated code. Во-вторых, они поднимают вопросы о ценности функциональных показателей, таких как Pass@1, в качестве индикатора для общего качества кода. Открытиями данного исследования могут воспользоваться программисты, компании и исследователи, которые используют LLM для создания кода. Исследование также может способствовать развитию методов статического анализа для улучшения безопасности и качества ИИ-генерируемого кода.
## Выводы
На основе исследования следует сделать следующие вы
Abstract
This study presents a quantitative evaluation of the code quality and
security of five prominent Large Language Models (LLMs): Claude Sonnet 4,
Claude 3.7 Sonnet, GPT-4o, Llama 3.2 90B, and OpenCoder 8B. While prior
research has assessed the functional performance of LLM-generated code, this
research tested LLM output from 4,442 Java coding assignments through
comprehensive static analysis using SonarQube. The findings suggest that
although LLMs can generate functional code, they also introduce a range of
software defects, including bugs, security vulnerabilities, and code smells.
These defects do not appear to be isolated; rather, they may represent shared
weaknesses stemming from systemic limitations within current LLM code
generation methods. In particular, critically severe issues, such as hard-coded
passwords and path traversal vulnerabilities, were observed across multiple
models. These results indicate that LLM-generated code requires verification in
order to be considered production-ready. This study found no direct correlation
between a model's functional performance (measured by Pass@1 rate of unit
tests) and the overall quality and security of its generated code, measured by
the number of SonarQube issues in benchmark solutions that passed the
functional tests. This suggests that functional benchmark performance score is
not a good indicator of overall code quality and security. The goal of this
study is not to rank LLM performance but to highlight that all evaluated models
appear to share certain weaknesses. Consequently, these findings support the
view that static analysis can be a valuable instrument for detecting latent
defects and an important safeguard for organizations that deploy AI in software
development.
Ссылки и действия
Дополнительные ресурсы: