基于数据驱动的单元测试代码自动化生成技术存在覆盖率低及可读性差的问题,难以应对增长的测试需求。最近,大语言模型(Large Language Model,LLM)在代码生成任务中显示了极大的潜力,然而由于代码数据的功能风格和编码风格差异,导致...
详细信息
基于数据驱动的单元测试代码自动化生成技术存在覆盖率低及可读性差的问题,难以应对增长的测试需求。最近,大语言模型(Large Language Model,LLM)在代码生成任务中显示了极大的潜力,然而由于代码数据的功能风格和编码风格差异,导致LLM面临灾难性遗忘和资源受限的两个挑战。为解决这些问题,提出将编码风格和功能风格同步迁移微调的思想,并开发了一种高效的大模型微调训练方法用于单元测试用例生成。首先,利用广泛使用的指令数据集对LLM进行指令对齐,并对指令集按任务类型分类,提取并存储具有任务特征的权重增量;其次,设计了一个自适应风格提取模块,包含抗噪声干扰学习和编码风格回溯学习,以应对不同的代码编写风格;最后,在目标域分别对功能风格增量和编码风格增量进行联合训练,实现对目标域低资源情况下的高效适配和微调。在SF110 Corpus of Classes数据集上的测试用例生成实验结果表明,所提方法的结果均优于对比方法,与主流代码生成大模型Codex,Code Llama和DeepSeek-Coder相比,在编译率、分支覆盖率和行覆盖率上分别提高了0.76%/3.1%/4.1%,43.5%/1.0%/6.5%和33.8%/17.2%/15.5%,验证了所提方法在代码生成任务上方法的优越性。
暂无评论