首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到17条相似文献,搜索用时 252 毫秒
1.
王丹丹  王青 《软件学报》2016,27(12):3014-3029
软件持续演化已经是不争的事实,演化意味着需求的变化,也就必然导致了缺陷的不断产生.现有的缺陷预测技术多偏重于基于软件工作制品,如文档、代码、测试用例等的属性来预测缺陷,但如果把软件看作一种物种,其生命周期内的演化本质上是一个物种的逐步进化,其缺陷的表现也必然带着该物种的特征,而且还受到进化历史中的演化轨迹的影响.已有一些研究人员开始研究软件演化过程,并提出了一些演化度量元.研究和提出了可以刻画软件演化轨迹的两类演化度量元,并通过案例研究,建立缺陷预测模型.在6个著名开源软件数据集上训练和验证了由软件演化度量元建立的缺陷预测模型,获得了良好的预测性能,验证了演化度量元对缺陷预测性能的改进.  相似文献   

2.
李显伟 《计算机应用研究》2023,40(12):3545-3550
针对现有智能合约缺陷预测方法未考虑合约代码内部结构对缺陷产生的影响的不足,提出了一种基于网络度量元的Solidity智能合约缺陷预测方法。首先,通过Solidity-Antlr4工具构建Solidity智能合约的抽象语法树(abstract syntax tree, AST);其次,根据抽象语法树构建合约网络,网络中的节点代表函数和属性,边代表函数间的调用关系和函数对属性的操作关系;然后,引入复杂网络领域的知识,构建了一套针对Solidity智能合约的网络度量元;最后,基于多种回归模型和分类模型构建智能合约缺陷预测模型,进而比较不同类型的度量元在Solidity智能合约缺陷预测方面的性能。数据实验表明,结合了网络度量元的缺陷预测模型的预测性能比相应没有结合网络度量元的模型要好。  相似文献   

3.
随着区块链技术的兴起,智能合约安全问题被越来越多的研究者和企业重视,目前已有一些针对智能合约缺陷检测技术的研究.软件缺陷预测技术是软件缺陷检测技术的有效补充,能够优化测试资源分配,提高软件测试效率.然而,目前还没有针对智能合约的软件缺陷预测研究.针对这一问题,提出了面向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度量元集...  相似文献   

4.
软件缺陷预测是改善软件开发质量,提高测试效率的重要途径.文中提出一种基于软件度量元的集成k-NN软件缺陷预测方法.首先,该方法在不同的Bootstrap抽样数据集上迭代训练生成一个基本k-NN预测器集合.然后,这些基本预测器分别对软件模块进行独立预测,各基本预测值将被融合生成最终的预测结果.为判别新的软件模块是否为缺陷模块,设计分类阈值的自适应学习方法.集成预测结果大于该阈值的模块将被识别为缺陷模块,反之则为正常模块.NASAMDP及PROMISEAR标准软件缺陷数据集上的实验结果表明集成k-NN缺陷预测的性能较之广泛采用的对比缺陷预测方法有较明显的提高,同时也证明软件度量元在缺陷预测中的有效性.  相似文献   

5.
软件缺陷预测是典型的类不均衡学习问题,其中有缺陷的样本数量远少于无缺陷的样本数量,但有缺陷的样本通常是预测的重点。现有的软件预测模型大多建立在基于静态度量元的软件缺陷数据集上,重点关注如何平衡类分布,而忽略了数据集中属性特征对软件缺陷的判别能力。当软件缺陷数据集中的属性特征对类目标概念缺乏判别能力时,传统机器学习算法难以构建有效的软件缺陷预测模型,从而无法获得有效的预测性能。为此,提出了一种基于不相似性的软件缺陷预测算法,通过改善软件缺陷数据集中属性的判别能力,进而提升软件缺陷预测性能。实验证明:基于不相似性的软件缺陷预测算法能够有效地改善传统机器学习算法在软件缺陷数据集上的预测性能。  相似文献   

6.
基于频谱的缺陷定位(spectrum-based fault localization, SBFL)通过分析测试用例的覆盖信息和执行结果信息进行快速定位,是目前最常用的缺陷定位技术。然而,该方法未能充分利用代码中隐含的语义和结构信息。若能将缺陷预测中使用到的代码结构信息和频谱信息融合使用,将有助于进一步提升缺陷定位的效果。为此,提出了一种融合代码静态特征和频谱的软件缺陷定位(fault localization combing static features and spectrums, FLFS)技术。首先,从Halstead等度量元集合中选取度量元指标并进行修改,以适用于度量代码的方法级特征;然后,根据选取的度量元指标提取程序中各个方法的静态特征并用于训练缺陷预测模型;最后,使用缺陷预测模型预测程序中各方法存在缺陷的预测可疑度,并与SBFL技术计算的频谱可疑度进行融合,以定位缺陷所在方法。为验证FLFS的有效性,将其与两种定位效果最好的SBFL技术DStar和Ochiai在Defects4J数据集上进行了对比实验。结果表明,FLFS具有更好的缺陷定位性能,对于Einspe...  相似文献   

