首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 31 毫秒
1.
软件缺陷定位是指找出与软件失效相关的程序元素. 当前的缺陷定位技术仅能产生函数级或语句级的定位结果. 这种粗粒度的定位结果会影响人工调试程序和软件缺陷自动修复的效率和效果. 专注于细粒度地识别导致软件缺陷的具体代码令牌, 为代码令牌建立抽象语法树路径, 提出基于指针神经网络的细粒度缺陷定位模型来预测出具体的缺陷代码令牌和修复该令牌的具体操作行为. 开源项目中的大量缺陷补丁数据集包含大量可供训练的数据, 且基于抽象语法树构建的路径可以有效捕获程序结构信息. 实验结果表明所训练出的模型能够准确预测缺陷代码令牌并显著优于基于统计的与基于机器学习的基线方法. 另外, 为了验证细粒度的缺陷定位结果可以贡献于缺陷自动修复, 基于细粒度的缺陷定位结果设计两种程序修复流程, 即代码补全工具去预测正确令牌的方法和启发式规则寻找合适代码修复元素的方法, 结果表明两种方法都能有效解决软件缺陷自动修复中的过拟合问题.  相似文献   

2.
特征提取是软件缺陷预测中的关键步骤,特征提取的质量决定了缺陷预测模型的性能,但传统的特征提取方法难以提取出软件缺陷数据的深层本质特征。深度学习理论中的自动编码器能够从原始数据中自动学习特征,并获得其特征表示,同时为了增强自动编码器的鲁棒性,本文提出一种基于堆叠降噪稀疏自动编码器的特征提取方法,通过设置不同的隐藏层数、稀疏性约束和加噪方式,可以直接高效地从软件缺陷数据中提取出分类预测所需的各层次特征表示。利用Eclipse缺陷数据集的实验结果表明,该方法较传统特征提取方法具有更好的性能。  相似文献   

3.
姜佳君  陈俊洁  熊英飞 《软件学报》2021,32(9):2665-2690
软件缺陷是软件开发和维护过程中不可避免的.随着现代软件规模的不断变大,软件缺陷的数量以及修复难度随之增加,为企业带来了巨大的经济损失.修复软件缺陷,成为了开发人员维护软件质量的重大负担.软件缺陷自动修复技术有希望将开发者从繁重的调试中解脱出来,近年来成为热门的研究领域之一.搜集了94篇该领域最新的高水平论文,进行了详细的分析和总结.基于缺陷修复技术在补丁生成阶段所使用的技术手段不同,系统性地将软件自动修复技术分为4大类,分别是基于启发式搜索、基于人工模板、基于语义约束和基于统计分析的修复技术.特殊地,根据对近几年最新研究的总结,首次提出了基于统计分析的技术分类,对已有分类进行了补充和完善.随后,基于对已有研究的分析,总结了该领域研究所面临的关键挑战及对未来研究的启示.最后,对缺陷修复领域常用的基准数据集和开源工具进行了总结.  相似文献   

4.
《软件工程师》2017,(2):1-3
软件在开发和维护的过程中均可能产生软件缺陷,如果能够成功自动修复部分缺陷,则可以有效减少程序调试时间,避免损失。软件自动修复是一个新兴课题,尚存在很多需要解决的问题。本文首先介绍了软件自动修复的概念,并提出了基于搜索的软件自动修复的框架;接着,从缺陷定位、搜索策略、测试数据生成三个方面概括了基于搜索的软件自动修复面临的主要挑战,以及需要解决的一些关键问题;最后,总结全文并指出下一步的工作。所提框架及其关键问题的探讨,有助于软件自动修复技术的进一步研究和在工业生产中的推广应用。  相似文献   

5.
针对现有深度学习图像修复方法对不同尺度特征的感知和表达能力存在不足的问题,提出一种利用多尺度通道注意力与分层残差网络的图像修复模型.首先采用U-Net作为生成器的主干网络,实现对破损图像的编码与解码操作;然后通过在编码器与解码器中分别构建多尺度的分层残差结构,以增强网络提取和表达破损图像特征的能力;最后在编码器与解码器间的跳跃连接中嵌入扩张的多尺度通道注意力模块,以提高模型对编码器中图像低级特征的利用效率.实验结果表明,在人脸、街景等数据集的破损图像修复上,该模型在主观视觉感受和客观评价指标方面均优于其他经典的图像修复方法.  相似文献   

