2025-03-24-中智凯灵_北京_科技-基于大模型的测试断言生成技术_79页_9mb
报告摘要
基于大模型的测试断言生成技术
1. 研究背景
- 单元测试和测试断言的定义。
- 大语言模型(LLMs)在单元测试生成中的优势和现有方法的局限性,如生成无效测试用例、缺乏反馈和重复抑制问题。
- 大模型在测试生成与断言生成中的挑战:语义理解不充分、效率低下的特定问题。
2. 单元测试生成和修复
- TestART方法:通过提示引导和动态反馈生成和修复初始测试。
- 生成阶段:代码预处理、变量提取,结合提示设计生成测试用例。
- 修复阶段:使用模板修复编译/运行时错误,并通过大模型辅助修复,提升通过率。
- 实验结果:
- 在Defects4J和UTBench上测试,TestART显著提升编译/运行通过率(最高61.92%)、行覆盖率(48.82%)和分支覆盖率(47.95%)。
- 修复模块贡献最大,通过率提升28.64%,覆盖率提升19%以上。
3. 单元测试的断言题目
- 断言生成的挑战:手动编写耗时、现有自动方法缺乏语义理解与反馈。
- 解决方案:
- RetriGen:混合检索(基于token和Embedding)增强LLMs断言生成,准确率提升至57.66%。
- AG-RAG:检索-生成协同优化,全面提升断言预测准确率和CodeBLEU得分。
4. 应用验证
- TestART工具适用场景:Java和开源项目。
- 开源项目(如Defects4J)实验:
- 生成+修复后的覆盖率:从34.6%提升至61.92%,通过测试行覆盖率从74.72%提升至95.67%。
- UTBench(华为内部):
同样实现显著提升,证明工具在实际工程中的有效性。
5. 总结与展望
总结
- LLMs在单元测试生成和断言生成中表现优异,具备实用潜力。
- 近期方法(如TestART、RetriGen、AG-RAG)显著提升了测试覆盖率和断言准确性。
- CodeT5在多个数据集上表现最佳,联合优化策略和混合检索是提升效果关键。
展望
- 模型优化:改进LLMs适应测试任务。
- 增强集成:探索长序列处理、多语言适配。
- 自动生成化:构建runtime动态反馈与修复回路。
展开完整摘要
试读结束,高清完整版pdf/doc/ppt,请点下载