7.
测试异味是软件测试中存在不良设计和不良实现的征兆.以前的研究表明,测试异味的存在与生产代码的缺陷倾向有着明显的关联,而最近的研究表明,测试相关的因素可以作为软件代码质量的可靠预测特征.本文在原有的即时缺陷预测模型中加入测试异味这一新角度的特征,构建包含代码度量、过程度量和测试异味3不同角度的特征数据集,涉及从代码编写到代码测试再到后期维护的全过程.本文在5个系统中实验并对比了新模型与旧模型的性能,以探究测试异味对即时缺陷预测模型效果的提升,并用可解释性人工智能算法衡量特征重要性.结果显示,加入测试异味后,模型的AUC_ROC值提升了2.5%-6.7%,精度提高1.4%-3.9%,召回率提高0.8%-4%,F1值提高2.3%-4.6%.根据可解释性人工智能算法SHAP分析的各特征属性对模型预测输出的贡献度排序,贡献度排在前20位的特征属性中有6种测试异味,分别为ECT,UT,AR,GF,MNT,ET,其中ECT对模型输出贡献度排在第9位,而ET则排在第20位,这表明不同测试异味对缺陷预测的贡献度有差别.同时,不同系统中的测试异味对模型预测输出的贡献度排序也存在较大差异.  相似文献   

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

9.
在基于软件产品度量值的缺陷预测中,度量值主要是基于两个层次:类/文件层次和包/组件层次。类级别的预测模型通常会有更好的预测效率,而包级别的模型往往能得到更好的查全率及查准率。提出综合类级别和包级别度量值进行缺陷预测的方法,在类级别预测的基础上,使用包级别预测的信息对类级别进行调整,在类级别预测中融合包级别预测中所隐含的问题域信息。通过基于Eclipse3.0系统的实验发现,该方法能够有效改善缺陷预测的效果。与类级别的缺陷预测模型相比,综合包级别度量值的缺陷预测方法提高了5%到8%的查全率。同时在预测效率上,测试出50%的缺陷,使用该方法可以有效减少3.6%到9.84%的代码检查量。  相似文献   

10.
为了提高软件的可靠性,软件缺陷预测已经成为软件工程领域中一个重要的研究方向.传统的软件缺陷预测方法主要是设计静态代码度量,并用机器学习分类器来预测代码的缺陷概率.但是,静态代码度量未能充分考虑到潜藏在代码中的语义特征.根据这种状况,本文提出了一种基于深度卷积神经网络的软件缺陷预测模型.首先,从源代码的抽象语法树中选择合适的结点提取表征向量,并构建字典将其映射为整数向量以方便输入到卷积神经网络.然后,基于GoogLeNet设计卷积神经网络,利用卷积神经网络的深度挖掘数据的能力,充分挖掘出特征中的语法语义特征.另外,模型使用了随机过采样的方法来处理数据分类不均衡问题,并在网络中使用丢弃法来防止模型过拟合.最后,用Promise上的历史工程数据来测试模型,并以AUC和F1-measure为指标与其他3种方法进行了比较,实验结果显示本文提出的模型在软件缺陷预测性能上得到了一定的提升.  相似文献   

11.
软件缺陷预测可帮助开发人员提前预测缺陷程序,合理分配有限的测试资源。软件缺陷预测的准确度不仅依赖于预测方法的选择,更依赖于软件的度量指标。因此,结合多元度量指标进行软件缺陷预测已成为当前的研究热点。从度量指标出发,对传统度量指标、多元度量指标以及结合多元度量指标的缺陷预测的研究进展进行了系统介绍。主要工作包含:介绍了传统的代码和过程度量指标、基于传统度量指标的软件缺陷预测模型以及影响数据质量的因素;阐述了语义结构度量指标;分析列举了当前用于软件缺陷预测的评价指标;结合预测粒度、传统度量指标、语义结构度量指标、跨项目软件缺陷预测对多元度量指标软件缺陷预测未来的研究趋势进行了展望。  相似文献   

