论文
LLM 的 Java 低级集成测试生成
LLM-based Low-Level Integration Test Generation for Java
摘要
大语言模型 (LLM) 显示了自动化测试生成的前景,但大多数方法都针对具有模拟依赖项的单元测试。相反,低级集成测试使用其真实的项目内依赖项来测试类,暴露涉及对象构造、API 调用序列和组件交互的错误。生成此类测试具有挑战性,因为 LLM 可能缺乏特定于项目的知识(不知道)或违反提供的约束(不遵循)。我们提出了 IntTestGen,这是一种基于 LLM 的方法,它将上下文丰富的生成与约束强制修复相结合。它从项目代码中挖掘依赖关系使用模式来指导测试生成,然后在修复期间使用 ClassIndex、马尔可夫类型状态模型和经验记忆应用符号级、协议级和迭代级约束。我们根据最先进的基于 LLM 的基线 PANTA 和基于 Defects4J 和 Deps4J(最近 Java 存储库的新的截止后基准)的基于搜索的基线 EvoSuite 来评估 IntTestGen。在这两个基准测试中,IntTestGen 将线覆盖率分别提高了 19.99 和 22.69 个百分点,分支覆盖率分别提高了 24.90 和 15.78 个百分点,突变得分分别提高了 13.67 和 0.17 个百分点。它还涵盖了 378 行和 55 行附加依赖代码。消融结果证实所有主要成分都有助于提高性能。