6.
为了更好地保存和修复珍贵的古代壁画艺术,在现有的人工修复技术之上,结合 数字虚拟修复方法,使用深度学习中生成网络的方法自动生成壁画缺失部分,可以有效地提高 修复效率,降低修复成本。用于修复的网络整体上是一个自编码器结构,编码器将待处理壁画 图像和破损部分对应的掩膜作为输入,进行特征提取。解码器将编码器得到的特征图通过反卷 积的方法恢复到原来尺寸,完成修复,自动将破损区域进行补全。同时,通过对待修复壁画进 行分块修复再拼接的方法实现了对任意尺寸壁画的修复。与其他数字壁画修复方法相比,该方 法更加通用,不受壁画种类和破损情况的限制。在一般破损的壁画上可以得到超过目前先进水 平的修复效果,并且在人眼无法辨识有效信息的大面积破损的壁画上,仍可以恢复得到有完整 语义的图像。  相似文献   

7.
软件中长期累积的历史遗留问题导致软件产品的规模和复杂性逐渐增大.为了有效提高软件缺陷修复的效率,本文针对源代码文件中的修复前代码版本和修复后代码版本之间的差异,根据预定义的细粒度更改操作提取缺陷修复模板,并基于此修复模板提出了一种缺陷修复推荐方法.结果表明,模板的覆盖范围可达67.11%,并且5位参评者评估其有效,认为...  相似文献   

8.
纪涛  齐玉华  毛晓光 《计算机科学》2014,41(9):88-90,124
虽然缺陷定位技术和软件错误自动修复技术已经得到一定的发展,但是软件的修复工作仍然需要程序员投入大量的时间和精力。大多数开发者仍然使用传统调试技术(例如断点)来进行手工的调试,缺陷定位技术的研究成果并没有较好地运用到实际的修复工作中。近来,软件错误自动修复技术得到了快速的发展和广泛的关注。在软件错误自动修复工作中,利用缺陷定位技术自动定位错误代码是必需的,而定位的精度直接影响到补丁的生成,从而对修复的效果产生较大的影响。GenProg-FL工具可以接受不同的缺陷定位技术去自动修复故障程序。同样,使用GenProg-FL可以从软件自动修复的角度评估现有的基于程序谱的缺陷定位技术定位的有效性。  相似文献   

9.
由于现在技术发展越来越快,程序规模也越来越大,软件会存在不少缺陷,从而无法满足用户的需求,本文先提出了软件缺陷修复流程,然后介绍了几种缺陷定位技术,最后分析了软件缺陷自动修复技术。  相似文献   

10.
软件缺陷修复是软件生命过程中一个不可忽视的问题,如何高效地进行软件缺陷的自动分派是一个十分重要的研究方向。目前已有的研究方法多侧重于缺陷报告的文本内容或开发者抛掷网络中的浅层信息,而忽视了开发者抛掷网络中的高层次拓扑信息。为此,提出了一个基于开发者多元特征的软件缺陷自动分派模型MFD-GCN。该模型充分考虑开发者抛掷网络中的高层拓扑特征,并运用图卷积网络强大的网络特征提取能力,充分挖掘出代表开发者深层合作关系和修复偏好性的多元特征,并与缺陷报告文本特征一起训练分类器。模型在两个大型开源软件项目Eclipse和Mozilla上进行实验,实验结果表明,相比近年来提出的主流分派方法,MFD-GCN模型在推荐前K个开发者时均取得了较好的推荐结果,其中,在Eclipse项目上Top-1推荐准确率达到了69.8%,在Mozilla项目上达到了59.7%。  相似文献   

