共查询到20条相似文献,搜索用时 15 毫秒
1.
2.
软件工程中的软件缺陷报告数量在快速增长,开发者们越来越困惑于大量的缺陷报告。因此,为了达到缺陷修复和软件复用等目的,有必要研究软件缺陷报告的提取方法。提出一种提取方法,该方法首先合并缺陷报告中的同义词,然后建立空间向量模型,使用词频反文档频率以及信息增益等文本挖掘的方法来收集软件缺陷报告中单词的特征,同时设计算法来确定句子复杂度以选择长句,最后将贝叶斯分类器引入该领域。该方法可以提高缺陷报告提取的命中率,降低虚警率。实验证明,基于文本挖掘和贝叶斯分类器的软件缺陷报告提取方法在接受者工作特征曲线面积(0.71)、F-score(0.80)和Kappa值(0.75)方面有良好效果。 相似文献
3.
构建自动化的缺陷定位方法能够加快程序员利用缺陷报告定位到复杂软件系统缺陷代码的过程.早期相关研究人员将缺陷定位视为检索任务,通过分析缺陷报告和相关代码构造缺陷特征,并结合信息检索的方法实现缺陷定位.随着深度学习的发展,利用深度模型特征的缺陷定位方法也取得了一定效果.然而,由于深度模型训练的时间成本和耗费资源相对较高,现有基于深度模型的缺陷定位研究方法存在实验搜索空间和真实情况不符的情况.这些研究方法在测试时并没有将项目下的所有代码作为搜索空间,而仅仅搜索了与已有缺陷相关的代码, 例如DNNLOC方法,DeepLocator方法,DreamLoc方法.这种做法和现实中程序员进行缺陷定位的搜索场景是不一致的.致力于模拟缺陷定位的真实场景,本文提出了一种融合信息检索和深度模型特征的TosLoc方法进行缺陷定位.TosLoc方法首先通过信息检索的方式检索真实项目的所有源代码,确保已有特征的充分利用;再利用深度模型挖掘源代码和缺陷报告的语义,获取最终定位结果.通过两阶段的检索,TosLoc方法能够对单个项目的所有代码实现快速缺陷定位.通过在4个常用的真实Java项目上进行实验,本文提出的TosLoc方法能在检索速度和准确性上超越已有基准方法.和最优基准方法DreamLoc相比,TosLoc方法在消耗DreamLoc方法35%的检索时间下,平均MRR值比DreamLoc方法提高了2.5%,平均MAP值提高了6.0%. 相似文献
4.
软件缺陷在软件的开发和维护过程中是不可避免的,软件缺陷报告是软件维护过程中重要的缺陷描述文档,高质量的软件缺陷报告可以有效提高软件缺陷修复的效率.然而,由于存在许多开发人员、测试人员和用户与缺陷跟踪系统交互并提交软件缺陷报告,同一个软件缺陷可能被不同的人员报告,导致了大量重复的软件缺陷报告.重复的软件缺陷报告势必加重人工检测重复缺陷报告的工作量,并造成人力物力的浪费,降低了软件缺陷修复的效率.以系统文献调研的方式,对近年来国内外学者在重复软件缺陷报告检测领域的研究工作进行了系统的分析.主要从研究方法、数据集的选取、性能评价等方面具体分析总结,并提出该领域在后续研究中存在的问题、挑战以及建议. 相似文献
5.
6.
社交化编程使得开源社区中的知识可以快速被传播,其中,缺陷报告作为一类重要的软件开发知识,会含有特定的语义信息.通常,开发者会人工地将相关的缺陷报告关联起来.在一个软件项目中,发现并关联相关的缺陷报告可以为开发者提供更多的资源和信息去解决目标缺陷,从而提高缺陷修复效率.然而,现有人工关联缺陷报告的方法是十分耗费时间的,它在很大程度上取决于开发者自身的经验和知识.因此,研究如何及时、高效地关联相关缺陷是对于提高软件开发效率十分有意义的工作.将这类关联相关缺陷的问题视为推荐问题,并提出了一种基于嵌入模型的混合式相关缺陷关联方法,将传统的信息检索技术(TF-IDF)与深度学习中的嵌入模型(词嵌入模型和文档嵌入模型)结合起来.实验结果表明,该方法能够有效地提高传统方法的性能,且具有较强的应用扩展性. 相似文献
7.
大型软件系统的缺陷定位通常采用源代码与缺陷报告的文本相似性的排序方法,但是这种基于文本相似性的方法没能充分利用源代码结构信息,缺陷定位的准确率低。为了解决这个问题,本文提出了一种基于源代码结构(如类名、方法名、变量名、注释等)信息和历史缺陷报告信息进行缺陷定位的方法,对于源代码结构的不同部分,在与缺陷报告进行词语匹配时,赋予它们不同的权重,同时充分利用历史缺陷报告信息,提高缺陷定位的精度。本文使用了Eclipse作为测试项目进行实验,通过与BugLocator和BugScout等方法的结果进行对比,结果表明本文方法能显著的提高缺陷定位的精度,验证了本文方法的可行性和有效性。 相似文献
8.
缺陷定位是软件工程研究最活跃的领域之一.大部分软件缺陷都会被提交到类似于Bugzilla和Jira的缺陷追踪系统中.由于提交的缺陷报告数量过多,开发人员不能及时处理,因而迫切需要一个自动化工具来帮助开发人员识别缺陷相关源代码文件.研究人员已提出了大量缺陷定位技术.基于信息检索的软件缺陷定位技术(information retrieval-based bug localization,简称IRBL)利用了缺陷报告的文本特性,并且由于计算成本低、对不同的程序语言更具普适性而成为缺陷定位领域的研究热点,取得了一系列研究成果.然而,IRBL技术也在数据预处理、相似度计算和工程应用等方面存在诸多挑战.鉴于此,对现有的IRBL技术进行梳理总结,主要内容包括:(1)梳理了IRBL中数据预处理的过程和信息检索通用方法;(2)对IRBL技术中利用的数据特征进行了详细的分类和总结;(3)总结了技术评估中使用的性能评估指标;(4)归纳出了IRBL技术的关键问题;(5)展望了IRBL技术的未来发展. 相似文献
9.
缺陷的存在,会影响软件系统的正常使用甚至带来重大危害.为了帮助开发者尽快找到并修复这些缺陷,研究者提出了基于信息检索的缺陷定位方法.这类方法将缺陷定位视为一个检索任务,它为每个缺陷报告生成一份按照程序实体与缺陷相关度降序排序的列表.开发者可以根据列表顺序来审查代码,从而降低审查成本并加速缺陷定位的进程.近年来,该领域的研究工作十分活跃,在改良定位方法和完善评价体系方面取得了较大进展.与此同时,为了能够在实践中更好地应用这类方法,该领域的研究工作仍面临着一些亟待解决的挑战.对近年来国内外学者在该领域的研究成果进行系统性的总结:首先,描述了基于信息检索的缺陷定位方法的研究问题;然后,分别从模型改良和模型评估两方面陈述了相关的研究进展,并对具体的理论和技术途径进行梳理;接着,简要介绍了缺陷定位的其他相关技术;最后,总结了目前该领域研究过程中面临的挑战并给出建议的研究方向. 相似文献
10.
开源软件缺陷预测通过挖掘软件历史仓库的数据,利用与软件缺陷相关的度量元或源代码本身的语法语义特征,借助机器学习或深度学习方法提前发现软件缺陷,从而减少软件修复成本并提高产品质量. 漏洞预测则通过挖掘软件实例存储库来提取和标记代码模块,预测新的代码实例是否含有漏洞,减少漏洞发现和修复的成本. 通过对2000年至2022年12月软件缺陷预测研究领域的相关文献调研,以机器学习和深度学习为切入点,梳理了基于软件度量和基于语法语义的预测模型. 基于这2类模型,分析了软件缺陷预测和漏洞预测之间的区别和联系,并针对数据集来源与处理、代码向量的表征方法、预训练模型的提高、深度学习模型的探索、细粒度预测技术、软件缺陷预测和漏洞预测模型迁移六大前沿热点问题进行了详尽分析,最后指出了软件缺陷预测未来的发展方向.
相似文献11.
12.
13.
深度神经网络已经在自动驾驶和智能医疗等领域取得了广泛的应用.与传统软件一样,深度神经网络也不可避免地包含缺陷,如果做出错误决定,可能会造成严重后果.因此,深度神经网络的质量保障受到了广泛关注.然而,深度神经网络与传统软件存在较大差异,传统软件质量保障方法无法直接应用于深度神经网络,需要设计有针对性的质量保障方法.软件缺陷定位是保障软件质量的重要方法之一,基于频谱的缺陷定位方法在传统软件的缺陷定位中取得了很好的效果,但无法直接应用于深度神经网络.在传统软件缺陷定位方法的基础上提出了一种基于频谱的深度神经网络缺陷定位方法 Deep-SBFL.该方法首先通过收集深度神经网络的神经元输出信息和预测结果作为频谱信息;然后将频谱信息进行处理作为贡献信息,以用于量化神经元对预测结果所做的贡献;最后提出了针对深度神经网络缺陷定位的怀疑度公式,基于贡献信息计算深度神经网络中神经元的怀疑度并进行排序,以找出最有可能存在缺陷的神经元.为验证该方法的有效性,以EInspect@n (结果排序列表前n个位置内成功定位的缺陷数)和EXAM (在找到缺陷元素之前必须检查元素的百分比)作为评测指... 相似文献
14.
从分析软件缺陷生命周期开始,提出了改进后的软件缺陷生命周期图,分析并论述了严重程度与优先级的确定方法。在现有分析方法的基础上提出了六西格玛管理方法,利用六西格玛的DMAIC模式对软件缺陷跟踪过程进行了改进,并通过具体的安全事例讲述了六西格玛水平及百万机会缺陷数的计算,提出并实现了系统漏测分析。 相似文献
15.
16.
并发程序的非确定性使得其调试工作异常困难。基于程序谱的软件缺陷定位方法虽然能够缓解该情况,但其定位结果依赖于调试信息。针对在此过程中难以获得调试信息及如何选择利用调试信息的问题,提出了一种基于测试充分性准则的缺陷定位方法,该方法包括3个部分:预测满足测试充分性准则的条件;制定相应的测试方案;将收集到的调试信息用于缺陷定位分析。依据此方法,用C#语言实现了缺陷定位工具——ConFinder。在含有实际并发缺陷的程序上进行实验,结果表明该方法可以有效找出引起程序失效的原因并且所得结果具有很好的稳定性。 相似文献
17.
能通过编译的C/C++程序代码可能依然隐含安全、设计或风格上缺陷,从而导致运行时出现内存泄露、运行异常等现象,难以完成软件需求所预期的目标。针对开源软件缺陷检测工具Cppcheck软件存在的不足,主要分析了Cppcheck架构、缺陷模式表示与实现,在对已收集350个缺陷模式分析总结基础上,对其完善,提高缺陷检测能力。通过两组实验验证改进Cppcheck工作的有效性。 相似文献
18.
在软件开发过程中,软件缺陷具有传播的特性.缺陷的传播特性决定了缺陷之间并非独立存在,而存在相互关联,因此软件缺陷关联分析对于缺陷排除、软件质量保证、过程改进具有重要的意义.从软件缺陷关联的原因出发,基于面向对象的分析与设计模型,分析了软件缺陷的传播过程,研究了对象关联与软件缺陷关联之间的关系;依据缺陷的传播过程,建立了树状关联规则和特征相似关联规则;最后阐述了建立两种关联规则的步骤,开发了构建树状关联与特征相似关联的软件原型. 相似文献
19.
为了降低缺陷定位过程中的人力成本,研究者们在缺陷报告的基础上提出了许多基于信息检索的缺陷定位模型,包括使用传统特征和使用深度学习特征进行建模的定位模型.在评价不同缺陷定位模型时设计的实验中,现有研究大多忽视了缺陷报告所属的版本与目标源代码的版本之间存在的“版本失配”问题或/和在训练和测试模型时缺陷报告的时间顺序所引发的“数据泄露”问题.致力于报告现有模型在更加真实的应用场景下的性能表现,并分析版本失配和数据泄露问题对评估各模型真实性能产生的影响.选取6个使用传统特征的定位模型(BugLocator、BRTracer、BLUiR、AmaLgam、BLIA、Locus)和1个使用深度学习特征的定位模型(CodeBERT)作为研究对象.在5个不同实验设置下基于8个开源项目进行系统性的实证分析.首先, CodeBERT模型直接应用于缺陷定位效果并不理想,其定位的准确率依赖于目标项目的版本数目和源代码规模.其次,版本匹配设置下使用传统特征的定位模型在平均准确率均值(MAP)、平均序位倒数均值(MRR)两个指标上比版本失配实验设置下最高可以提高47.2%和46.0%, CodeBERT模型的效果也... 相似文献