搜索更多内容
用大模型帮程序员找Bug,中科院剖析102篇论文总结出这些方案
原文来源:量子位
图片来源:由无界 ai生成
中科院对“找bug”下手了,一口气总结了n种方案!
法宝就是大模型。
大模型由于其卓越的自然语言理解、推理等能力,已经被应用于各种场景,取得了前所未有的效果。
类似的,软件测试领域也受益于其强大的能力,能够帮助生成逼真且多样化测试输入,模拟各种异常,加速缺陷的发现,提升测试效率,进行潜在提高软件质量。
来自中国科学院软件研究所、澳大利亚monash大学、加拿大york大学的研究团队收集了截止到2023年10月30日发表的102篇相关论文,并分别从软件测试和大模型视角进行了全面分析,总结出一篇关于大模型在软件测试领域应用的全面综述。
(论文地址见文末)
研究发现一览图是这样婶儿的:
详细内容我们接着往下看。
首先,研究人员从软件测试的角度进行了分析,并将收集到的研究工作按照测试任务进行组织。
如下图所示,大模型的应用主要集中在软件测试生命周期的后段,用于测试用例准备(包括单元测试用例生成、测试预言生成、系统级测试输入生成)、测试报告分析、程序调试和修复等任务。然而,在测试生命周期的早期任务(如测试需求、测试计划等)上,目前还没有使用大语言模型的相关工作。
进一步地,研究人员还对大模型在各种软件测试任务上的应用进行了详细分析。
以单元测试用例生成为例,单元测试用例生成任务主要涉及为独立的软件或组件单元编写测试用例,以确保它们的正确性。传统的基于搜索、约束或随机的生成技术存在着测试用例覆盖率弱或可读性差的问题。
引入大模型后,相对于传统方法,大模型不仅能够更好地理解领域知识以生成更准确的测试用例,而且还可以理解软件项目和代码上下文的信息,从而生成更全面的测试用例。
对于系统级测试输入,模糊测试作为常用技术,主要围绕着生成无效、意外或随机的测试输入来达到测试的目的,研究人员也详细分析了大模型如何改进传统模糊测试技术。
例如有研究提出通用模糊测试框架fuzz4all、chatfuzz等,也有研究专注于特定软件开发基于大模型的模糊测试技术,包括深度学习库、编译器、求解器、移动应用、信息物理系统等。
这些研究的一个关注重点是生成多样化的测试输入,以实现更高的覆盖率,通常通过将变异技术与基于大模型的生成相结合来实现;另一个关注重点是生成可以更早触发错误的测试输入,常见做法是收集历史上触发错误的程序来对大模型进行微调或将其作为演示程序在查询大模型时使用。
论文中对于各种研究的技术思路有更为详细的介绍和比较。
从大模型的视角来看
随后,研究人员再从大模型的视角出发,分析了软件测试任务中选用的大模型,并进一步介绍了如何让大模型适应测试任务,包括提示工程技术、大模型的输入以及与传统测试技术的结合使用。
在所选用的大模型方面,如下图所示,最常用的前三种大模型分别是chatgpt、codex和codet5...
查看详情>>与“用大模型帮程序员找Bug,中科院剖析102篇论文总结出这些方案”相关的文章
中科方案推荐
依据企业特定阶段的工作目标,我们需要起草一份详细的工作方案,那么该如何制定行动计划呢?特意为你们准备的“中科方案”,恭候您的观看与收藏!
一、活动背景
水是幼儿每天都能接触到的、熟悉的、喜欢的东西,我就抓住这一教育契机,注意创设操作环境,提供丰富的材料,让幼儿通过眼、脑、手等多种感官协调活动,去发现问题,解决问题。这样是幼儿变被动学习者为主动学习者、探索者,从而萌发爱科学的情感。
二、过程实录
(一)活动目标:
1.在尝试活动中,了解水的特性。
2.能仔细观察,乐于尝试,懂得保护水。
(二)活动准备:
1.两个金鱼缸(一缸水内有一条金鱼,一缸米内有塑料彩球),一玻璃杯清水,每组一份菊花精、白糖、盐、沙、石子、红豆。
2.人手一只塑料小篮、有洞塑料袋、有洞小容器、半玻璃杯清水、一条毛巾。
(三)活动过程:
1、教师导入课题
(1)出示一杯清水
师:瞧,今天我给大家请来了好朋友——水。它的秘密可多啦,现在就让我们一起去探索水的秘密。
(2)幼儿猜猜水里、米里有什么。
师:小朋友看看这两个金鱼缸,一个缸内装水,一个缸内装米,你们知道水里、米里都有些什么东西吗?
幼:有的说水里有条金鱼;有的说水里有条金鱼在游来游去。
师:你是怎么知道的?
幼:有的说一看就知道;有的说透过水看到的。
师:看看米里有什么?
幼:有的说只有米;有的说什么也没有;有的说看不出。
教师从米里拿出塑料彩球。
小结:水是无色透明的,能看见水里的物体;米不透明,看不见里面的。
(评:以探索秘密引出课题,萌发幼儿的好奇心,充分调动了幼儿的学习兴趣,并以具体形象的猜一猜活动,让幼儿自己感受水是透明的。)
2、幼儿进行尝试操作。
(1)盛水
活动师:老师给小朋友准备了有洞的小容器、塑料袋、小篮、请你们选
一样来盛水,看看会怎样?
幼a:小容器里的水跑到了盆里。
幼b:篮子放到盆里时篮子里有水,拎起篮子水没了。
幼c:塑料袋里的水流到盆里了,盛不住。
小结:水会流动。
(评:提供材料,幼儿在自己的尝试操作中感知水会流动,教师及时肯定幼儿的结论,使幼儿有了成功的体验,为下一尝试活动奠定了基础。)
(2)溶解实验
师:请小朋友从桌上的白糖、盐、菊花精……中取几样东西放入你的清水中,再轻轻搅拌,看一看,你会发现什么?
幼儿尝试操作,教师巡回指导。
引导幼儿仔细观察水的颜色及实物在水中的变化。
建议幼儿相互交流实验结果。
师:谁来告诉大家实验中,你发现了什么?
幼a:糖、盐放在水中没有了,沙子沉到了杯底。
幼b:菊花精放在水中,搅一搅后没有了,水变成了淡黄色,小石子还在水中。
幼c:糖、盐、菊花精放在水中都没了,水变颜色了,沙子、红豆、石子都在水里。
师:小朋友观察得可真仔细。
小结:糖、盐菊花精放入水中不见了,这几样东西被水溶解了。
师:生活中你还见到哪些东西能被水溶解。
幼:有的说果珍,有的说阿华田,有的说味精,有的说化肥,有的说感冒冲剂。
(评:提供多种材料,引让幼儿尝试操作,并引导...
查看详情>>