11.
软件缺陷预测通常针对代码表面特征训练预测模型并对新样本进行预测,忽视了代码背后隐藏的不同技术方面和主题,从而导致预测不准确。针对这种问题,提出了一种基于主题模型的软件缺陷预测方法。将软件代码库视为不同技术方面和主题的集合,不同的主题或技术方面有不同的缺陷倾向。采用LDA主题模型对不同主题及其缺陷倾向进行建模,根据建模结果计算主题度量,并将传统度量方式和主题度量结合进行模型训练和预测。实验结果显示,该方法相对传统的软件缺陷预测技术有高的准确性,并且可以在软件演化中保证模型相对稳定,可以适用于各种缺陷预测任务。  相似文献   

12.
修复软件缺陷是软件工程领域一个无法回避的重要问题,而程序自动修复技术则旨在自动、准确且高效地修复存在缺陷的程序,以缓解软件缺陷所带来的问题.近年来,随着深度学习的快速发展,程序自动修复领域兴起了一种使用深度神经网络去自动捕捉缺陷程序和其补丁之间关系的方法,被称为神经程序修复.从在基准测试上被正确修复的缺陷的数量上看,神经程序修复工具的修复性能已经显著超过了非学习的程序自动修复工具.然而,近期有研究发现神经程序修复系统性能的提升可能得益于测试数据在训练数据中存在,即数据泄露.受此启发,为进一步探究神经程序修复系统数据泄露的原因及影响,更公平地评估现有的系统,本文(1)对现有神经程序修复系统进行了系统的分类和总结,根据分类结果定义了神经程序修复系统的数据泄露,并为每个类别的系统设计了数据泄露的检测方法;(2)依照上一步骤中的数据泄露检测方法对现有模型展开了大规模检测,并探究了数据泄露对模型真实性能与评估性能间差异的影响以及对模型本身的影响;(3)分析现有神经程序修复系统数据集的收集和过滤策略,加以改进和补充,在现有流行的数据集上基于改进后的策略构建了一个纯净的大规模程序修复训练数据集,并验证了该数据集避免数据泄露的有效性.实验结果发现:本次调研的10个神经程序修复系统在基准测试集上均出现了数据泄露,其中神经程序修复系统RewardRepair的数据泄露问题较为严重,在基准测试集Defects4J(v1.2.0)上的数据泄露达24处,泄露比例高达53.33%.此外,数据泄露对神经程序修复系统的鲁棒性也造成了影响,调研的5个神经程序修复系统均因数据泄露产生了鲁棒性降低的问题.由此可见,数据泄露是一个十分常见的问题,且会使神经程序修复系统得到不公平的性能评估结果,以及影响系统本身的性质.研究人员在训练神经程序修复模型时,应尽可能避免出现数据泄露,且要考虑数据泄露问题对神经程序修复系统性能评估产生的影响,尽可能更公平地评估系统.  相似文献   

13.
周风顺  王林章  李宣东 《软件学报》2019,30(5):1243-1255
在计算机软件中,程序缺陷不可避免且极有可能造成重大损失.因此,尽早发现并排除程序中潜在的缺陷,是学术界和工业界的普遍共识.目前的程序缺陷自动修复方法大都遵循缺陷定位、修复候选项生成、选择及验证的流程,但在修复实际程序时存在修复率低、无法保证修复结果的正确性等问题.提出了一种基于程序合成的C/C++程序缺陷自动修复方法.首先,从满足相同规约的程序集中,通过人工整理的方式总结错误模式及其对应的修复方法,使用重写规则表达错误模式,在此基础上实现了基于重写规则和基于程序频谱的缺陷定位方法,得到程序中可能的缺陷位置;其次,基于重写规则,使用修复选项生成方法得到缺陷的修复选项,同时,通过深度学习的方式学习正确程序的书写结构,帮助预测错误程序错误点应有的语句结构,通过这两种方式提高候选项质量,进而提高修复率;最后,在选择验证过程中,使用程序合成的方法将样例程序作为约束,保证合成后代码的正确性.基于上述方法实现了原型工具AutoGrader,并在容易出错、缺陷典型的学生作业程序上进行了实验,结果显示,该方法对学生作业程序中的缺陷有着较高的修复率,同时也能保证修复后代码的正确性.  相似文献   

