TESTEVAL:用大模型生成测试用例的新标杆
“ 在软件开发中测试是保证代码质量的核心环节。生成覆盖率高、符合预期逻辑的测试用例既能发现潜在bug也能提升软件可靠性。然而传统测试用例生成方法不仅耗时还需要复杂分析自动化难度大。近年来LLM在代码理解与生成方面表现出色但它们在自动生成测试用例、覆盖特定代码路径上的能力尚不清楚。TESTEVAL的出现正是为了系统评估LLMs在这一关键任务上的性能。 ”论文标题TESTEVAL: Benchmarking Large Language Models for Test Case Generation发表时间 Findings of the Association for Computational Linguistics:NAACL2025作者单位 阿尔伯塔大学东京大学等开源代码https://github.com/LLM4SoftwareTesting/TestEval01—方法介绍论文提出了 TESTEVAL 基准框架通过三个任务评估 LLM 的测试能力① 整体覆盖生成尽可能覆盖程序大部分语句的测试用例② 目标行/分支覆盖生成能覆盖特定语句或分支的测试用例③ 目标路径覆盖生成能执行指定路径的测试用例。图 1. TESTEVAL整体框架小结TESTEVAL 强调 LLM 理解程序逻辑的能力而不仅仅是生成可运行代码。02—关键机制全新测试用例基准首次系统评估 LLMs 在覆盖率导向的测试用例生成能力多任务设计兼顾整体覆盖、特定分支及路径覆盖多模型对比涵盖 17 个商业与开源 LLM展示差异化能力真实控制流复杂度数据集平均环路复杂度 13.35高于许多现有数据集。模块设计思路作用任务设计整体覆盖、特定分支/路径覆盖考察 LLM 的逻辑理解与测试用例生成能力数据集构建210 个 LeetCode Python 程序提供可控、复杂度适中的测试环境LLM 评估17 个流行商业及开源模型系统对比 LLM 在不同覆盖任务上的性能指标计算语法、执行、断言正确性及覆盖率保证评价的全面性与科学性小结ESTEVAL 不只是生成测试用例更是考察 LLM 对程序执行路径和分支逻辑的理解。03—实验结果为了构建基准数据集首先收集了LeetCodehttps://github.com/walkccc/LeetCode的解题程序。LeetCode是一个在线平台用于评估程序员的编程能力因为它对每个编程任务都有明确的任务描述和输入限制。作者首先筛选出截至2024年4月的所有公开任务。随后从GitHub仓库1中收集了每个任务的Python解决方案共收集了3123个测试程序。表1显示了整体覆盖任务的评估结果。实验中对每个模型进行20轮查询N20为每个待测程序生成测试用例每轮一个测试用例。进一步使用covk来衡量每个大型语言模型LLM生成的测试用例的多样性。表1. 整体覆盖任务的结果表2和表3分别展示了目标行覆盖率和分支覆盖率的评估结果。对于每个目标LLM还通过排除文本提示中关于目标行/分支的信息来设置基线。对于每个测试程序复用为整体覆盖任务生成的首个测试用例并测量其在目标行/分支上的覆盖准确性。表2. 目标行覆盖结果表3. 目标分支覆盖结果图4展示了目标路径覆盖任务的结果。实验采用了与目标行/分支覆盖任务中类似的基线方法即在文本提示中排除了目标路径。表4 目标路径覆盖结果小结TESTEVAL是一个新型基准数据集目标覆盖任务能够评估LLM在理解复杂程序逻辑和执行路径方面的能力以及根据测试者的意图生成测试用例的能力。实验发现尽管LLM通过生成多样化的测试用例可以实现较高的整体覆盖率但要生成覆盖特定元素的测试用例仍然具有挑战性。 总结TESTEVAL 为 LLM 测试用例生成提供了系统评价框架与公开数据集使研究者能够科学衡量模型能力。未来提升 LLM 对程序执行路径和逻辑的理解可能是突破自动化测试的关键。 欢迎留言讨论你认为 LLMs 是否能够在不依赖传统测试工具的情况下可靠地生成高覆盖率测试用例对于工业级项目覆盖特定路径的自动化生成有多大可行性 点赞 收藏 分享你的支持是我们持续解析高水平软件安全论文的最大动力

相关新闻

嵌入式GUI字体技术:XBF与TTF原理、选型与实战优化

嵌入式GUI字体技术:XBF与TTF原理、选型与实战优化

1. 嵌入式GUI字体技术:从原理到实战的深度解析在嵌入式图形界面开发中,字体显示是决定用户体验好坏的关键一环,却也是最容易被忽视的“内存杀手”和“性能瓶颈”。你是否遇到过这样的困境:产品需要显示多国语言,但内置…

2026/6/18 14:15:18阅读更多 →
匹克球赛事自动运镜跟拍相机多少钱?看完不踩坑

匹克球赛事自动运镜跟拍相机多少钱?看完不踩坑

经常打匹克球、带队参赛或者陪孩子打球的朋友,大概率都遇到过同一个难题:精彩的扣杀、网前小球、逆风翻盘的关键回合,总是拍不清楚、拍不全、直接漏拍。不少人都在问,靠谱的匹克球赛事自动运镜跟拍相机到底多少钱?有没…

