基于深度学习的软件缺陷自动修复技术研究

来源 :河南工业大学 | 被引量 : 0次 | 上传用户:ad5260
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
软件缺陷修复是软件工程领域的关键问题,是软件测试与维护中耗费成本最高的活动。软件缺陷自动修复技术能够有效降低缺陷修复的成本,是近年来学术研究的热点问题。本文研究基于深度学习的软件缺陷自动修复技术,将基于深度学习的机器翻译技术即神经机器翻译技术应用于软件缺陷自动修复问题中,通过端到端补丁生成模型自动生成候选补丁。这类软件缺陷自动修复技术的研究工作少之又少,且普遍修复缺陷成功率和效率较低。针对上述问题,本文提出了两种应用神经机器翻译进行软件缺陷自动修复的技术,并集成了一种软件缺陷自动修复工具。具体研究内容如下:(1)提出了基于多机制神经机器翻译的软件缺陷自动修复技术(Multi-mechanism Neural machine translation based automatic software Repair,MNRepair)。首先,采用词级分词等技术对由缺陷程序语句及其对应的修复语句构成的数据集进行预处理。其次,训练调试融合注意力机制、复制机制以及覆盖机制的多机制补丁生成模型,多机制的使用能够缓解一个固定维度的向量难以编码缺陷程序语句所有信息的问题、未登录词问题以及过度翻译和翻译不充分问题。再次,采用缺陷自动定位技术对待修复缺陷软件进行定位分析并生成缺陷定位报告。然后,利用参数优化后的多机制补丁生成模型为待修复软件生成多个修复语句(候选补丁)。最后,通过测试用例验证候选补丁,并输出通过验证的补丁。在Defects4J缺陷库的395个真实Java软件缺陷上,对MNRepair进行了实验评估。实验结果表明,MNRepair正确修复了26个缺陷,修复成功率和修复效率优于HDRepair、ss Fix、ACS、Cap Gen、LSRepair、Nopol、Sketch Fix、CODIT、Sequence R和j Gen Prog等现有的软件缺陷自动修复技术。(2)提出了基于自注意力神经机器翻译的软件缺陷自动修复技术(Self-attention Neural machine translation based automatic software Repair,SNRepair)。首先,使用基于一元语言模型的子词切分算法预处理数据集,从数据处理的角度有效缓解未登录词问题。其次,训练调试加入局部建模的基于自注意力的Transformer补丁生成模型,该补丁生成模型不仅可以显著缓解源代码中较为棘手的长距离依赖问题以及实现GPU上的并行化,还能够有效地建模局部信息。再次,采用缺陷自动定位技术定位缺陷语句的可能位置并生成相应的缺陷定位报告。然后,利用参数优化后的Transformer补丁生成模型生成多个候选补丁。最后,利用测试用例验证候选补丁,并输出通过验证的补丁。在Defects4J缺陷库的395个真实Java软件缺陷上,对SNRepair进行了实验评估。实验结果表明,SNRepair正确修复了32个缺陷,与HDRepair、ss Fix、ACS、Cap Gen、LSRepair、Nopol、Sketch Fix、CODIT、Sequence R和j Gen Prog等现有的软件缺陷自动修复技术相比,拥有更好的修复能力。(3)针对上述两种软件缺陷自动修复技术,集成了一种软件缺陷自动修复工具Software Repair。其利用Gzoltar进行缺陷定位、使用不同的修复方式进行补丁生成以及运行测试用例进行候选补丁的验证。该修复工具提升了缺陷自动修复技术的易用性,且自动化程度较高,在实际使用过程中,仅需要根据工具的提示执行相应的操作即可,具有一定的应用价值。
其他文献
粮食是重要战略储备物资,在储藏过程中极易受到真菌毒素的污染,目前检测真菌毒素的化学发光酶免疫分析方法存在耗时、测量成本较高、测量精度难以提高等问题,已经成为免疫分析在粮食行业推广应用的主要制约因素。针对传统方法的不足,结合磁微粒化学发光技术与微流控技术,设计出一款用于储粮真菌毒素检测的微系统,实现了真菌毒素的低成本、高精度测量,且大大缩短了检测时间。论文主要工作如下:(1)微系统情况下化学发光与光
学位
随着科技的进步,工业的自动化程度不断提高,其创造的价值也越来越高。但随着设备的大型化,复杂化,一旦发生事故,也会造成严重的财产损失和人身伤亡。因此,利用设备运行的海量数据,在故障发生的初始阶段进行大数据分析,建立高效的智能故障诊断系统,准确的对故障进行智能诊断是非常必要的。随着深度学习技术的飞速发展,因其拥有对数据的利用效率高,分类结果准确等优势,故被广泛的应用于各类设备的故障诊断中。其中,多头注
学位
糖尿病视网膜病变(Diabetic Retinopathy,DR)是常见的糖尿病并发症之一,具有不可逆、致盲性高、进程隐蔽等特点。若不及时治疗,将严重影响患者的生活质量。为解决人工诊断主观性强、效率低等问题,业界提出使用深度学习技术进行DR诊断。调查发现,医学图像涉及隐私和伦理问题通常难以获取,易造成模型过拟合;另外,目前基于深度学习的DR诊断仍以卷积神经网络为主,无法有效提取眼底图像细节特征,诊
学位
车间生产调度是智能制造领域中的重要问题,优化调度可以提高生产效率,减少资源浪费。在实际生产过程中,往往因不确定因素导致调度的不确定。同时,在当前全球合作化生产模式的背景下,对分布式流水车间调度问题的研究更具有现实意义。此类不确定环境下分布式流水车间调度问题的复杂度高,现有的智能算法难以求解出理想的调度方案。本文提出不同的混合策略来改进智能算法,设计混合智能算法来解决不确定环境下分布式流水车间调度问
学位
随着大数据时代的到来,云平台备受青睐。然而,云平台在为海量数据提供强大的存储、计算等服务的同时,也面临着严重的数据安全和用户隐私问题。为保护云数据的安全,用户上传的通常是加密后的数据。因此,如何对密文数据进行高效检索成为了巨大挑战。可搜索公钥加密技术为解决云平台中的密文数据检索问题提供了有效的方法。目前,已有许多可搜索公钥加密方案被提出。然而,现有方案多数存在证书管理或密钥托管问题,同时在安全性或
学位
广播式自动相关监视(Automatic Dependent Surveillance-Broadcast,ADS-B)技术是新一代航行系统中非常重要的通信和监视技术,有助于空中交通管制员和飞行机组实时共享空中交通运行态势,提升航空安全运行水平、空域容量与运行效率。然而由于外界不确定因素,易造成机场航班ADS-B信号丢失,严重影响航空飞行安全。针对这种现象,本文基于深度学习目标检测网络模型和图像目标
学位
联邦学习是在不共享客户端数据前提下,通过所有客户端与服务器之间的多次交互建立联邦模型的机器学习方法。由于联邦学习支持客户端在不交换原始数据的条件下联合训练模型,因此成为图像分类领域的研究热点。本文主要针对现有集中式联邦学习存在的问题展开研究,主要研究内容如下:1、针对集中式联邦学习所存在的客户端模型精度低和通信成本高的问题,提出基于模型参数异步更新的个性化联邦学习方法。引入距离度量函数,建立共性个
学位
基于单相机的近景工业摄影测量技术是一种非接触式测量方法,其利用单相机对空间中三维物体的多个位姿进行拍摄,进而通过数字图像处理和摄影测量技术,计算出待测物体表面关键特征点的三维坐标。本文从以下几个方面开展单目移动式三维测量技术的研究。由于工业场景中物体的特征点直接检测效果不佳,需要借助一种具有唯一身份信息的编码标记点,通过将标记点粘贴在待测三维物体关键特征点上,来实现物体关键特征点的匹配。针对此问题
学位
随着我国制造业的飞速发展,对于工件所需复合功能非常突出,导致工件轮廓外形愈发复杂加工精度要求更高。在工件质量检测中,传统的工件轮廓测量方式效率低、成本高,而常规的基于图像的测量方法又存在测量精度低和稳定性差等问题,如何对工件轮廓进行快速、高精度测量就成为高质量加工的瓶颈问题。本文采用基于机器视觉的摄影几何尺寸测量技术对工件双轮廓外形线间距离和夹角的精密检测展开了研究,包括角点与边缘提取、亚像素定位
学位
小麦,作为世界第二大粮食作物,不仅含有丰富的营养物质,且为人们赖以生存的基本物质和工业原料,其品质问题关乎国际民生。在小麦收购与市场流通环节,不完善粒是品质定级的限制指标,且是增扣量的依据。在各大粮库、加工厂及质检中心,不完善粒检测仍主要为人工检测,极易出现定级误差、串通舞弊、制约收购进度等问题。在计算机视觉方法中,通常依赖昂贵的图像采集、分离设备,且传统机器视觉方法识别率较低,无法满足品质的准确
学位