论文
IntentTester:用于跨库测试迁移的意图驱动的多代理框架
IntentTester: Intent-Driven Multi-agent Framework for Cross-Library Test Migration
摘要
单元测试捕获功能检查和特定领域的知识,但这些知识仍然锁定在各个项目中,并且很少在具有重叠功能的库之间重用。现有的基于结构代码映射(例如 API 签名)的迁移技术通常会在不同的设计或跨语言设置下崩溃,从而导致无法执行的迁移测试。在本文中,我们提出了 IntentTester,一个用于意图驱动测试重用的多代理框架。 IntentTester 不是翻译原始代码,而是将测试抽象为与语言无关的测试描述语言 (TDL),将它们与存储库图中语义相关的实体和依赖项对齐,并通过 LLM 引导的推理和迭代验证合成可执行测试。这种设计无需人工干预即可实现跨库和跨语言迁移,从而产生现有结构映射方法无法实现的迁移测试。我们在跨三个领域(JSON、HTML 和 Time)和两种语言(Java 和 Python)的 9 个开源项目上评估 IntentTester。 IntentTester 生成 2,776 个语法正确的测试,正确率为 85\%;相比之下,两个基线分别达到 51\% 和 43\%。其中,成功执行了2,410次测试,有效率74%。除了更高的成功率之外,IntentTester 还暴露了以前未知的缺陷,包括堆栈溢出、空取消引用和解析不一致,其中一些缺陷已被维护人员承认或修补。我们的结果表明,意图驱动的迁移将重点从代码映射转移到语义对齐,允许实际的跨库和跨语言测试重用,同时提高测试质量并暴露实现缺陷。