论文

PPO 引导的代理管道用于自适应提示选择和测试用例生成

PPO guided Agentic Pipeline for Adaptive Prompt Selection and Test Case Generation

摘要

开发能够彻底运行大型软件系统的有效测试用例本质上是困难的,特别是当此类系统具有大量、复杂且深度嵌套的源代码时。在这项工作中,我们提出了一种使用强化学习驱动的代理框架生成测试用例的新颖方法,其中近端策略优化(PPO)与 LLM 引擎相结合,以指导测试生成期间的提示选择。我们的方法包括两个阶段。在第一阶段,ToT 引导的优化代理通过删除冗余来分区并最小化源代码,而不改变源代码的功能行为。在第二阶段,基于输入的表示源代码复杂度指标和实时覆盖指标的11维状态向量,训练基于PPO的策略网络来解决在边界值分析、随机模糊等八种不同提示技术中选择提示的问题,以引导LLM引擎探索程序中未访问的路径。 PPO 代理根据线路和分支覆盖范围的增加、对未探索的分支的惩罚以及减少源代码长度的奖励的组合来获得奖励。从对 20 个基准程序进行的实验来看,很明显,对于从 BOUND~1 到 BOUND~2000 的各种循环边界值,所提出的方法 PPO-LLM 在几乎所有情况下的分支和线路覆盖率方面均优于 CBMC、kS-LLM 和 kS-LLM++。而在 BOUND~1 时,在 PALS 套件上使用 PPO-LLM 的分支覆盖率为 100\%,相比之下,使用 kS-LLM++ 的分支覆盖率约为 86.8\%。这证实了 PPO 驱动的自适应提示选择在 PALS 类型的程序上明显优于静态提示策略。