Optimizing Case-Based Reasoning System for Functional Test Script Generation with Large Language Models
作者: Siyuan Guo, Huiwu Liu, Xiaolong Chen, Yuming Xie, Liang Zhang, Tao Han, Hechang Chen, Yi Chang, Jun Wang
分类: cs.SE, cs.CL, cs.LG
发布日期: 2025-03-26 (更新: 2025-05-27)
备注: Accepted by KDD 2025 (ADS Track)
💡 一句话要点
提出Re4优化的CBR系统,利用大语言模型生成功能测试脚本。
🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture) 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 功能测试脚本生成 大型语言模型 案例推理 检索微调 强化学习 软件测试自动化 Re4优化
📋 核心要点
- 现有功能测试脚本生成方法难以适应软件代码结构的动态变化,导致测试脚本质量不高。
- 提出Re4优化的CBR系统,通过检索、重用、修改和保留测试案例,指导LLM生成更准确的测试脚本。
- 实验表明,Re4方法显著提升了测试脚本生成的质量,并有效缓解了LLM的重复生成问题。
📝 摘要(中文)
本文探讨了利用大型语言模型(LLMs)生成功能测试脚本的潜力,这需要理解目标软件动态演进的代码结构。为此,我们提出了一个基于案例推理(CBR)的系统,该系统利用一个4R循环(即检索、重用、修改和保留),维护并利用一个包含测试意图描述和相应测试脚本的案例库,以促进LLMs生成测试脚本。为了进一步改善用户体验,我们为CBR系统引入了一种优化方法Re4,包括基于重排序的检索微调和强化重用微调。具体来说,我们首先识别具有高语义和脚本相似性的正例,为微调检索器模型提供可靠的伪标签,而无需昂贵的标注。然后,我们应用监督微调,然后是强化学习微调阶段,使LLMs与我们的生产场景对齐,确保忠实地重用检索到的案例。在华为数通的两个产品开发单元上进行的大量实验结果表明,所提出的CBR+Re4的优越性。值得注意的是,我们还表明,所提出的Re4方法可以帮助缓解LLMs的重复生成问题。
🔬 方法详解
问题定义:论文旨在解决利用大型语言模型生成功能测试脚本时,如何有效利用历史测试案例,并适应目标软件代码结构动态变化的问题。现有方法通常难以保证生成测试脚本的准确性和可靠性,并且大型语言模型容易产生重复性的内容。
核心思路:论文的核心思路是构建一个基于案例推理(CBR)的系统,并利用Re4方法对其进行优化。CBR系统通过维护一个包含测试意图描述和对应测试脚本的案例库,使得LLM可以检索并重用相似的案例,从而提高生成测试脚本的质量和效率。Re4方法则进一步优化了检索和重用过程,使得LLM能够更好地适应实际生产场景。
技术框架:整体框架包含以下几个主要模块:1) 案例库:存储测试意图描述和对应的测试脚本。2) 检索模块:根据输入的测试意图,从案例库中检索相似的案例。3) 重用模块:利用检索到的案例,指导LLM生成新的测试脚本。4) 修改模块:对生成的测试脚本进行修改和完善。5) 保留模块:将新的测试案例添加到案例库中。Re4方法主要作用于检索和重用模块,通过微调来提升性能。
关键创新:论文的关键创新在于Re4优化方法,它包含两个阶段:1) 基于重排序的检索微调:利用高语义和脚本相似性的正例,生成伪标签,微调检索模型,提高检索准确率。2) 强化重用微调:通过监督微调和强化学习微调,使LLM更好地适应生产场景,确保检索到的案例能够被忠实地重用。Re4方法无需大量人工标注,即可有效提升CBR系统的性能。
关键设计:在检索微调阶段,使用语义相似度和脚本相似度来筛选正例,并使用这些正例来微调检索模型。在强化重用微调阶段,首先使用监督学习微调LLM,然后使用强化学习进一步优化LLM的生成策略,使其更好地适应实际生产场景。具体的强化学习奖励函数设计未知。
🖼️ 关键图片
📊 实验亮点
实验结果表明,提出的CBR+Re4方法在华为数通的两个产品开发单元上表现出优越性。具体性能提升数据未知,但论文强调Re4方法能够有效缓解LLM的重复生成问题,并提升测试脚本生成的整体质量。通过与基线方法对比,验证了Re4在实际应用中的有效性。
🎯 应用场景
该研究成果可应用于软件测试自动化领域,尤其是在需要频繁生成功能测试脚本的场景下。通过利用历史测试案例和大型语言模型,可以显著提高测试脚本生成的效率和质量,降低测试成本,并加速软件开发周期。该方法具有广泛的应用前景,可以应用于各种类型的软件测试,例如单元测试、集成测试和系统测试。
📄 摘要(原文)
In this work, we explore the potential of large language models (LLMs) for generating functional test scripts, which necessitates understanding the dynamically evolving code structure of the target software. To achieve this, we propose a case-based reasoning (CBR) system utilizing a 4R cycle (i.e., retrieve, reuse, revise, and retain), which maintains and leverages a case bank of test intent descriptions and corresponding test scripts to facilitate LLMs for test script generation. To improve user experience further, we introduce Re4, an optimization method for the CBR system, comprising reranking-based retrieval finetuning and reinforced reuse finetuning. Specifically, we first identify positive examples with high semantic and script similarity, providing reliable pseudo-labels for finetuning the retriever model without costly labeling. Then, we apply supervised finetuning, followed by a reinforcement learning finetuning stage, to align LLMs with our production scenarios, ensuring the faithful reuse of retrieved cases. Extensive experimental results on two product development units from Huawei Datacom demonstrate the superiority of the proposed CBR+Re4. Notably, we also show that the proposed Re4 method can help alleviate the repetitive generation issues with LLMs.