首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 62 毫秒
1.
基于函数调用路径关联分析的缺陷定位方法研究   总被引:1,自引:0,他引:1  
缺陷关联使得目前的缺陷定位方法面临着严峻挑战,为了快速准确定位软件缺陷,保证软件产品质量,对定位方法的改进势在必行。基于函数调用路径(Function Calling Path, FCP)技术,把缺陷定位的整体粒度由语句级提升到函数级。依据失效原理和FP-树分析缺陷关联,逐步缩减缺陷定位问题空间为“执行路径-路径结点-结点语句”,获得缺陷关联拓扑图,局部细化缺陷函数到细粒度,并提出了基于函数排名的评价方法。实验结果表明,FCP缺陷定位方法可有效缩减查找缺陷时的代码审查范围,提高软件缺陷定位的精度和效率。该方法为基于路径分析的缺陷定位提供了理论依据和实践方法,并保证测试的安全进行。  相似文献   

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

3.
随着软件项目规模的扩大以及软件复杂性的增加,缺陷修复的难度越来越大.其中,绝大多数缺陷问题都是由代码的错误编写导致的,在软件缺陷修复过程中开发维护人员需要花费大量的时间定位并修改缺陷代码.针对这个问题,对缺陷报告以及对应的项目变更信息进行整合,根据代码抽象语法树结构信息计算代码块与缺陷报告之间的关系,从而构建缺陷-代码知识库.在此知识库的基础上构建面向缺陷定位的代码搜索引擎,以向用户推荐更全面的缺陷定位信息,包括相似缺陷报告、相关缺陷代码文件以及缺陷代码块,从而帮助开发和维护人员及时有效地定位缺陷.实验结果说明,相比现有的缺陷定位方法,所提方法能够更准确地定位缺陷代码文件,并且可有效定位到代码粒度.  相似文献   

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

5.
软件缺陷预测技术用于定位软件中可能存在缺陷的代码模块,从而辅助开发人员进行测试与修复。传统的软件缺陷特征为基于软件规模、复杂度和语言特点等人工提取的静态度量元信息。然而,静态度量元特征无法直接捕捉程序上下文中的缺陷信息,从而影响了软件缺陷预测的性能。为了充分利用程序上下文中的语法语义信息,论文提出了一种基于混合注意力机制的软件缺陷预测方法 DP-MHA(Defect Prediction via Mixed Attention Mechanism)。DP-MHA首先从程序模块中提取基于AST树的语法语义序列并进行词嵌入编码和位置编码,然后基于多头注意力机制自学习上下文语法语义信息,最后利用全局注意力机制提取关键的语法语义特征,用于构建软件缺陷预测模型并识别存在潜在缺陷的代码模块。为了验证DP-MHA的有效性,论文选取了六个Apache的开源Java数据集,与经典的基于RF的静态度量元方法、基于RBM+RF、DBN+RF无监督学习方法和基于CNN和RNN深度学习方法进行对比,实验结果表明,DP-MHA在F1值分别提升了16.6%、34.3%、26.4%、7.1%、4.9%。  相似文献   

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

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

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

9.
黄晓伟  范贵生  虞慧群  杨星光 《计算机工程》2021,47(12):230-235,248
在实际软件项目开发过程中,软件缺陷预测能辅助测试人员找到项目中可能存在缺陷的位置,并通过抽象语法树(AST)获取项目模块中隐藏的结构和语义信息,此类信息有助于提高缺陷预测精度。提出基于重子节点抽象语法树的缺陷预测方法,在提取节点信息时保留节点的类型信息和对应代码语义的值信息,并使用特殊字符串代替没有值信息的节点。通过树链剖分思想将AST分割为重子节点和轻子节点,优先选择重子节点作为序列化向量中的节点,同时利用深度学习网络学习节点序列中的源代码结构和语言实现软件缺陷预测。实验结果表明,与DFS方法相比,该方法在基于注意力机制的循环神经网络深度学习模型上的F1值和AUC值平均提升约3%和4%,具有更好的缺陷预测效果。  相似文献   

