RobuNFR: Evaluating the Robustness of Large Language Models on Non-Functional Requirements Aware Code Generation

📄 arXiv: 2503.22851v2 📥 PDF

作者: Feng Lin, Dong Jae Kim, Zhenhao Li, Jinqiu Yang, Tse-Hsun, Chen

分类: cs.SE, cs.AI

发布日期: 2025-03-28 (更新: 2025-04-03)

备注: Corrected metadata: fixed author name in submission form (TeX file was already correct)


💡 一句话要点

提出RobuNFR以评估大型语言模型在非功能性需求代码生成中的鲁棒性问题

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 大型语言模型 非功能性需求 代码生成 鲁棒性评估 软件开发

📋 核心要点

  1. 现有方法在处理非功能性需求时,缺乏对不同表达方式的鲁棒性评估,导致生成结果不一致。
  2. RobuNFR通过多种方法评估LLMs在NFR感知代码生成中的鲁棒性,关注设计、可读性、可靠性和性能四个维度。
  3. 实验结果显示,考虑NFRs时,LLMs的性能存在显著波动,提示敏感性增加,且不同工作流下生成能力差异明显。

📝 摘要(中文)

在使用大型语言模型(LLMs)处理非功能性需求(NFRs)时,开发者可能会以不同的方式表达相同的NFR。鲁棒的LLMs应在这些变化中输出一致的结果,但这一方面仍未得到充分探索。本文提出RobuNFR,用于评估LLMs在NFR感知代码生成中的鲁棒性,涵盖设计、可读性、可靠性和性能四个NFR维度,采用提示变体、回归测试和多样化工作流三种方法。实验表明,RobuNFR揭示了在考虑NFRs时被测试的LLMs存在鲁棒性问题,尤其是在提示变体下,包含NFRs导致Pass@1下降最多39%,标准差从0.48增加到2.48。尽管纳入NFRs通常改善整体NFR指标,但也导致更高的提示敏感性。

🔬 方法详解

问题定义:本文旨在解决大型语言模型在处理非功能性需求时的鲁棒性问题,现有方法未能有效应对不同表达方式带来的结果不一致性。

核心思路:RobuNFR通过引入多样化的提示变体、回归测试和工作流设计,系统性地评估LLMs在NFR感知代码生成中的表现,确保模型在不同场景下的稳定性。

技术框架:整体框架包括三个主要模块:提示变体生成、回归测试实施和多样化工作流设计。每个模块针对不同的NFR维度进行评估,确保全面覆盖。

关键创新:RobuNFR的创新在于系统性地考虑了NFRs对代码生成的影响,并通过多种方法揭示了LLMs的鲁棒性问题,这与传统方法的单一评估方式形成鲜明对比。

关键设计:在实验中,设置了不同的提示变体,采用了标准化的评估指标,并在回归测试中监测了不同版本间的性能变化,确保结果的可靠性和可重复性。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果显示,在提示变体下,考虑NFRs导致Pass@1下降最多39%,标准差从0.48增加到2.48,表明LLMs在NFR感知代码生成中的鲁棒性存在显著问题。此外,不同工作流下的生成能力差异也进一步揭示了模型的敏感性。

🎯 应用场景

该研究的潜在应用领域包括软件开发、自动化代码生成和智能编程助手等。通过提高LLMs在处理非功能性需求时的鲁棒性,可以显著提升代码生成的质量和一致性,进而推动智能编程工具的实际应用和发展。

📄 摘要(原文)

When using LLMs to address Non-Functional Requirements (NFRs), developers may behave differently (e.g., expressing the same NFR in different words). Robust LLMs should output consistent results across these variations; however, this aspect remains underexplored. We propose RobuNFR for evaluating the robustness of LLMs in NFR-aware code generation across four NFR dimensions: design, readability, reliability, and performance, using three methodologies: prompt variation, regression testing, and diverse workflows. Our experiments show that RobuNFR reveals robustness issues in the tested LLMs when considering NFRs in code generation. Specifically, under prompt variation, including NFRs leads to a decrease in Pass@1 by up to 39 percent and an increase in the standard deviation from 0.48 to 2.48 compared to the baseline without NFRs (i.e., Function-Only). While incorporating NFRs generally improves overall NFR metrics, it also results in higher prompt sensitivity. In regression settings, some LLMs exhibit differences across versions, with improvements in one aspect (e.g., reduced code smells) often accompanied by regressions in another (e.g., decreased correctness), revealing inconsistencies that challenge their robustness. When varying workflows, the tested LLMs show significantly different NFR-aware code generation capabilities between two workflows: (1) integrating NFRs and functional requirements into the initial prompt and (2) enhancing Function-Only-generated code with the same NFR.