单元测试用于检验软件单一模块的功能是否正确,是软件开发过程中的重要步骤,可以及时发现代码中的缺陷,提升软件的质量和可信度.由于手动编写单元测试费时费力,经常遗漏覆盖重要的代码逻辑.为此,研究者提出单元测试用例自动生成技术.近...单元测试用于检验软件单一模块的功能是否正确,是软件开发过程中的重要步骤,可以及时发现代码中的缺陷,提升软件的质量和可信度.由于手动编写单元测试费时费力,经常遗漏覆盖重要的代码逻辑.为此,研究者提出单元测试用例自动生成技术.近来,预训练大语言模型(large language models,LLM)已经广泛应用于代码生成相关任务.然而,当前在重要的系统级编程语言C上,还没有相关工作.为了填补这一空白,本文面向C程序设计并实现了基于LLM的单元测试用例生成方法LLM4CUTCG.该方法结合LLM多智能体交互和程序分析技术,客服了LLM内在问题.为了验证方法效果,收集了125个C语言目标程序,并针对这些程序生成测试用例.实验结果表明,LLM4CUTCG生成的测试行覆盖率为91.71%,测试预言正确率为50.05%.其覆盖率优于传统方法符号执行.展开更多
测试数据自动生成方法是软件测试领域研究的热点。基于遗传算法的启发式搜索算法是一种路径覆盖生成测试数据的方法。文中提出了一种基于自适应随机测试(Adaptive Random Testing,ART)算法更新种群的方法,将ART融入遗传算法,优化选择操...测试数据自动生成方法是软件测试领域研究的热点。基于遗传算法的启发式搜索算法是一种路径覆盖生成测试数据的方法。文中提出了一种基于自适应随机测试(Adaptive Random Testing,ART)算法更新种群的方法,将ART融入遗传算法,优化选择操作,动态更新种群,从而增加种群进化过程中的个体多样性,提高了收敛速度,有效地减少了陷入局部最优。实验结果显示,与传统遗传算法生成测试数据的方法相比,改进的算法明显提高了路径覆盖率,减少了种群平均进化代数。展开更多
文摘单元测试用于检验软件单一模块的功能是否正确,是软件开发过程中的重要步骤,可以及时发现代码中的缺陷,提升软件的质量和可信度.由于手动编写单元测试费时费力,经常遗漏覆盖重要的代码逻辑.为此,研究者提出单元测试用例自动生成技术.近来,预训练大语言模型(large language models,LLM)已经广泛应用于代码生成相关任务.然而,当前在重要的系统级编程语言C上,还没有相关工作.为了填补这一空白,本文面向C程序设计并实现了基于LLM的单元测试用例生成方法LLM4CUTCG.该方法结合LLM多智能体交互和程序分析技术,客服了LLM内在问题.为了验证方法效果,收集了125个C语言目标程序,并针对这些程序生成测试用例.实验结果表明,LLM4CUTCG生成的测试行覆盖率为91.71%,测试预言正确率为50.05%.其覆盖率优于传统方法符号执行.
文摘测试数据自动生成方法是软件测试领域研究的热点。基于遗传算法的启发式搜索算法是一种路径覆盖生成测试数据的方法。文中提出了一种基于自适应随机测试(Adaptive Random Testing,ART)算法更新种群的方法,将ART融入遗传算法,优化选择操作,动态更新种群,从而增加种群进化过程中的个体多样性,提高了收敛速度,有效地减少了陷入局部最优。实验结果显示,与传统遗传算法生成测试数据的方法相比,改进的算法明显提高了路径覆盖率,减少了种群平均进化代数。