2026/6/18 14:15:18阅读更多 →
魔兽争霸III终极优化指南:WarcraftHelper让你的经典游戏焕然一新

魔兽争霸III终极优化指南:WarcraftHelper让你的经典游戏焕然一新

魔兽争霸III终极优化指南:WarcraftHelper让你的经典游戏焕然一新 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸III在现代…

2026/6/18 14:10:15阅读更多 →
DeepSeek-V4国产大模型架构解析:DSA稀疏注意力与昇腾AI协同优化

DeepSeek-V4国产大模型架构解析:DSA稀疏注意力与昇腾AI协同优化

1. 这不是一次普通升级:DeepSeek-V4背后的真实技术水位与落地逻辑今天上午十点零七分,我刷新DeepSeek官网时页面右上角弹出了那个熟悉的蓝色小徽章——“V4已上线”。没有发布会直播,没有倒计时海报,只有一行简洁的系统提示。但就…

2026/6/18 15:31:00阅读更多 →
2026全铝大门选购指南:避开这3个坑

2026全铝大门选购指南:避开这3个坑

全铝大门作为高端入户门的代表,凭借耐腐蚀、轻量化、环保可回收的特性,近年来在别墅、大宅、乡村自建房市场快速崛起。然而,随着市场热度攀升,产品鱼龙混杂、技术宣传模糊、低价陷阱频现等问题也让消费者头疼。本文从技术原理与行…

2026/6/18 15:31:00阅读更多 →
飞思卡尔TWRPI-ROTARY旋转触摸板:电容传感原理与嵌入式HMI实战

飞思卡尔TWRPI-ROTARY旋转触摸板:电容传感原理与嵌入式HMI实战

1. 项目概述与核心价值 如果你正在寻找一种既能提供精确旋转控制,又能兼顾现代触摸交互体验的输入方案,那么飞思卡尔(Freescale,现为NXP的一部分)Tower System的TWRPI-ROTARY旋转触摸板插件,绝对是一个值得…

2026/6/18 15:31:00阅读更多 →
通用视觉工具模块-打散模块-3-后端实现

通用视觉工具模块-打散模块-3-后端实现

通用视觉工具模块-打散模块-3-后端实现 一 执行和确认命令/// <summary>/// 执行命令/// </summary>[NonSerialized]private CommandBase _ExecuteCommand;public CommandBase ExecuteCommand{get{if (_ExecuteCommand null){_ExecuteCommand new CommandBase((o…

2026/6/18 15:31:00阅读更多 →
蒙特卡洛方法计算状态价值:从迷宫实战理解强化学习基础

蒙特卡洛方法计算状态价值:从迷宫实战理解强化学习基础

1. 项目概述&#xff1a;用蒙特卡洛方法亲手算出状态价值 你有没有试过站在迷宫入口&#xff0c;盯着那个小机器人发呆&#xff0c;心里琢磨&#xff1a;“它到底怎么知道自己该往哪走&#xff1f;它脑子里那张‘价值地图’&#xff0c;到底是怎么一笔一笔画出来的&#xff1f;…

2026/6/18 15:31:00阅读更多 →
AI能不能在十年内替代教师?一个研发总监的架构师视角拆解

AI能不能在十年内替代教师?一个研发总监的架构师视角拆解

文章目录前言一、先把问题翻译成系统改造问题二、AI 行业自己都在烧不动钱1. 资本开支正在失控2. 推理成本正在吃掉收入3. 商业模式还在靠融资续命三、Scaling Law 撞墙&#xff1a;模型变聪明的速度在变慢1. 数据撞墙&#xff1a;合成数据救不了模型2. 经济学天花板&#xff0…

2026/6/18 15:25:59阅读更多 →
ZigBee HA智能家居开发实战:从集群模型到NXP JN516x代码实现

ZigBee HA智能家居开发实战:从集群模型到NXP JN516x代码实现

1. ZigBee HA&#xff1a;智能家居的“通用语言”与开发基石如果你正在或计划踏入智能家居设备开发领域&#xff0c;尤其是基于ZigBee协议&#xff0c;那么“ZigBee Home Automation”这个名词你一定不陌生。它不仅仅是ZigBee联盟定义的一套应用层规范&#xff0c;更是确保不同…

2026/6/18 0:00:24阅读更多 →
Java毕设选题推荐:基于 Spring Boot 的个人随笔博客运维管理系统的设计与实现 基于 Spring Boot 的用户原创博客分享社区【附源码、mysql、文档、调试+代码讲解+全bao等】

Java毕设选题推荐:基于 Spring Boot 的个人随笔博客运维管理系统的设计与实现 基于 Spring Boot 的用户原创博客分享社区【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

2026/6/18 0:00:24阅读更多 →
JN517x嵌入式开发实战:看门狗、脉冲计数器与I2C接口的深度解析与避坑指南

JN517x嵌入式开发实战:看门狗、脉冲计数器与I2C接口的深度解析与避坑指南

1. 项目概述在嵌入式开发领域&#xff0c;尤其是基于NXP JN517x这类无线微控制器的项目中&#xff0c;系统稳定性和与外设的可靠交互是两大核心挑战。前者关乎产品能否在无人值守的复杂环境中长期运行&#xff0c;后者则决定了设备能否准确感知世界并与其他芯片“对话”。JN517…

2026/6/18 0:00:24阅读更多 →