单元测试旨在验证软件系统基本单元的正确性,在软件开发与测试中发挥着至关重要的作用。近年来,大语言模型凭借卓越的自然语言和代码理解能力,在众多软件工程任务中取得了显著成果,展现出其在单元测试领域的巨大潜力。尽管现有的测试生成工具在测试覆盖率方面取得了长足进展,但对被测程序行为的理解仍然不足,测试预言问题仍是重要挑战,即难以生成有效的测试断言来准确判断程序行为是否符合预期。
针对这一挑战,受整形外科手术猜想( Plastic Surgery Hypothesis )的启发,南京大学 iSE 实验室张犬俊博士创新性地提出了两种基于检索增强生成的单元测试断言技术,分别聚焦于检索器阶段和生成器阶段,为提升单元测试的实用性提供了有效解决方案。
针对检索器优化的阶段,实验室提出了一种基于混合检索增强生成的测试断言技术名 RetriGen。该方法结合了混合断言检索器与基于大语言模型的断言生成器,旨在提升断言生成的质量和准确性。RetriGen 首先设计了一种混合断言检索策略,该策略基于词法相似度和语义相似度从外部代码库中检索最相关的断言知识。RetriGen 随后设计了一种基于大语言模型的检索增强断言生成策略,该策略将断言生成任务建模为序列到序列学习问题,基于被测函数和检索的外部断言知识来预测正确的断言。该研究成果《 Improving Deep Assertion Generation via Fine-Tuning Retrieval- Augmented Pre-trained Language Models 》已被软件工程领域国际期刊 ACM Transactions on Software Engineering and Methodology ( TOSEM,CCF - A类期刊 )全文录用。
针对生成器训练阶段,实验室提出了一种基于联合训练的断言生成测试技术 AG - RAG。现有工作通常将检索器和生成器视作两个独立组件,未能充分发挥二者的协同作用。AG - RAG 创新性地提出了一种联合训练策略,将检索器和生成器作为一个整体进行联合优化,使检索器能够从生成器提供的反馈中不断学习,并进行自适应调整,以便检索更具价值的外部知识,从而提升断言生成的精准度。该研究成果《 Improving Retrieval-Augmented Deep Assertion Generation via Joint Training 》已被软件工程领域国际期刊 IEEE Transactions on Software Engineering TOSEM( TSE,CCF - A类期刊 )全文录用。
上述两项工作是 iSE 团队在基于大语言模型的单元测试领域的最新进展,是对前期工作《 A Large-scale Empirical Study on Fine-tuning Large Language Models for Unit Testing 》( ISSTA 2025,CCF - A类会议 )和《 Exploring Automated Assertion Generation via Large Language Models 》( TOSEM 2025,CCF - A类期刊 )的深入拓展与延伸。该系列研究得到了国家自然科学基金及 CCF - 华为胡杨林基金软件工程专项的资助。基于该系列研究进一步实现的智能化单元测试生成方法,已集成至华为开发者工具并投入使用,同时荣获华为云年度优秀项目( 全年仅五项 )。
张犬俊博士已于 2024 年博士毕业,拟任南京理工大学计算机学院青年教授,其主要研究方向为智能化软件测试和程序修复。张犬俊博士的研究成果先后全文发表在 TSE、TDSC、TOSEM、ISSTA、ICSE、ASE、ACL、FSE 等 CCF A 类会议和期刊。张犬俊教授将继续完善基于大语言模型的软件测试和修复技术研究,推动开源社区工具链发展,形成系统性的学术研究和工业应用实践。