基于图挖掘的频繁修复模式获取和变异算子发现

来源 :哈尔滨工业大学 | 被引量 : 0次 | 上传用户:ferer1019
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
如今软件产品有着非常广泛的应用,软件错误的发生可能带来很严重的后果,软件错误的定位显得更为重要。人工定位错误耗时又费力,自动化错误定位可以节约开发人员时间,降低调试难度。基于变异的错误定位不涉及程序依赖关系分析,是一种轻量级的错误定位方法,计算复杂度低,同时又定位在语句级别,定位精度较高。但是因为其会有大量变异体生成并执行,所以花费成本较高。由于现有的变异算子是为模拟程序错误而设计的,若变异算子可以准确模拟真实程序中存在的修复,那么有可能产生真实的程序修复,不仅有助于提高错误定位的精度,还能降低变异的开销。但是目前,对变异算子挖掘的研究较少,通常是选择一些简单的微小改动的变异算子来生成变异体,可能无法模拟真实程序中的修复模式,所以挖掘真实程序中的频繁模式从而模拟程序的修复或许会让变异算子更适合于错误定位,从而提到错误定位精度。针对以上问题,本文研究了基于频繁修复模式挖掘的新变异算子发现方法,具体工作如下:首先,从软件测试、定位、修复领域的基准数据集Defects4J中获取程序错误和修复文件对,然后利用基于抽象语法树比对的方法Gumtree得到从错误到修复文件所做的更改,表示为编辑脚本,再将编辑脚本中的各条编辑转换为图的节点,编辑之间的联系转换为图的边,得到更改图,再对更改图挖掘得到频繁修复子图,对于子图结合其上下文信息进行人工分析,得到频繁修复模式,其代表着程序修复的规律。得到频繁修复模式后,依据其语义及使用场景,将频繁修复模式表示为新的变异算子,并解释每个变异算子的含义及应用场景,然后使用在抽象语法树上更改的方式应用新变异算子进行变异,将修改后的抽象语法树再还原为源代码的形式得到变异体。本文得到3个新的变异算子,分别是空指针检查插入(null check insert,NCS)、数字比较插入(number comparison insert,MCS)和if语句删除(if statement deletion,ISD)。最后研究了新变异算子对于提高错误定位精度的有效性。为了使新变异算子可以与不同错误定位方法结合,新变异算子和原变异算子分开变异与测试,在怀疑度计算时再合并结果。然后,在Defects4J中不同于挖掘时的项目上进行新变异算子有效性的验证,与只使用传统的变异算子相比,加入新变异算子后,错误定位的精度有所提升。
其他文献
计算机视觉中的深度目标检测技术是一项非常重要的技术,为了准确提取有价值的信息,对视频或图像中的物体进行定位和分类非常重要。然而,存在着一些问题,基于云的深度学习模型运行响应延迟较长,而且由于移动网络的不稳定性和有限的网络带宽,这些都会影响用户体验。同时,由于移动设备资源有限,深度学习模型对设备的算力和存储能力要求很高,不能直接部署在资源有限的移动设备上。因此如何将深度学习任务部署到边缘计算环境中是
医学概念编码是给临床医疗文本中的医学相关概念分配标准医学术语对应的编码。由于编码量大以及人工编码成本高效率低等原因,实现医学概念自动编码具有重要的研究意义和应用价值,因此本文开展了基于深度学习的医学概念自动编码方法的研究。目前基于深度学习的医学概念自动编码方法主要分为以下两类:一类是基于文本分类的医学概念自动编码方法,受分类标签空间影响,这类方法对于标准术语词典所含标准医学术语个数敏感;另一类是基
在农业生产中,植物病害是影响农作物最终产量和品质的一个关键因素,因此及时准确地检测出作物的病害情况,在农业领域意义重大。以往对于农田作物病害的检测十分依赖专业的植保人才,近年来,通过无人机进行数据的快速采集,之后再利用深度学习、数字图像处理等技术对图像进行病害识别的方案得到了越来越多的关注。本文针对在使用图像实例分割模型进行叶片级别的病害识别时需要进行大量标注的问题,提出了一种先通过叶片边缘将密集
近年来,我国人口老龄化趋势不断加速,老年人养老产业供需缺口持续扩大,养老服务种类繁多复杂,老年人对智能化的养老方式的需求难以满足,而物联网技术的蓬勃发展、物联网应用的大规模出现给智慧养老提供了新方案,但具体应用下物联网设备冗多繁杂、异构化,缺乏可配置、可扩展的统一接入方案,养老智能场景缺乏用户开发能力,难以满足老年人自定义需求。本文针对以上问题,研究物联网技术在智慧养老领域的应用。本文首先研究了基
随着计算机技术的快速发展,软件规模和复杂度也日益增大,随着开发需求的激增,为了降低软件开发的难度,缩短开发周期,研究学者们将目光投向了软件自动化开发上。在智能化软件开发中,代码补全实现了由编译器根据上下文中现有代码建议下一个可能的代码Token,例如方法调用或对象字段。近年来随着深度学习的应用,该方向涌现出大量科研成果,推进了软件智能化发展。在现有研究中,大多将代码视作语言文本送入自然语言处理中的
现阶段基于云端的视频监控技术日渐成熟,然而将监控设备采集到的图像或视频数据传输至云端或数据处理中心进行数据分析将会对监控网络的服务器与带宽造成较大负担,因此,面向变电站监控场景及智能化监控识别需求,结合人工智能图像分析与处理的方法,开展边缘智能计算技术研究至关重要。首先,分析并总结国内外有关目标检测技术与边缘计算技术的研究方案以及技术路线,同时基于现有边缘计算设备讨论模型搭建与边缘部署的可能性,分
文本作为沟通和协作的重要工具,在社会中扮演着重要的角色。同时在现代化社会中,由于图片和视频等数字化内容的快速发展,对其中的文本进行检测和识别往往可以提供给人们很重要的信息,利用这些信息能够辅助使用该信息的主体更好的完成任务。因此对于图片和视频中的场景文本进行检测和识别具有重要的意义。而在场景文本的检测和识别过程,对场景中的文本进行定位(即场景文本检测)是首要任务,因此场景文本检测具有重要的研究意义
近年来我国心脑血管疾病为代表的各类疾病发病率屡达新高,已经成为当前医学界重点研究课题之一。有研究数据表明,急性期丙烯率逐渐从最初的5%递增到15%,大部分死亡患者均因自身脑部病变及其他并发症所致。能幸存下来的患者当中有70%左右的患者都遗留有后遗症,必须长期服用药物来抑制病情,同时还需进行不定期复查,确保随时掌握病情。患有脑梗死的城乡居民不但痛苦还给家庭带来了严重的经济负担,在后期的康复中还需要长
作文智能批改的需求与日俱增,然而目前针对不规范书写的中文手写作文识别任务尚未有一套完善的解决方案。篇幅级识别任务大多是针对于英文数据集,还没有已经开源的中文作文数据集。因此研究复杂场景下的中文手写作文图像识别方法具有重要意义。首先为了快速收集大量数据,本文开发了一个半自动化的人机协作作文标注系统。利用百度开源的sdk,为用户提供了两种人机协作的标注模式,能自动帮助用户切分行、生成标签;系统支持多层
对于居家的糖尿病患者来说,将CGM屏幕显示的血糖曲线拍照发送给远程管理血糖的医生是目前常用远程医疗方式。考虑到医生需要较为准确的数据进行诊断,因此需要考虑CGM血糖图像通过视觉检测进行数据提取。本文针对CGM血糖仪屏幕图像设计了数据提取的视觉检测算法,同时开发了CGM血糖仪图像数据检测系统。本文的主要研究内容如下:由于需要针对不同型号CGM血糖仪设计不同的视觉检测算法,同时获得大量CGM血糖仪屏幕