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

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

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

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

5.
张文  李自强  杜宇航  杨叶 《软件学报》2019,30(2):195-210
当软件缺陷报告在跟踪系统中被指派给开发人员进行缺陷修复之后,缺陷修复人员就需要根据提交的缺陷报告来进行软件缺陷定位,并做出相应的代码变更,以修复该软件缺陷.在缺陷修复的整个过程中,软件缺陷定位占用了开发人员大量的时间.提出了一种方法级别的细粒度软件缺陷定位方法MethodLocator,以提高软件修复人员的工作效率.MethodLocator首先对缺陷报告和源代码方法体利用词向量(word2vec)和TF-IDF结合的方法进行向量表示;然后,根据源代码文件中方法体之间的相似度对方法体进行扩充;最后,通过对扩充后的方法体和缺陷报告计算其余弦距离并排序,来定位为修复软件缺陷所需做出变更的方法.在4个开源软件项目ArgoUML、Ant、Maven和Kylin上的实验结果表明,MethodLocator方法优于现有的缺陷定位方法,它能够有效地将软件缺陷定位到源代码的方法级别上.  相似文献   

6.
史高翔  赵逢禹 《计算机科学》2016,43(11):246-251
准确地将缺陷分配给最合适的修复者对大型软件项目的缺陷修复具有重要意义。当前缺陷自动分配技术的研究主要利用历史缺陷报告的描述信息、缺陷关联信息、历史分派信息等,但这些方法都没有将缺陷报告信息充分挖掘。提出在缺陷报告分配时将缺陷历史分派信息和缺陷文本相似信息相结合。首先根据缺陷历史分派信息生成再分配图;然后计算新缺陷报告与历史缺陷报告缺陷的文本相似度,找出相似度最高的前K个缺陷报告所对应的修复者;最后,根据这些修复者在再分配图中的依赖关系生成预测再分配路径。为了验证该方法的有效性,利用Eclipse和Mozilla的缺陷报告集进行实验,实验表明提出的方法在预测的准确度上明显优于其他方法。  相似文献   

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

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

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

10.
目前在软件代码缺陷审查以及缺陷预测中,研究人员对源代码进行分析研究却忽略了代码的缺陷信息.本文通过对缺陷信息进行分析,发现缺陷信息对于相似缺陷的检测有着重要的参考价值.基于这一思想,本文分析软件缺陷社区Stack Overflow中关于缺陷代码的信息,提出一种基于缺陷代码特征分析的相似缺陷检测方法.该方法首先对缺陷报告进行LDA主题分析并将缺陷报告分类到不同的主题(类别)中,统计得到高频缺陷类别;其次对于高频缺陷类别的缺陷代码提取特征;最后根据缺陷代码特征构建相似缺陷检测模型.为了验证相似缺陷检测模型的有效性,针对数据操作缺陷数据构建诊断模型并对该模型进行实证,实验结果表明该方法对检测其他代码中相似缺陷有较好的效果.  相似文献   

11.
无论是系统软件还是应用软件都存在一定的缺陷(bug),所以如何利用已有的bug信息指导软件开发和保证软件质量,从而最大程度上降低bug给软件带来的隐患,成为普遍研究的课题.通过对功能需求与开发周期中bug等级分类的研究,进一步分析了bug的访问控制和bug的生命周期.并充分结合已有的bug数据库,采用离散数据的最小二乘拟合法进行数值处理,提出了一种面向软件质量的bug等级评价算法.实际应用表明该算法在软件开发过程中具有一定的理论和实用价值.  相似文献   

12.
本文介绍了一种基于web方式的bug跟踪系统。通过这套系统,项目管理人员,软件开发人员和软件测试人员可以跟踪每一个被发现的软件错误(bug)及其更改,调整的历史过程,通过这套系统,管理人员可以及时考察相关软件技术人员的工作执行质量,进行数据挖掘,从而不断改进软件开发过程。  相似文献   

13.
The large number of new bug reports received in bug repositories of software systems makes their management a challenging task.Handling these reports manually is time consuming,and often results in delaying the resolution of important bugs.To address this issue,a recommender may be developed which automatically prioritizes the new bug reports.In this paper,we propose and evaluate a classification based approach to build such a recommender.We use the Na¨ ve Bayes and Support Vector Machine (SVM) classifiers,and present a comparison to evaluate which classifier performs better in terms of accuracy.Since a bug report contains both categorical and text features,another evaluation we perform is to determine the combination of features that better determines the priority of a bug.To evaluate the bug priority recommender,we use precision and recall measures and also propose two new measures,Nearest False Negatives (NFN) and Nearest False Positives (NFP),which provide insight into the results produced by precision and recall.Our findings are that the results of SVM are better than the Na¨ ve Bayes algorithm for text features,whereas for categorical features,Na¨ ve Bayes performance is better than SVM.The highest accuracy is achieved with SVM when categorical and text features are combined for training.  相似文献   

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

