大型语言模型(LLMs)已经展现出在处理自然语言和编程语言方面的非凡能力,这使得在软件工程领域中出现了各种应用,例如需求工程、代码生成和软件测试。然而,现有的代码生成基准测试并不一定评估LLMs的代码理解性能,特别是对于代码与自然语言描述中可能出现的微妙不一致性。本文提出了一种新方法,通过向现有代码生成数据集引入代码变异,从而系统地评估LLMs的代码理解性能,特别关注代码和其描述之间的微小差异。代码变异是改变原始代码语义的小变化,从而与自然语言描述产生不匹配。我们应用不同类型的代码变异,例如运算符替换和语句删除,生成不一致的代码-描述对。然后,我们使用这些对来测试LLMs正确检测不一致性的能力。我们提出了一种新的LLM测试方法,称为基于变异的一致性测试(MCT),并在两个流行的LLMs,GPT-3.5和GPT-4上进行了案例研究,使用最先进的代码生成基准测试HumanEval-X,该测试涵盖六种编程语言(Python、C++、Java、Go、JavaScript和Rust)。我们比较了LLMs在不同类型的代码变异和编程语言之间的性能,并分析了结果。我们发现LLMs在其代码理解性能方面存在显着差异,并且它们在变异类型和语言方面具有不同的优势和劣势。
提问交流