首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 203 毫秒
1.
开发人员思维定式和代码复制与克隆会导致代码中存在相同类型的软件缺陷。基于这一思想,提出一种基于特征相似的软件缺陷排除方法。该方法对已定位缺陷代码进行特征分析,基于该缺陷代码特征,查找项目代码中具有相似特征的代码片段。结合缺陷类型和代码特征对缺陷代码进行分析,建立特征相似关联规则,检测项目代码,排查与缺陷代码相似度超过预定阈值的代码片段,相似度超过预定阈值的代码片段称为疑似代码。通过对科研管理系统和物业系统人工导入错误并进行缺陷排除实验分析和人工检测,证实了该方法能够有效地发现项目中隐含的相似缺陷代码。  相似文献   

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

3.
自动分析软件缺陷报告间相关性的方法研究*   总被引:2,自引:1,他引:1  
针对缺陷报告相关性分析的研究主要采用计算其文本信息相似度的方法使其查全率和查准率并不理想,提出了一种将结构化信息相似度与文本信息相似度计算相结合的方法,即同时提取出缺陷报告中的文本信息(包括主题和详细描述)以及结构化信息(包括补丁、异常堆栈和代码片段),从缺陷外部表现和内部特征两个角度共同衡量缺陷报告间的相关性。通过对Eclipse系统中的1 000个缺陷报告进行实验,结果显示,增加结构化信息相似度计算,可以有效地将缺陷报告间相关性分析的查准率和查全率均提高到90%左右。  相似文献   

4.
软件缺陷在软件开发过程中不可避免,提交的缺陷报告则是分析和修复缺陷的重要信息来源。开发人员常通过借鉴相似的历史缺陷报告和修复信息来辅助对当前新缺陷的分析和修复。文中提出了一种知识驱动的相似缺陷报告推荐方法。该方法首先利用信息检索和Word Embedding技术构建缺陷知识图谱;然后利用TF-IDF和Word Embedding技术计算缺陷报告之间的文本相似度,同时综合考虑缺陷的各项属性,从而得到缺陷报告之间的主次要属性相似度;最后将上述相似度融合成综合相似度,利用综合相似度推荐相似缺陷报告。实验结果表明,与基线方法相比,在Firefox数据集上所提方法的性能平均提高了12.7%。  相似文献   

5.
为提高电力器件的缺陷检测能力,提出基于视觉图像分析和纹理特征提取的电力器件缺陷检测方法。构建电力器件缺陷图像采集模型,结合图像边缘特征检测和信息融合度特征分析电力器件缺陷特征,采用机器视觉特征分析和分块融合特征匹配方法,跟踪识别电力器件缺陷数据特征,通过模糊小波特征分析和特征点标定方法,对缺陷特征视觉融合解析处理,根据缺陷部位的纹理差异性特征提取结果,实现对电力器件的缺陷检测。仿真结果表明,该方法检测准确性较高,缺陷定位精度较好。  相似文献   

6.
目的 电力设备的状态检测和故障维护是保障电力系统正常运行的重要基础。针对目前多数变电站存在电力设备缺陷类型复杂且现有的单分类缺陷检测方法无法满足电力设备的多标签分类缺陷检测需求的问题,提出一种面向电力设备缺陷检测的多模态层次化分类方法。方法 首先采集来自多个变电站的电力设备缺陷图像并进行人工标注、数据增强及归一化等预处理,构建了一个具有层次标签结构的电力设备缺陷图像数据集。然后提出一种基于多模态特征融合的层次化分类模型,采用 ResNet50 网络对图像进行特征提取,利用区域生成网络对目标进行定位以及前景、背景预测;为避免对区域生成网络生成的位置坐标进行量化时引入误差,进一步采用 ROI Align(region of interest align)方法连续操作,生成位置坐标。最后采用层次化分类,将父类别标签嵌入到当前层目标特征表示进行逐层缺陷分类,最后一层得到最终的缺陷检测结果。结果 在电力设备缺陷数据集和基准数据集上,与多标签分类电力设备缺陷检测方法和流行的常用目标检测算法进行对比实验。实验结果表明,模型对绝大部分设备缺陷类别的检测准确率最高,平均检测准确率达到 86. 4%,相比性能第 2 的模型,准确率提升了 5. 1%,并且在基准数据集上的平均检测准确率也提高了 1. 1%~3%。结论 提出的电力设备缺陷检测方法充分利用设备缺陷标签的语义信息、层次结构和设备缺陷数据的图像特征,通过多模态层次化分类模型,能够提升电力设备缺陷检测的准确率。  相似文献   

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

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