15.
孙小兵  周澄  杨辉  李斌 《软件学报》2018,29(8):2294-2305
软件开发与维护过程中常会出现一些安全性缺陷,这些安全性缺陷会给软件和用户带来很大的风险.安全性缺陷在修复过程中,其修复级别和质量要求往往高于一般性的缺陷,因此,推荐出富有安全性经验的开发者及时有效地修复这些安全性缺陷非常重要.现有的开发者推荐技术在推荐开发者时仅仅考虑了开发者的历史开发内容,很少考虑到开发人员的安全性缺陷修复经验和修复质量等因素,所以这些技术不适用于安全性缺陷的开发者推荐.本文针对安全性缺陷的修复提出了一种有效的软件开发者推荐方法SecDR.SecDR在推荐开发者时不仅考虑了开发者的历史开发内容(与安全性相关),还分析了开发者的修复质量和历史修复缺陷的复杂度等因素.此外,SecDR还实现了开发者的多经验级别推荐:推荐初级开发者修复简单的安全性缺陷,高级开发者修复复杂的安全性缺陷.本文在三个开源项目(Mozilla,Libgdx,ElasticSearch)上分别对SecDR推荐开发者进行有效性验证.通过对比实验证明,SecDR针对安全性缺陷推荐开发者相比于其他方法(如:DR_PSF)的推荐精度平均高出19%~42%.另外,实验对比了SecDR与实际开发人员的分配情况,结果显示SecDR可以更好地规避不合理的软件开发者的推荐.  相似文献   

16.
结合故障定位技术, 提出了一种基于变异的程序故障自动化修复方法, 并采用该方法阐释了C程序表达式故障的变异修复机制, 研制了C程序故障自动化修复辅助工具。通过对实际故障系统案例的分析, 证明了方法的有效性。  相似文献   

17.
缺陷的存在,会影响软件系统的正常使用甚至带来重大危害.为了帮助开发者尽快找到并修复这些缺陷,研究者提出了基于信息检索的缺陷定位方法.这类方法将缺陷定位视为一个检索任务,它为每个缺陷报告生成一份按照程序实体与缺陷相关度降序排序的列表.开发者可以根据列表顺序来审查代码,从而降低审查成本并加速缺陷定位的进程.近年来,该领域的研究工作十分活跃,在改良定位方法和完善评价体系方面取得了较大进展.与此同时,为了能够在实践中更好地应用这类方法,该领域的研究工作仍面临着一些亟待解决的挑战.对近年来国内外学者在该领域的研究成果进行系统性的总结:首先,描述了基于信息检索的缺陷定位方法的研究问题;然后,分别从模型改良和模型评估两方面陈述了相关的研究进展,并对具体的理论和技术途径进行梳理;接着,简要介绍了缺陷定位的其他相关技术;最后,总结了目前该领域研究过程中面临的挑战并给出建议的研究方向.  相似文献   

18.
随着多核设备的普及,主流软件系统的构建模式已经由单线程串行转为多线程的并行方式.然而,由于并行程序的不确定性,使得调试并行程序错误要比串行程序的错误困难很多.因此,如何高效地调试并行程序错误成为了亟待解决的问题.对并行错误调试技术做了全面的研究与分析.在此基础上,进一步讨论了不同调试技术的优劣,也对并行调试技术可能的发展方向进行展望.  相似文献   

19.
缺陷的及时反馈与修复是开源软件长久健康发展的基本保障, 面对每天提交的大量、包含多方面因素的开源软件缺陷报告, 很多缺陷报告因为描述遗漏或不准确, 而影响缺陷有效判定和缺陷修复进程; 而面对需要填报的复杂缺陷报告信息, 报告提交者也无法确定哪些属性是关键的、哪些需要重点描述致使提交缺陷报告质量不高. 综合文献对缺陷报告描述的5个维度28种特征进行分析, 按照维度间和维度内多特征两个角度对缺陷报告特征进行重要度排序对比, 结果显示按照维度分析: 文本特征和报告者经验特征两个维度的F1值和准确率指标最高, 而每个维度内特征也显示了不同重要度, 从而可以指导缺陷提交者规范缺陷报告提交, 也可以指导修复者进行缺陷判定和缺陷修复.  相似文献   

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

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