Page 85 - 《软件学报》2025年第4期
P. 85
香佳宏 等: 大模型在软件缺陷检测与修复的应用发展综述 1491
言, 检索的关键字包括“LLM”“large language model”“pre-trained language model”“large model”“language model”等,
以及“ChatGPT”“CodeX”等模型名称. 同时, 在标题、摘要、关键词和索引中进行检索. 我们将搜索范围限定于中
国计算机学会 (CCF) 推荐软件工程和人工智能领域的顶级国际学术会议和期刊列表, 有 ICSE、ISSTA、ASE、
FSE/ESEC、TOSEM、TSE、OOPSLA 等, 从而得到发布在顶级会议和期刊的, 且与软件工程任务相关的文献共
311 篇.
(2) 对筛选出来的文献进行归纳总结、分类和人工审查, 剔除与软件缺陷检测与修复无关的文献, 如代码生
成. 经过此步骤, 共获得 20 篇基于大语言模型的软件缺陷研究文章. 进一步对文献内容进行细分, 发现软件缺陷检
测方面的文献主要集中于深度学习库缺陷检测 (2 篇)、GUI 自动化测试 (3 篇) 以及测试用例自动生成 (4 篇) 这 3
个领域, 缺陷修复方面的文献主要集中于软件缺陷自动修复 (6 篇). 部分基于大模型的系统测试工作 [27−29] 由于文
献数量较少, 所处领域较为分散, 因此并未包含在本综述调研的基于大语言模型的软件缺陷研究之内.
(3) 随后, 本综述继续在深度学习库缺陷检测、GUI 自动化测试、测试用例自动生成和软件缺陷自动修复这
4 个领域搜索相关文献. 我们依然将搜索范围限定于中国计算机学会 (CCF) 推荐软件工程和人工智能领域的顶级
国际学术会议和期刊列表. 对于深度学习库缺陷检测相关文献, 使用了“deep learning library testing”“deep learning
library bug”“deep learning API testing”“deep learning library fuzzing”等关键词, 得到顶级会议和期刊的相关文献共
159 篇. 对于 GUI 自动化测试相关文献, 使用了“GUI test”“Mobile GUI Testing”“Android APP Testing”“user
interface test generation”等关键词, 得到顶级会议和期刊的相关文献共 264 篇. 对于测试用例自动生成相关文献, 使
用了“unit test case generation”“unit testing”“test oracle generation”等关键词, 得到顶级会议和期刊的相关文献共 1 824
篇. 对于软件缺陷自动修复相关文献, 使用了“automated program repair”“automated fix”“patch generation”“bug
fixing”等关键词, 得到顶级会议和期刊的相关文献共 1 272 篇.
(4) 之后, 根据文章长度、与目标领域的相关性、在之后工作中的被引用次数等指标对这些文献进行人工筛
选. 至此, 收集了深度学习库的缺陷检测 (19 篇)、GUI 自动化测试 (54 篇)、测试用例的自动生成 (62 篇) 以及缺
陷自动修复 (67 篇) 这 4 个领域共计 202 篇论文, 其中基于大模型的工作 44 篇. 图 1 和图 2 展示自 2004–2023 年
本文收集论文发表时间与数量的分布情况, 其中包含会议论文 162 篇, 期刊论文 40 篇. 我们进一步发现, 2021 年
后基于大模型的工作迅速增加, 仅在 2023 年便有 51 篇论文. 与此同时, 考虑到近期在软件工程领域被广泛研究应
年方才提出, 部分研究者可能于近日完成其工作并发表在
用的大模型 CodeX 和 ChatGPT 于 2021 年和 2022 arXiv
2022
上. 为追踪学界最新的研究进展, 本综述收集了提交在 arXiv 上的 45 篇工作. 我们根据 Wohlin 提出的文献搜索方
法 [30] , 根据已搜集到文献的参考文献继续搜集文献, 以避免遗漏相关文献.
60
50
60
会议论文 期刊论文 40
50 发表论文数量 30
发表论文数量 30 20
40
10
20
10 0 ASE TSE CCS CHI FCS ESE JSS SCP SPE
0 ICSE ESEC/FSE ISSTA OOPSLA JMLR ICLR ICSME ICML POPL UIST ASPLOS ICSOC ISSRE NeurIPS PLDI SANER STVR Others
2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2023
图 1 不同年份论文发表分布 图 2 不同会议或期刊论文发表分布
事实上, 本文研究的 4 个软件工程领域历经多年, 积累了大量的工作和技术, 并且已经有综述文章对这些论文
进行了翔实的调研, 例如 2021 年姜佳君等人 [31] 在缺陷自动修复领域的综述中收集了 94 篇高水平论文进行了详
细的分析和总结. 而且本文涉及 4 个领域, 也无法将每一个领域的研究工作全部完整进行分析阐述, 因而我们将重