首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到14条相似文献,搜索用时 80 毫秒
1.
李政亮  陈翔  蒋智威  顾庆 《软件学报》2021,32(2):247-276
基于信息检索的软件缺陷定位方法是当前软件缺陷定位领域中的一个研究热点.该方法主要分析缺陷报告文本和程序模块代码,通过计算缺陷报告和程序模块间的相似度,选取与缺陷报告相似度最高的若干程序模块,将其推荐给开发人员.对近些年国内外研究人员在该综述主题上取得的成果进行了系统的梳理和总结.首先,给出研究框架并阐述影响方法性能的3...  相似文献   

2.
张芸  刘佳琨  夏鑫  吴明晖  颜晖 《软件学报》2020,31(8):2432-2452
缺陷定位是软件工程研究最活跃的领域之一.大部分软件缺陷都会被提交到类似于Bugzilla和Jira的缺陷追踪系统中.由于提交的缺陷报告数量过多,开发人员不能及时处理,因而迫切需要一个自动化工具来帮助开发人员识别缺陷相关源代码文件.研究人员已提出了大量缺陷定位技术.基于信息检索的软件缺陷定位技术(information retrieval-based bug localization,简称IRBL)利用了缺陷报告的文本特性,并且由于计算成本低、对不同的程序语言更具普适性而成为缺陷定位领域的研究热点,取得了一系列研究成果.然而,IRBL技术也在数据预处理、相似度计算和工程应用等方面存在诸多挑战.鉴于此,对现有的IRBL技术进行梳理总结,主要内容包括:(1)梳理了IRBL中数据预处理的过程和信息检索通用方法;(2)对IRBL技术中利用的数据特征进行了详细的分类和总结;(3)总结了技术评估中使用的性能评估指标;(4)归纳出了IRBL技术的关键问题;(5)展望了IRBL技术的未来发展.  相似文献   

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

4.
为了降低缺陷定位过程中的人力成本,研究者们在缺陷报告的基础上提出了许多基于信息检索的缺陷定位模型,包括使用传统特征和使用深度学习特征进行建模的定位模型.在评价不同缺陷定位模型时设计的实验中,现有研究大多忽视了缺陷报告所属的版本与目标源代码的版本之间存在的“版本失配”问题或/和在训练和测试模型时缺陷报告的时间顺序所引发的“数据泄露”问题.致力于报告现有模型在更加真实的应用场景下的性能表现,并分析版本失配和数据泄露问题对评估各模型真实性能产生的影响.选取6个使用传统特征的定位模型(BugLocator、BRTracer、BLUiR、AmaLgam、BLIA、Locus)和1个使用深度学习特征的定位模型(CodeBERT)作为研究对象.在5个不同实验设置下基于8个开源项目进行系统性的实证分析.首先, CodeBERT模型直接应用于缺陷定位效果并不理想,其定位的准确率依赖于目标项目的版本数目和源代码规模.其次,版本匹配设置下使用传统特征的定位模型在平均准确率均值(MAP)、平均序位倒数均值(MRR)两个指标上比版本失配实验设置下最高可以提高47.2%和46.0%, CodeBERT模型的效果也...  相似文献   

5.
构建自动化的缺陷定位方法能够加快程序员利用缺陷报告定位到复杂软件系统缺陷代码的过程.早期相关研究人员将缺陷定位视为检索任务,通过分析缺陷报告和相关代码构造缺陷特征,并结合信息检索的方法实现缺陷定位.随着深度学习的发展,利用深度模型特征的缺陷定位方法也取得了一定效果.然而,由于深度模型训练的时间成本和耗费资源相对较高,现有基于深度模型的缺陷定位研究方法存在实验搜索空间和真实情况不符的情况.这些研究方法在测试时并没有将项目下的所有代码作为搜索空间,而仅仅搜索了与已有缺陷相关的代码, 例如DNNLOC方法,DeepLocator方法,DreamLoc方法.这种做法和现实中程序员进行缺陷定位的搜索场景是不一致的.致力于模拟缺陷定位的真实场景,本文提出了一种融合信息检索和深度模型特征的TosLoc方法进行缺陷定位.TosLoc方法首先通过信息检索的方式检索真实项目的所有源代码,确保已有特征的充分利用;再利用深度模型挖掘源代码和缺陷报告的语义,获取最终定位结果.通过两阶段的检索,TosLoc方法能够对单个项目的所有代码实现快速缺陷定位.通过在4个常用的真实Java项目上进行实验,本文提出的TosLoc方法能在检索速度和准确性上超越已有基准方法.和最优基准方法DreamLoc相比,TosLoc方法在消耗DreamLoc方法35%的检索时间下,平均MRR值比DreamLoc方法提高了2.5%,平均MAP值提高了6.0%.  相似文献   