9.
针对现有方法检测复杂结构二进制代码安全缺陷的不足,提出新的分析模型,并给出其应用方法。首先以缺陷的源代码元素集合生成特征元素集合,抽取代码结构信息,构建分析模型。然后依据各类中间表示(IR,intermediate representation)语句的统计概率计算分析模型,查找满足特征模型的IR代码组,通过IR代码与二进制代码的转换关系,实现对二进制程序中代码安全缺陷的有效检测。分析模型可应用于二进制单线程程序和并行程序。实验结果表明,相对于现有方法,应用该分析模型能够更全面深入地检测出各类结构复杂的二进制代码安全缺陷,且准确率更高。  相似文献   

10.
利用照相机成像对工业环境中的物体进行表面缺陷检测是自动检测的主要应用之一.近年来,生产规模的扩大对缺陷的快速检测提出了要求,传统方法难以达到较高的效率.同时,缺陷检测更注重对纹理特征的提取,通用的深度卷积网络不能直接应用于该任务.为了克服以上挑战,本文提出了一种基于单阶段目标检测算法的表面缺陷检测模型,通过更宽的骨干网络提取丰富的上下文信息,进行多尺度特征融合,针对不同的检测目标采用差异化的检测头部;同时引入注意力机制,提高特征利用率;为了验证所提出方法的有效性,在3个数据集上进行了实验,取得了较好的性能,并与其他模型进行比较,表明所提出的方法优于现有方法.  相似文献   

11.
基于深度学习的表面缺陷检测方法综述   总被引:6,自引:0,他引:6  
陶显  侯伟  徐德 《自动化学报》2021,47(5):1017-1034
近年来,基于深度学习的表面缺陷检测技术广泛应用在各种工业场景中.本文对近年来基于深度学习的表面缺陷检测方法进行了梳理,根据数据标签的不同将其分为全监督学习模型方法、无监督学习模型方法和其他方法三大类,并对各种典型方法进一步细分归类和对比分析,总结了每种方法的优缺点和应用场景.本文探讨了表面缺陷检测中三个关键问题,介绍了...  相似文献   

12.
随着规模和复杂性的迅猛膨胀,软件系统中不可避免地存在缺陷.近年来,基于深度学习的缺陷预测技术成为软件工程领域的研究热点.该类技术可以在不运行代码的情况下发现其中潜藏的缺陷,因而在工业界和学术界受到了广泛的关注.然而,已有方法大多关注方法级的源代码中是否存在缺陷,无法精确识别具体的缺陷类别,从而降低了开发人员进行缺陷定位及修复工作的效率.此外,在实际软件开发实践中,新的项目通常缺乏足够的缺陷数据来训练高精度的深度学习模型,而利用已有项目的历史数据训练好的模型往往在新项目上无法达到良好的泛化性能.因此,本文首先将传统的二分类缺陷预测任务表述为多标签分类问题,即使用CWE(common weakness enumeration)中描述的缺陷类别作为细粒度的模型预测标签.为了提高跨项目场景下的模型性能,本文提出一种融合对抗训练和注意力机制的多源域适应框架.具体而言,该框架通过对抗训练来减少域(即软件项目)差异,并进一步利用域不变特征来获得每个源域和目标域之间的特征相关性.同时,该框架还利用加权最大均值差异作为注意力机制以最小化源域和目标域特征之间的表示距离,从而使模型可以学习到更多的域无关特征.最后在八个真实世界的开源项目上与最先进的基线方法进行大量对比实验验证了所提方法的有效性.  相似文献   