10.
近年来,随着不同编程语言代码自动转换工具的出现,跨语言的代码抄袭检测问题受到了越来越多的关注.现有跨语言代码抄袭检测主要包括传统的基于中间特征的检测方法和近年来出现的基于机器学习的检测方法,后者在检测模型训练完成之后具有更好的检测速度,是当前跨语言代码抄袭检测的研究热点.然而,现有的基于机器学习的跨语言抄袭检测方法大多将代码作为文本来处理,未考虑代码的结构特征.结合代码基于抽象语法树的结构特征,本文提出了一个基于伪孪生神经网络框架的跨语言抄袭检测工具CLPDetector.该工具将训练数据中的源代码对转换成对应的抽象语法树,基于抽象语法树生成代码的向量表示,然后将结合BiLSTM、CNN和Attention的深度神经网络嵌入到伪孪生网络架构中训练抄袭检测模型,从而实现了跨语言代码抄袭的检测.为了提高检测精度,首先,在训练检测模型前,利用基于抽象语法树的skip-gram算法对词向量进行了预训练,并基于程序依赖图删除了训练数据集代码中的冗余代码.其次,在代码抄袭检测阶段,提出了一个基于属性计数的过滤器,用以排除不可能抄袭的代码对,提高检测效率.实验中基于一个开源的数据集,以Java代码和...  相似文献   

11.
陈成  陈姚节  陈晓杰  陈黎 《软件》2013,(11):18-20,49
带钢表面质量的优劣将直接影响到最终产品的性能和质量。本文研究了一种基于图像处理和模式识别的带钢表面缺陷检测系统,它采用了特殊的软件设计结构和模块化设计的理念,实验表明该软件对钢板表面进行在线式缺陷实时检出,具有较高精度,而且系统对缺陷数据管理并提供报表及打印功能。  相似文献   

12.
软件缺陷管理是提高软件质量和软件开发效率的重要技术途径之一。通过对现有缺陷管理工具的比较,依据CMMI模型并基于P13000平台,设计和实现了缺陷管理系统。该系统采用了浏览器的B/S架构,实现了缺陷跟踪的流程,对缺陷状态的变化进行控制,并具有查询、统计分析等功能,集合了多数缺陷管理工具的优点。实际应用表明该系统有效地提高了软件的质量和开发效率。  相似文献   

13.
软件缺陷分类的研究   总被引:4,自引:2,他引:2  
软件缺陷分类是缺陷管理的基础,是预防缺陷的有力支持工具.阐述了缺陷的概念、危害以及对软件缺陷分类的必要性,对各种软件分类方法进行了深入分析和研究,比较了各类分类方法的优缺点以及正交缺陷分类的使用情况,在正交缺陷分类标准的基础上制定出适合本软件组织自身情况的软件缺陷分类方法,最后对软件缺陷分类意义进行了总结.  相似文献   

14.
邢薇薇  王新刚 《测控技术》2016,35(9):102-106
分析现有软件缺陷分类方法,针对现有缺陷分类方法不能完全适用于航空机载软件缺陷管理的问题,结合机载软件研制阶段和特点,以现有软件缺陷分类方法为基础,综合考虑缺陷度量分析的要求,提出一种符合航空机载软件研制特点的缺陷分类方法,并给出了“缺陷类别”详细的分类.将其应用于实际软件研制过程中,应用结果表明,该方法满足机载软件缺陷分类原则.  相似文献   

15.
软件缺陷发现时序过程的叠加双阻尼振荡模型   总被引:2,自引:0,他引:2  
何智涛  晏海华  刘超 《软件学报》2010,21(12):2999-3010
在软件测试实践中,被测软件通常要经历多轮次的测试和修改过程.由于受到被测软件的缺陷分布、迭代式的开发与测试过程、测试者发现缺陷的能力等诸多非确定性因素的影响,使得软件缺陷发现的时序过程呈现出相应的周期性、随机振荡性和阻尼衰减等时序特征.通过对以软件缺陷发现为目标、测试过程管理规范的软件测试过程基本特征和关键影响因素的深入分析,提出了一种描述软件缺陷发现时序过程特征的叠加双阻尼振荡模型(accumulative bi-damped oscillation model,简称ABDOM).采用从两个真实软件测试项目中采集的缺陷发现过程数据,检验了ABDOM模型的有效性,定义了ABDOM模型的适用范围,并对ABDOM模型的应用进行了初步讨论.  相似文献   