6.
近年来,研究者提出了大量的软件缺陷预测模型,新模型往往通过与过往模型进行比较实验来表明其有效性.然而,研究者在设计新旧模型间的比较实验时并没有达成共识,不同的工作往往采用不完全一致的比较实验设置,这可能致使在对比模型时得到误导性结论,最终错失提升缺陷预测能力的机会.对近年来国内外学者所做的缺陷预测模型间的比较实验进行系统性的总结:首先,阐述缺陷预测模型间的比较实验的研究问题;然后,分别从缺陷数据集、数据集划分、基线模型、性能指标、分类阈值这5个方面对现有的比较实验进行总结;最后,指出目前在进行缺陷预测模型间比较实验时面临的挑战,并给出建议的研究方向.  相似文献   

7.
软件缺陷定位是软件缺陷修复任务的一个重要步骤。面向软件缺陷报告的缺陷定位方法以描述缺陷产生现象的软件缺陷报告作为查询,以项目的源代码作为语料库,通过分析缺陷报告与源代码单元之间的相关关系,设计缺陷报告与源代码单元之间相关度的计算方法;随后,挖掘各类软件历史仓库来创建缺陷定位数据集,构建缺陷定位模型,以识别缺陷报告所描述的缺陷对应的源代码单元(即缺陷位置),实现缺陷定位。对近年来国内外学者在该研究领域取得的成果进行了系统总结。首先,介绍了软件缺陷定位的相关概念,归纳了面向软件缺陷报告的缺陷定位方法的主要流程;其次,围绕定位流程中的3个关键步骤梳理了已有研究工作;然后,总结了缺陷定位领域常用的实验数据集和实验评估指标;最后,对未来研究可能面临的挑战进行了展望。  相似文献   

8.
大型软件系统的缺陷定位通常采用源代码与缺陷报告的文本相似性的排序方法,但是这种基于文本相似性的方法没能充分利用源代码结构信息,缺陷定位的准确率低。为了解决这个问题,本文提出了一种基于源代码结构(如类名、方法名、变量名、注释等)信息和历史缺陷报告信息进行缺陷定位的方法,对于源代码结构的不同部分,在与缺陷报告进行词语匹配时,赋予它们不同的权重,同时充分利用历史缺陷报告信息,提高缺陷定位的精度。本文使用了Eclipse作为测试项目进行实验,通过与BugLocator和BugScout等方法的结果进行对比,结果表明本文方法能显著的提高缺陷定位的精度,验证了本文方法的可行性和有效性。  相似文献   

9.
陈理国  刘超 《软件学报》2014,25(6):1169-1179
在软件系统中,缺陷定位是缺陷修复的一个关键环节,如果能将缺陷自动定位到很小的范围,将会极大地降低缺陷修复的难度.基于高斯过程提出了一种缺陷定位方法(GPBL),即针对每个缺陷,向开发人员推荐这个缺陷可能存在于哪些源文件中,从而帮助开发人员快速修复缺陷.为了验证方法的有效性,采集了开源软件Eclipse 和Argouml 中的数据,实验结果表明,高斯过程缺陷定位的查全率和查准率平均分别为87.16%和78.90%.与基于LDA的缺陷定位方法进行比较,表明高斯过程更能准确定位缺陷的位置.  相似文献   

10.
《软件》2019,(5):8-15
在软件开发过程中,软件缺陷是不可避免的。在缺陷跟踪系统中,一个重要的问题是如何根据用户所提交的缺陷报告,进行缺陷的自动定位。本文在综合考虑缺陷报告与源代码文件结构相似性的基础上,进一步分析已修复缺陷报告、缺陷报告中的异常堆栈(StackTrace)信息对软件缺陷定位的作用,从而提高定位的精度。在Eclipse、AspectJ和SWT开源项目数据程序集上进行相关实验,并与Buglocator、BRTracer和BLUiR缺陷定位方法进行了比较分析,实验结果表明,本文方法能显著提高软件缺陷定位的精度。  相似文献   