13.
研究基于行为特征的恶意代码检测模型及其实现方式,并分析实现中的关键技术。使用自定义行为特征编码模板进行恶意代码匹配,将短周期内2次匹配成功作为判定恶意代码的标准,利用最大熵原理分析2次恶意代码行为的信息论特征。实验结果表明,该方法具有较低的病毒检测误报率和漏报率,并且能有效防范未知恶意代码。  相似文献   

14.
随着区块链技术的兴起,智能合约安全问题被越来越多的研究者和企业重视,目前已有一些针对智能合约缺陷检测技术的研究.软件缺陷预测技术是软件缺陷检测技术的有效补充,能够优化测试资源分配,提高软件测试效率.然而,目前还没有针对智能合约的软件缺陷预测研究.针对这一问题,提出了面向Solidity智能合约的缺陷预测方法.首先,设计了一组针对Solidity智能合约特有的变量、函数、结构和Solidity语言特性的度量元集(smart contract-Solidity, SC-Sol度量元集),并将其与重点考虑面向对象特征的度量元集(code complexity and features of object-oriented program, COOP度量元集)组合为COOP-SC-Sol度量元集.然后,从Solidity智能合约代码中提取相关度量元信息,并结合缺陷检测结果,构建Solidity智能合约缺陷数据集.在此基础上,应用了7种回归模型和6种分类模型进行Solidity智能合约的缺陷预测,以验证不同度量元集和不同模型在缺陷数量和倾向性预测上的性能差异.实验结果表明,相对于COOP度量元集...  相似文献   

15.
在软件开发的过程中,开发人员通过复制粘贴式的开发方式或者模块化的开发方式来完成需求是十分常见的,这两种开发方式可以提高开发效率,但同时会导致软件系统中出现大量的相同代码或者相似代码,大量的相似代码会给软件维护等方面带来很大的困难,这也是最常见的重构对象。源代码相似性度量是指利用一定的检测方法分析程序源代码间的相似程度。该技术被应用于代码抄袭检测、代码克隆检测、软件知识产权保护、代码复用等多个领域。为了提高代码相似性度量的准确性,提出了一种基于多特征值的源代码相似性检测技术。构建了源代码注释、型构、代码文本语句与结构中特征提取的方法,并给出了源代码相似度检测的度量模型。通过与权威的代码相似检测系统Moss进行对比实验,结果表明该方法可以更准确地检测出相似代码。  相似文献   

16.
张丹  罗平 《计算机科学》2020,47(3):5-10
在代码开源的潮流下,代码克隆在提高代码质量和降低开发成本的同时,一定程度地影响了软件系统的稳定性、健壮性与可维护性。代码相似性检测在计算机与信息安全发展方面具有重要的意义。为应对代码克隆带来的各种危害,目前学术界和工业界提出了很多代码相似性检测的方法,这些方法按照源代码信息处理程度可分为基于文本、词法、语法、语义和度量值5类;并开发了相应的检测工具,这些工具实现了很好的检测效果,但在大数据时代背景下也面临着数据规模不断扩大带来的一系列挑战。文中综述了代码相似性检测的方法,对5类检测方法做了详细比较;结合传统方法与机器学习技术,归类了不同检测方法对应的检测工具;按照不同评价标准评估了检测工具的检测效果,总结了每种检测方法的首选检测工具,并对未来代码相似性检测的研究方向做出了展望。  相似文献   