16.
王德朋  王前  薛伟 《软件》2013,(12):68-72
软件缺陷是导致软件不可靠的根本原因,提高软件可靠性的关键在于减少软件缺陷。基于缺陷模式的代码分析技术根据预先设定好的缺陷模式对待测代码进行缺陷分析,这种缺陷分析具有使用简单、查找速度快等优点,是近年来静态代码分析技术中发展比较迅速的新技术。但是目前基于这种分析技术的大多数工具并没有为用户提供足够易用、高效的扩展方式以扩充其缺陷检测能力。本文出了一种支持用户定制语法相关缺陷模式的测试方法及系统,该方法能够让用户根据实际情况需要对缺陷模式进行定制,目的是检测程序代码中是否包含语法相关的缺陷。  相似文献   

17.
钢板表面缺陷检测系统的设计与实现   总被引:2,自引:0,他引:2       下载免费PDF全文
钢板作为钢铁工业的主要产品形式之一,已成为汽车、机械制造、化工、航空、航天和造船等工业不可缺少的原材料,其表面质量的优劣将直接影响最终产品的性能和质量。针对目前国内钢板表面缺陷检测方法比较落后、检测效果较差的情况,提出了钢板表面缺陷检测系统的设计与实现方案,包括硬件和软件的组成和部署;采用了串、并口编程和图像模式匹配等技术,实现了钢板表面的自动拍照、缺陷检测及生产和缺陷信息的保存;依据图片的几何学特征和光学特征等,实现了缺陷检测算法,包括缺陷识别和缺陷分类。在此基础上开发的钢板表面缺陷检测系统已经成功地应用到了现实的钢板生产中。  相似文献   

18.
提出一种用于管道检测中内外缺陷识别装置方案及识别方法,分别通过三轴正交霍尔传感器和电涡流传感器对管道进行检测,将采集的电压信号经由放大滤波、A/D转换进行信号处理后,将漏磁数据存储下来,将存储数据导入上位机软件,训练出SVM分类机后对这些数据进行分类,甄别出缺陷信号,剔除由于管道自身结构影响所产生的干扰信号。再判断漏磁检测出现缺陷异常时,电涡流是否同样检测到缺陷异常,若电涡流的检测未出现异常,则证明管道有外部缺陷;若电涡流的检测出现异常,则证明管道有内部缺陷。利用本方法进行管道缺陷内检测时,可以更准确地识别内外缺陷。  相似文献   

19.
在软件开发过程中,软件缺陷不但影响软件的质量,而且影响软件的开发进度及开发成本,可见必须采取某种方法避免缺陷的产生。而缺陷是由错误造成的,因而应从控制错误的产生人手。缺陷预防方法能够确保错误在标识并解决后不会再次发生,将缺陷预防方法引人软件过程中,目的是控制缺陷的产生,从而优化生产过程,提高软件质量。介绍了缺陷预防的方法,然后将缺陷预防与软件过程改进相结合,提出基于缺陷预防的软件过程框架,最后通过实验进行验证。  相似文献   

20.
能通过编译的C/C++程序代码可能依然隐含安全、设计或风格上缺陷,从而导致运行时出现内存泄露、运行异常等现象,难以完成软件需求所预期的目标。针对开源软件缺陷检测工具Cppcheck软件存在的不足,主要分析了Cppcheck架构、缺陷模式表示与实现,在对已收集350个缺陷模式分析总结基础上,对其完善,提高缺陷检测能力。通过两组实验验证改进Cppcheck工作的有效性。  相似文献   

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

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