论文
在 Python 中评估 LLM 生成的类级测试套件的有效性
Evaluating the effectiveness of class-level LLM-generated test suites in Python
摘要
背景:大型语言模型 (LLM) 可以快速生成单元测试,但高结构覆盖率并不能证明这些测试能够可靠执行或检测故障。现有证据通常将覆盖率视为主要结果,很少通过班级水平的突变测试来比较即时策略和模型。目标:本研究探讨了即时策略和模型选择如何影响 LLM 生成的 Python 测试套件(相对于人类编写的套件)的可执行性、结构覆盖率、故障检测有效性和结构质量。方法:我们在 ClassEval 基准上评估当前 LLM 配置的多种提示策略。评估结合了执行结果、线路和分支覆盖率、宇宙射线突变评分和结构质量指标。初步分析将成功执行视为先决条件;配对比较仅使用相关可执行子集共享的类。结果:结构覆盖范围始终接近上限,并且配置之间几乎没有区别。可执行性差异很大。所提出的提示对于突变评分表现良好,但没有提示在模型中占主导地位。模型选择比提示选择解释了更多的变化,并且它们的相互作用表明提示有效性取决于所选模型。人类和 LLM 套件是在不平等的可执行子集上进行评估的,因此它们的相对突变分数并不能建立优越性。结论:对 LLM 生成的测试进行可靠评估应将可执行性视为一个门,并将覆盖率与突变测试和结构质量指标结合起来。在实践中,模型选择应先于及时调整。