11.
在软件开发和维护过程中,缺陷修复人员通常根据由终端用户或者开发/测试者提交的缺陷报告来定位和修复缺陷.因此,缺陷报告本身的质量对修复人员能否快速准确定位并修复缺陷具有重要的作用.围绕缺陷报告质量的刻画及改进,研究人员开展了大量的研究工作,但尚未进行系统性的归纳.旨在对这些工作进行系统性地梳理,展示该领域的研究现状并为未来的研究方向提供参考意见.首先,总结了已有缺陷报告存在的质量问题,如关键信息缺失、信息错误等;接着,总结了对缺陷报告质量进行自动化建模的技术;然后,描述了一系列对缺陷报告质量进行改进的方法;最后,对未来研究可能面临的挑战和机遇进行了展望.  相似文献   

12.
李晓卓  卿笃军  贺也平  马恒太 《软件学报》2022,33(11):4008-4026
基于信息检索的缺陷定位技术,利用跨语言的语义相似性构造检索模型,通过缺陷报告定位源代码错误,具有方法直观、通用性强的特点.但是由于传统基于信息检索的缺陷定位方法将代码作为纯文本进行处理,只利用了源代码的词汇语义信息,导致在细粒度缺陷定位中面临候选代码语义匮乏产生的准确性低的问题,其结果有用性还有待改进.通过分析程序演化场景下代码改动与缺陷产生间的关系,提出一种基于源代码扩展信息的细粒度缺陷定位方法,以代码词汇语义显性信息及代码执行隐性信息共同丰富源代码语义实现细粒度缺陷定位.利用定位候选点的语义相关上下文丰富代码量,以代码执行中间形式的结构语义实现细粒度代码的可区分,同时以自然语言语义指导基于注意力机制的代码语言表征生成,实现细粒度代码与自然语言间的语义映射,从而实现细粒度缺陷定位方法FlowLocator.实验分析结果表明:与经典的IR缺陷定位方法相比,该方法定位准确性在Top-N排名、平均准确率及平均倒数排名上都有显著提高.  相似文献   

13.
SMT求解器作为重要的基础软件, 其存在的缺陷可能会导致依赖于它的软件功能失效, 甚至带来安全事故. 然而, 修复SMT求解器缺陷是一个十分耗时的任务, 因为开发者需要花费大量的时间和精力来理解并找到缺陷的根本原因. 虽然已有许多软件缺陷定位方面的研究, 但尚未有系统的工作研究如何自动定位SMT求解器缺陷. 因此, 提出一种基于多源频谱的SMT求解器缺陷定位方法SMTLOC. 首先, 对于给定的SMT求解器缺陷, SMTLOC提出一种枚举算法, 用以对触发该缺陷的公式进行变异, 从而生成一组不触发缺陷, 但与触发缺陷的公式具有相似执行路径的证人公式. 然后, SMTLOC根据证人公式的执行路径以及SMT求解器的源码信息, 提出一种融合覆盖频谱和历史频谱的文件可疑度计算方法, 从而定位可能存在缺陷的文件. 为了验证SMTLOC的有效性, 收集60个SMT求解器缺陷. 实验结果表明, SMTLOC的缺陷定位效果明显优于传统的频谱缺陷定位方法, SMTLOC可以将46.67%的缺陷定位在TOP-5的文件内, 定位效果提升了133.33%.  相似文献   

14.
解铮  黎铭 《软件学报》2017,28(11):3072-3079
在大型软件项目的开发与维护中,从大量的代码文件中定位软件缺陷费时、费力,有效地进行软件缺陷自动定位,将能极大地降低开发成本.软件缺陷报告通常包含了大量未发觉的软件缺陷的信息,精确地寻找与缺陷报告相关联的代码文件,对于降低维护成本具有重要意义.目前,已有一些基于深度神经网络的缺陷定位技术相对于传统方法,其效果有所提升,但相关工作大多关注网络结构的设计,缺乏对训练过程中损失函数的研究,而损失函数对于预测任务的性能会有极大的影响.在此背景下,提出了代价敏感的间隔分布优化(cost-sensitive margin distribution optimization,简称CSMDO)损失函数,并将代价敏感的间隔分布优化层应用到深度卷积神经网络中,能够良好地处理软件缺陷数据的不平衡性,进一步提高缺陷定位的准确度.  相似文献   

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

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