摘要
arXiv:2503.22851v2 宣告类型:替换-交叉
摘要:在使用语言模型(LLMs)处理非功能性需求(NFRs)时,开发人员的行为可能会有所不同(例如,以不同的措辞表达相同的NFR)。稳健的LLMs应该在这些变化中输出一致的结果;然而,这一方面尚未得到充分探索。我们提出了RobuNFR,用于在代码生成中评估LLMs在NFR意识下的鲁棒性,涵盖四个NFR维度:设计、可读性、可靠性和性能,使用三种方法:提示变化、回归测试和多样化的流程。我们的实验表明,RobuNFR揭示了在考虑代码生成中的NFR时测试中的LLMs中的鲁棒性问题。具体而言,在提示变化的情况下,包括NFR会导致Pass@1的下降最多达39%,而标准差从0.48增加到2.48,相比之下,基础模型中没有NFR(即功能仅限)的情况下。虽然整合NFR通常会提高总体的NFR指标,但也导致了更高的提示敏感性。在回归设置中,一些LLMs在不同版本之间表现出差异,一种方面的改进(例如,减少代码异味)常常伴随另一种方面的退步(例如,降低正确性),揭示了不一致性,挑战了它们的鲁棒性。在改变流程时,测试中的LLMs在两种流程之间显示出了显著不同的NFR意识的代码生成能力:(1)将NFRs与功能需求整合到初始提示中;(2)使用相同的NFR增强功能仅限生成的代码。