17.
本文在分析软件过程中缺陷类型、缺陷注入、缺陷识别的基础上,对传统缺陷管理流程进行改进,增加了缺陷排除有效性的度量方法;然后提出一种实用的软件缺陷管理流程,建立了一个以软件缺陷生命周期为基础的度量模型,并给出了相应的缺陷矩阵度量方法;最后把该缺陷管理流程和度量方法应用在某公司的两个软件项目中,对各阶段的缺陷进行了度量,经实践和数据分析得出,运用此缺陷管理流程和度量方法可以为开发团队设定具体阶段目标和质量计划提供数据基础,为过程控制、过程评价、持续改进等提供量化管理的基础,表明本文改进后的缺陷管理流程和度量方法模型是有效的。  相似文献   

18.
陈秋远  李善平  鄢萌  夏鑫 《软件学报》2019,30(4):962-980
代码克隆(code clone),是指存在于代码库中两个及以上相同或者相似的源代码片段.代码克隆相关问题是软件工程领域研究的重要课题.代码克隆是软件开发中的常见现象,它能够提高效率,产生一定的正面效益.但是研究表明,代码克隆也会对软件系统的开发、维护产生负面的影响,包括降低软件稳定性,造成代码库冗余和软件缺陷传播等.代码克隆检测技术旨在寻找检测代码克隆的自动化方法,从而用较低成本减少代码克隆的负面效应.研究者们在代码克隆检测方面获得了一系列的检测技术成果,根据这些技术利用源代码信息的程度不同,可以将它们分为基于文本、词汇、语法、语义4个层次.现有的检测技术针对文本相似的克隆取得了有效的检测结果,但同时也面临着更高抽象层次克隆的挑战,亟待更先进的理论、技术来解决.着重从源代码表征方式角度入手,对近年来代码克隆检测研究进展进行了梳理和总结.主要内容包括:(1)根据源代码表征方式阐述并归类了现有的克隆检测方法;(2)总结了模型评估中使用的实验验证方法与性能评估指标;(3)从科学性、实用性和技术难点这3个方面归纳总结了代码克隆研究的关键问题,围绕数据标注、表征方法、模型构建和工程实践4个方面,阐述了问题的可能解决思路和研究的未来发展趋势.  相似文献   

19.
半监督软件缺陷挖掘研究综述   总被引:3,自引:0,他引:3  
软件质量是计算机系统安全可靠运行的保障,而软件缺陷是导致软件质量低下的重要诱因。软件缺陷挖掘技术凭借其能够通过对软件代码及其相关数据进行分析建模,发现软件系统潜在的缺陷,已得到了软件质量保障领域的广泛关注。要准确发现软件模块中潜在的缺陷,需要利用大量带有缺陷情况标注的模块进行学习。然而,缺陷情况标注往往需要通过详细测试或人工代码检查获取,要消耗大量测试和人工资源,在实际应用中难以满足,这严重制约了软件缺陷挖掘的性能。针对这一问题,半监督学习技术被引入软件 缺陷挖掘,通过对大量缺少标注的模块进行利用,辅助提升软件缺陷挖掘的性能。本文对半监督缺陷挖掘技术的研究现状进行综述。首先综述了软件缺陷挖掘研究现状,然后简要介绍了半监督学习的4种学习范式;最后系统梳理了基于半监督学习进行软件缺陷挖掘的多种方法与技术。  相似文献   

20.
The author analyzes and models the software development process, and presents field experience for large distributed systems. Defect removal is shown to be the bottleneck in achieving the appropriate quality level before system deployment in the field. The time to defect detection, the defect repair time and a factor reflecting the introduction of new defects due to imperfect defect repair are some of the constants in the laws governing defect removal. Test coverage is a measure of defect removal effectiveness. A birth-death mathematical model based on these constants is developed and used to model field failure report data. The birth-death model is contrasted with a more classical decreasing exponential model. Both models indicate that defect removal is not a cost-effective way to achieve quality. As a result of the long latency of software defects in a system, defect prevention is suggested to be a far more practical solution to quality than defect removal  相似文献   

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

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