【AI赋能万物】一文综述:大模型在软件测试领域的探索
要说软件测试这行当最近的变量,大模型绝对算是头一个。这玩意儿不用多介绍,它那理解和生成能力,简直就是给自动化测试装上了“涡轮增压”。
过去,测试团队面临的困境很现实:系统越来越复杂,传统方法要么覆盖不全,要么自动化的门槛高得吓人。但现在,大模型(LLMs)的出现,正在把“测试用例生成”、“缺陷分析”这些活儿,变得前所未有的高效甚至有想象力。
接下来就看看这篇综述论文里都梳理出了哪些干货。
1. 论文的核心内容与方法
1.1 怎么“淘”到这102篇论文的?
这篇综述总共分析了102项相关研究。别小看这个数字,为了确保代表性,他们的筛选流程相当系统化:
自动搜索
手动搜索
纳入和排除标准
质量评估
滚雪球搜索
经过这几轮筛选,从初筛的14,623篇论文中,最终锁定了这102篇。有意思的是,其中47%发表在软件工程领域,2%在AI领域,5%在程序分析或安全领域,还有46%甚至还没在arXiv上正式发表过——说明这个方向正热,很多工作还在飞奔。

1.2 从软件测试角度来看:大模型具体干了什么?
软件测试的完整流程大家都很熟悉:制定计划、设计、准备用例、执行、出报告、修复、回归。论文总结出,目前大模型主要集中在三个阶段“发力”:
测试用例生成
产出测试报告(Bug分析)
Bug修复与回归测试
下面就来拆解一下,大模型在这三个环节里到底怎么工作的。
1.2.1 测试用例生成
单元测试
传统单元测试生成靠搜索、约束或随机,核心目标是“覆盖率”。而大模型介入后,玩法变多了:
- 直接拿大模型来训,让它专门生成单元测试。
预训练和微调:
- 设计巧妙的提示词,让大模型“理解”需求并输出测试。
提示工程:
- 把API接口描述等外部文档喂给大模型,让它结合上下文生成测试用例。
文档辅助:
- 先用传统方法生成一轮,再用大模型去补那些覆盖不充分的边边角角。
混合策略:
不过,论文里也诚实地说了一句:目前大模型生成的单元测试用例,性能还比较低,有待进一步研究。
测试断言
测试断言是关于“输出对不对”的信息。大部分研究都集中在单元测试的断言生成上。目前最优的匹配率能达到76%。具体方法包括用源代码或断言数据集微调LLM,或者通过少样本提示(比如自动检索相似代码)来提高匹配率。
系统测试输入
这部分是利用大模型自动创建系统测试、功能测试或模块测试的输入。这里可以拆得更细:
- 不同软件吃的“物料”不一样。移动应用需要文本或操作组合,深度学习库则需要覆盖多样化API的程序。
软件类型方面的输入生成:
- 大模型主要做三件事:根据GUI生成文本输入、按钮动作,以及生成有效的测试脚本(包括点击顺序、操作路径)。
移动应用:
- 这里头约束更严,既要满足Python语法语义,又要满足API的输入输出形状。传统方法很难模拟出多样化的API序列,而大模型可以。后续研究甚至利用**历史漏洞**来触发程序中的代码,提升漏洞检测性能。
深度学习库:
- 主要用于增强传统测试技术,比如通用或特定软件的模糊测试、GUI测试、渗透测试等。
测试技术方面的输入生成:
- 除了把代码或软件当输入,最有启发的形式之一——通过**自然语言描述**,让大模型生成相应的测试输入。这直接降低了测试门槛。
输入输出方面的输入生成:

1.2.2 Bug分析
大模型在Bug分析里的角色更像一个“情报分析师”:
- 针对缺陷报告生成相关问题答案,帮助分类。
- 将缺陷组件分类转化为多分类与生成任务,提升分类性能。
- 利用零样本设置,直接从缺陷报告里提取关键信息,检测重复报告。
- 通过学习大量修复提交,生成自然语言解释,解释软件缺陷为何发生。
- 自动生成缺陷标题,帮开发者省去写标题的烦恼。
1.2.3 调试
这里强调的是“定位问题”。大模型在调试上可以干这几件事:
- 覆盖从定位到修复的全过程。
总体调试:
- 直奔问题源头。
Bug定位:
- 告诉你怎么把Bug再搞出来。
Bug复现:
- 针对每个错误生成独特的自然语言解释。
错误解释:
1.2.4 程序修复
这大概是最直观的应用了。大模型凭借强大的NLP能力来处理和分析源代码,修复错误成了天然应用。方向包括:
- 修复单行错误(已知错误)。
- 修复多行错误(已知错误)。
- 结合静态代码分析器,边检测边修复。
- 特定Bug修复:比如通过自然语言描述生成补丁、修复性能问题、修复Rust程序等。

2. 总结
简单来说,这篇论文就像一张“大模型 × 软件测试”的全景地图。它并不是在教你怎么做,而是清晰地告诉你在哪些方向上,研究者和工程师们正在探索。从测试用例生成到Bug分析、调试再到修复,每个环节都有大模型的身影,而且很多方向才刚刚开始。
如果读者对某个方向来了兴趣,顺着论文里参考文献的线索去追,就能找到那些具体的实现方法和实验结果。这大概就是一篇优质综述的价值所在——不是给答案,而是给问题,让你知道该往哪儿看。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名