14.
当前流行的基于深度神经网络的图像修复方法,通常使用大感受野的特征提取器,在修复局部图案和纹理时,会产生伪影或扭曲的纹理,从而无法恢复图像的整体语义和视觉结构。为了解决这个问题,提出了一种基于优化感受野策略的图像修复方法(optimized receptive field,ORFNet),将粗糙修复与精细修复相结合。首先,使用具有大感受野的生成对抗网络获得初始的粗略修复结果;然后,使用具有小感受野的模型来细化局部纹理细节;最后,使用基于注意力机制的编码器-解码器网络进行全局精炼修复。在CelebA、Paris StreetView和Places2数据集上进行验证,结果表明,ORFNet与现有具有代表性的修复方法进行对比,PSNR和SSIM分别平均提升1.98 dB和2.49%,LPIPS平均下降2.4%。实验证明,所提图像修复方法在不同感受野的引导下,在修复指标上表现更好,在视觉上也更加真实自然,验证了该修复方法有效性。  相似文献   

15.
缺陷定位是软件缺陷修复的关键步骤。随着计算机软件的日趋复杂和网络的迅速发展,如何快速高效的定位缺陷相关代码成为了一个急待解决的问题。在研究现有基于信息检索技术的缺陷定位方法的基础上,综合考虑缺陷修复历史信息,提出了基于缺陷修复历史的两阶段缺陷定位方法。该方法不再单一依赖文本相似度,从缺陷修复的局部性现象入手,更多的考虑了缺陷修复的历史记录、变更信息及代码特征等因素,结合信息检索和缺陷预测方法来提高缺陷定位的精度。最后本文以两个开源项目为例,验证了方法的可行性和有效性。  相似文献   

16.
刘浪  李梁  但远宏 《计算机科学》2021,48(10):239-245
现有的视频修复方法通常会产生纹理模糊、结构扭曲的内容以及伪影,而将基于图像的修复模型直接应用于视频修复会导致时间上的不一致.从时间角度出发,提出了一种新的用于视频修复的连贯语义时空注意力(Coherent Semantic Spatial-Temporal Attention,CSSTA)网络,通过注意力层,使得模型关注于目标帧被遮挡而相邻帧可见的信息,以获取可见的内容来填充目标帧的孔区域(hole region).CSSTA层不仅可以对孔特征之间的语义相关性进行建模,还能对远距离信息和孔区域之间的远程关联进行建模.为合成语义连贯的孔区域,提出了一种新的损失函数特征损失(Feature Loss)以取代VGG Loss.模型建立在一个双阶段粗到精的编码器-解码器结构上,用于从相邻帧中收集和提炼信息.在YouTube-VOS和DAVIS数据集上的实验结果表明,所提方法几乎实时运行,并且在修复结果、峰值信噪比(PSNR)和结构相似度(SSIM)3个方面均优于3种代表性视频修复方法.  相似文献   

17.
面向程序自动修复的缺陷分类方法研究*   总被引:1,自引:0,他引:1  
程序自动修复是近年软件工程的研究热点,但其发展难以满足工业应用的要求。分析了自动修复技术的局限性,引入了缺陷分类的思想,并与正交缺陷分类方法相结合,提出了面向软件自动修复的缺陷分类方法(APRDC)。基于APRDC提出了自动修复技术集成的思想。实验中将基于APRDC与基于随机的自动修复技术集成工具作了比较。实验结果表明基于APRDC方法的自动修复技术的集成提高了修复效果,同时也表明了APRDC方法的有效性。  相似文献   