12.
陈浙哲  鄢萌  夏鑫  刘忠鑫  徐洲  雷晏 《软件学报》2022,33(8):3015-3034
代码自然性(code naturalness)研究是自然语言处理领域和软件工程领域共同的研究热点之一,旨在通过构建基于自然语言处理技术的代码自然性模型,以解决各种软件工程任务.近年来,随着开源软件社区中源代码和数据规模的不断扩大,越来越多的研究人员注重钻研源代码中蕴藏的信息,并且取得了一系列研究成果.但与此同时,代码自然性研究在代码语料库构建、模型构建和任务应用等环节面临许多挑战.鉴于此,从代码自然性技术的代码语料库构建、模型构建和任务应用等方面对近年来代码自然性研究及应用进展进行梳理和总结.主要内容包括:(1)介绍了代码自然性的基本概念及其研究概况;(2)归纳目前代码自然性研究的语料库,并对代码自然性模型建模方法进行分类与总结;(3)总结代码自然性模型的实验验证方法和模型评价指标;(4)总结并归类了目前代码自然性的应用现状;(5)归纳代码自然性技术的关键问题;(6)展望代码自然性技术的未来发展.  相似文献   

13.
In defect prediction studies, open-source and real-world defect data sets are frequently used. The quality of these data sets is one of the main factors affecting the validity of defect prediction methods. One of the issues is repeated data points in defect prediction data sets. The main goal of the paper is to explore how low-level metrics are derived. This paper also presents a cleansing algorithm that removes repeated data points from defect data sets. The method was applied on 20 data sets, including five open source sets, and area under the curve (AUC) and precision performance parameters have been improved by 4.05% and 6.7%, respectively. In addition, this work discusses how static code metrics should be used in bug prediction. The study provides tips to obtain better defect prediction results.  相似文献   

14.
软件缺陷预测技术用于定位软件中可能存在缺陷的代码模块,从而辅助开发人员进行测试与修复。传统的软件缺陷特征为基于软件规模、复杂度和语言特点等人工提取的静态度量元信息。然而,静态度量元特征无法直接捕捉程序上下文中的缺陷信息,从而影响了软件缺陷预测的性能。为了充分利用程序上下文中的语法语义信息,论文提出了一种基于混合注意力机制的软件缺陷预测方法 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%。  相似文献   

15.
静态软件缺陷预测方法研究   总被引:14,自引:7,他引:7  
静态软件缺陷预测是软件工程数据挖掘领域中的一个研究热点.通过分析软件代码或开发过程,设计出与软件缺陷相关的度量元;随后,通过挖掘软件历史仓库来创建缺陷预测数据集,旨在构建出缺陷预测模型,以预测出被测项目内的潜在缺陷程序模块,最终达到优化测试资源分配和提高软件产品质量的目的.对近些年来国内外学者在该研究领域取得的成果进行了系统的总结.首先,给出了研究框架并识别出了影响缺陷预测性能的3个重要影响因素:度量元的设定、缺陷预测模型的构建方法和缺陷预测数据集的相关问题;接着,依次总结了这3个影响因素的已有研究成果;随后,总结了一类特殊的软件缺陷预测问题(即,基于代码修改的缺陷预测)的已有研究工作;最后,对未来研究可能面临的挑战进行了展望.  相似文献   

16.
在移动App即时缺陷预测领域,大部分研究只关注预测模型的性能,而忽略了模型的可解释性,因此会造成开发人员对缺陷预测模型的预测结果缺乏信任,并阻碍了缺陷预测模型在实践中的应用。主要针对Android移动App即时缺陷预测模型的可解释性展开研究,通过差分进化算法对局部可解释技术LIME方法进行超参优化得到ExplainApp方法,该方法可以对预测结果生成高质量解释。选择了14个实际Android应用程序作为实验对象,最终结果表明,ExplainApp方法可以解释移动App即时缺陷预测模型得到的实例预测结果。ExplainApp方法在拟合优度上要优于原始的LIME方法,可以平均提高94.50%。  相似文献   

17.
一种新颖的词聚类算法和可变长统计语言模型   总被引:10,自引:0,他引:10  
基于类的统计语言模型是解决统计模型数据稀疏问题的重要方法。但该方法的两个主要瓶颈颈在于:(1)词的聚类。目前我们很难找到一种比较成熟且运算量适中、收敛效果好的聚类算法。(2)基于类的模型为增强对不同领域语料的适应性能往往牺牲了一部分预测能力。该文的工作就是围绕这两个瓶颈问题展开的,在词的聚类方面,作者基于自然语言词与词之间的相似度,提出了一种词的分层聚类算法。实验证明,该算法在算法复杂度和聚类效果  相似文献   

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

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