18.
随着软件规模和复杂性的增加,不可避免会出现各种各样的软件缺陷,其中安全相关的软件缺陷容易被攻击者利用而可能造成重大的经济与生命财产损失.在软件开发维护过程中一般会采用缺陷报告追踪系统以缺陷报告的形式及时地记录和追踪软件所产生的缺陷.自动识别安全缺陷报告可以快速将缺陷报告仓库中和安全相关的缺陷报告识别出来,帮助修复人员及时发现安全缺陷并优先修复.目前常见的安全缺陷报告自动识别方法主要是基于文本挖掘和机器学习相结合的技术,但是由于安全相关缺陷具有特征复杂以及在实际项目中数量较少的特点,使得传统的基于机器学习的识别模型难以提取和安全相关的深层次语义特征,并且模型训练过程受数据集噪音的影响较大,从而导致模型的泛化性能提升出现瓶颈.为了解决该问题,本文提出了一种噪音过滤和深度学习相结合的安全缺陷报告识别框架,该框架首先使用词嵌入技术获取语料库中所有单词的分布式向量表示,然后采用本文提出的基于生成模型的噪音过滤方法 FSDON(Filtering Semantically Deviating Outlier NSBRs)过滤与安全缺陷报告语义相似并且可能是噪音的非安全缺陷报告,最后使用不同的深度神...  相似文献   

19.
移动应用(APP)软件的版本更新速度正在加快,对软件缺陷的有效分析可以帮助开发人员理解和及时修复软件缺陷。然而,现有研究的分析对象大多较为单一,存在信息孤立、零散、质量差等问题,并且没有充分考虑数据验证及版本失配问题,分析结果存在较大误差,导致无效的软件演化。为了提供更有效的缺陷分析结果,提出一种面向版本演化的APP软件缺陷跟踪分析方法(ASD-TAOVE),首先从多源、异构的APP软件数据中抽取APP软件缺陷内容并挖掘缺陷事件的因果关系,接着设计了一种APP软件缺陷内容验证方法,基于信息熵结合文本特征和结构特征定量分析缺陷怀疑度用于缺陷内容验证并构建APP软件缺陷内容异构图。此外,为考虑版本演化带来的影响,设计了一个APP软件缺陷跟踪分析方法用于在版本演化中分析缺陷的演化关系,并将其转化为缺陷/演化元路径,最后通过一个基于深度学习的异构信息网络完成APP软件缺陷分析。针对4个研究问题(RQ)的实验结果证实了ASD-TAOVE方法在面向版本演化过程中对缺陷内容验证与跟踪分析的有效性,缺陷识别准确率分别提升约9.9%及5%(平均7.5%)。相较于同类基线方法,ASD-TAOVE方法可分析丰富的APP软件数据,提供有效的缺陷信息。  相似文献   

20.
在开源软件开发的维护阶段, 开源软件缺陷报告为开发人员解决缺陷提供了大量帮助。然而, 开源软件缺陷报告通常是以用户对话的形式编写, 一个软件缺陷报告可能含有数十条评论和上千个句子, 导致开发人员难以阅读或理解软件缺陷报告。为了缓解这个问题, 人们提出了开源软件缺陷报告自动摘要, 缺陷报告自动摘要可以减少开发人员阅读冗长缺陷报告的时间。本文以综述的方式对开源软件缺陷报告自动摘要的研究做了系统的归纳总结。首先, 根据摘要的表现形式, 将开源软件缺陷报告摘要分类为固定缺陷报告摘要和可视化缺陷报告摘要, 再将固定缺陷报告摘要研究方法分类为基于监督学习方法和基于无监督学习方法, 之后总结了基于监督学习和无监督学习的开源软件缺陷报告摘要生成的工作框架, 并介绍了开源软件缺陷报告摘要领域常用数据集、预处理技术和摘要评估指标。其次, 本文以无监督学习为切入点, 分类阐述和归纳了无监督开源软件缺陷报告摘要方法, 将无监督开源软件缺陷报告摘要方法分类为: 基于特征评分方法、基于深度学习方法、基于图方法和基于启发式方法, 并对每类方法进行讨论与分析。再次, 从缺陷报告摘要的实用性出发, 对现有的缺陷报告可视化摘要研究成果进行总结,并对固定缺陷报告摘要和可视化缺陷报告摘要的实用性做出分析。最后, 对现有研究成果及综述进行讨论和分析, 指出了开源软件缺陷报告摘要领域在缺陷报告数据集、抽取式摘要和黄金标准摘要三个方面面临的挑战和对未来研究的展望。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号