CN113448821A - 一种识别工程缺陷的方法和装置 - Google Patents
一种识别工程缺陷的方法和装置 Download PDFInfo
- Publication number
- CN113448821A CN113448821A CN202010218505.0A CN202010218505A CN113448821A CN 113448821 A CN113448821 A CN 113448821A CN 202010218505 A CN202010218505 A CN 202010218505A CN 113448821 A CN113448821 A CN 113448821A
- Authority
- CN
- China
- Prior art keywords
- feature data
- static measurement
- meta
- defect
- prediction model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000007547 defect Effects 0.000 title claims abstract description 63
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000003068 static effect Effects 0.000 claims abstract description 81
- 238000005259 measurement Methods 0.000 claims abstract description 53
- 238000013528 artificial neural network Methods 0.000 claims description 36
- 238000012545 processing Methods 0.000 claims description 11
- 238000004422 calculation algorithm Methods 0.000 claims description 10
- 238000012549 training Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 8
- 238000005457 optimization Methods 0.000 claims description 8
- 210000002569 neuron Anatomy 0.000 description 21
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 13
- 238000012360 testing method Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000004913 activation Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000002790 cross-validation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000000275 quality assurance Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了识别工程缺陷的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括获取被预测的目标工程,解析目标工程中每个类编译后生成的字节码文件,以得到静态度量元特征数据;将静态度量元特征数据输入至预先构建的预测模型,得到每个类缺陷存在概率,进而生成所述目标工程的缺陷信息。从而,本发明的实施方式能够解决现有软件缺陷预测效率低,泛化能力差的问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种识别工程缺陷的方法和装置。
背景技术
随着软件规模的扩大,准确地找出软件中存在的缺陷是相当耗时的。测试人员需要从软件代码和功能等各个不同角度设计大量的测试用例,去测试已开发的系统。现如今,基于众多机器学习算法的软件缺陷预测技术通过对软件缺陷历史数据进行分析,帮助测试人员找出缺陷高发模块,从而合理分配有限资源,提高测试效率。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
在众多优秀的机器学习算法中,人工神经网络分类技术被广泛地应用于软件缺陷预测,且有着很好的预测效果。它通过对样本的反复学习,不断更新神经元之间的连接权值和阈值来完善自身结构。但其自身包含一些次优的默认参数,使用次优参数建立的模型的泛化能力也并不理想。此外,目前仍缺少方便用户使用的软件缺陷预测模型工具。
发明内容
有鉴于此,本发明实施例提供一种识别工程缺陷的方法和装置,能够解决现有软件缺陷预测效率低,泛化能力差的问题。
为实现上述目的,根据本发明实施例的一个方面,提供了一种识别工程缺陷的方法,包括获取被预测的目标工程,解析目标工程中每个类编译后生成的字节码文件,以得到静态度量元特征数据;将静态度量元特征数据输入至预先构建的预测模型,得到每个类缺陷存在概率,进而生成所述目标工程的缺陷信息。
可选地,将静态度量元特征数据输入至预先构建的预测模型之前,包括:
计算每个静态度量元特征数据的变量重要性数值,以根据所述变量重要性数值进行排序;
基于排序后的静态度量元特征数据,计算静态度量元特征数据之间的相关性系数,以筛选出用于输入至预先构建的预测模型的静态度量元特征数据子集。
可选地,还包括:
采用对数几率回归模型,计算每个静态度量元特征数据的变量重要性数值。
可选地,还包括:
分别计算两个静态度量元特征数据之间的斯皮尔曼相关系数、皮尔逊相关系数和肯德尔相关系数,以将三个相关系数的均值作为静态度量元特征数据之间的相关性系数。
可选地,还包括:
当所述相关性系数的绝对值大于预设阈值时,基于排序后的静态度量元特征数据,将排序靠后的静态度量元特征数据去除。
可选地,包括:
采用单隐层前馈型神经网络作为预测模型;其中,在训练所述预测模型时每次迭代都通过误差逆向传播来调节权值和阈值,直至迭代完成使单隐层前馈型神经网络的误差平方和最小。
可选地,还包括:
在训练所述预测模型时,基于网格搜索的自动参数优化算法,得到单隐层前馈型神经网络的最优参数组合。
另外,本发明还提供了一种识别工程缺陷的装置,包括获取模块,用于获取被预测的目标工程,解析目标工程中每个类编译后生成的字节码文件,以得到静态度量元特征数据;处理模块,用于将静态度量元特征数据输入至预先构建的预测模型,得到每个类缺陷存在概率,进而生成所述目标工程的缺陷信息。
上述发明中的一个实施例具有如下优点或有益效果:利用解析目标工程中每个类编译后生成的字节码文件得到的静态度量元特征数据,输入至预先构建的预测模型,得到每个类缺陷存在概率,进而归类出缺陷存在概率偏高和偏低的类,缩短了自测耗时,降低了软件开发成本,因此提高了软件缺陷预测效率以及泛化能力。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明第一实施例的识别工程缺陷的方法的主要流程的示意图;
图2是根据本发明实施例的单隐层前馈型神经网络的示意图;
图3是根据本发明实施例的Sigmoid函数图的示意图;
图4是根据本发明第二实施例的识别工程缺陷的方法的主要流程的示意图;
图5是根据本发明第三实施例的识别工程缺陷的方法的主要流程的示意图;
图6是根据本发明实施例的识别工程缺陷的装置的主要模块的示意图;
图7是本发明实施例可以应用于其中的示例性系统架构图;
图8是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明第一实施例的识别工程缺陷的方法的主要流程的示意图,如图1所示,所述识别工程缺陷的方法包括:
步骤S101,获取被预测的目标工程,解析目标工程中每个类编译后生成的字节码文件,以得到静态度量元特征数据。
在一些实施例中,得到静态度量元特征数据之后,可以对静态度量元特征数据进行预处理,去除冗余和无用特征数据,优化输入至预先构建的预测模型的数据。具体实施过程包括:
计算每个静态度量元特征数据的变量重要性数值(变量重要性(VariableImportance,VI),即每个度量元对结果的贡献作用。),以根据所述变量重要性数值进行排序。基于排序后的静态度量元特征数据,计算静态度量元特征数据之间的相关性系数,以筛选出用于输入至预先构建的预测模型的静态度量元特征数据子集。
在实施例中,本发明被预测的目标工程可以为Java工程、Android工程等等。例如:Java工程的静态度量元特征数据如下表1所示:
表1JAVA工程静态度量元特征数据
较佳地,Java工程静态度量元特征数据可以通过解析Java字节码文件(.class文件)得到的20个静态度量元特征数据。
作为进一步地实施例,采用对数几率回归模型,计算每个静态度量元特征数据的变量重要性数值。其中,对数几率回归模型为利用广义线性模型解决二分类任务的一种方法。
另外,分别计算两个静态度量元特征数据之间的斯皮尔曼相关系数、皮尔逊相关系数和肯德尔相关系数,以将三个相关系数的均值作为静态度量元特征数据之间的相关性系数。即:
计算两个静态度量元特征数据之间Spearman相关系数矩阵ρ,计算两个静态度量元特征数据之间Pearson相关系数矩阵γ,计算两个静态度量元特征数据之间Kendall相关系数矩阵τ,最后静态度量元特征数据之间的相关性系数矩阵
其中,斯皮尔曼(Spearman)相关相关系数,用于表示两个变量的等级相关性的统计量。皮尔逊(Pearson)相关系数,用于表示两个变量之间线性相关程度的统计量。肯德尔(Kendall)相关系数,用于检测两个变量依赖性的统计量。
值得说明的是,当所述相关性系数的绝对值大于预设阈值时,基于排序后的静态度量元特征数据,将排序靠后的静态度量元特征数据去除。优选地,所述预设阈值可以设置为0.9。
步骤S102,将静态度量元特征数据输入至预先构建的预测模型,得到每个类缺陷存在概率,进而生成所述目标工程的缺陷信息。
在一些实施例中,采用单隐层前馈型神经网络作为预测模型。其中,在训练所述预测模型时每次迭代都通过误差逆向传播(Back Propagation,BP)来调节权值和阈值,直至迭代完成使单隐层前馈型神经网络的误差平方和最小。
在具体的实施例中,如图2所示,为通过误差逆向传播来调节权值和阈值的单隐层前馈型神经网络,输入输出关系为:
yj=f(sj)
其中,ωji表示神经元之间的连接权值,xi表示神经网络的第i个输入节点,θj为隐层第j个神经元的阈值,sj表示隐层第j个神经元的输入,d为输入节点个数,f(sj)表示激活函数,激活函数使用Sigmoid函数,其图像如图3所示,函数值范围是(0,1)。
Sigmoid函数表达式下所示:Sigmoid(x)=1/(1+e^(-x))
单隐层前馈型神经网络的训练过程就是对神经元的权值和阈值不断迭代更新的过程,每次迭代中通过误差逆向传播来调节权值和阈值,直到迭代完成使网络的误差平方和最小。设数据集
D={(x1,y1),(x2,y2),…(xn,yn),xi∈Rd,yi∈{0,1}},即输入样本由d个特征属性描述,样本容量为n。则单隐层前馈型神经网络是d维输入信号Xi(其中,Xi=(x1,x2,...,xd))通过隐层神经元正向传播并作用于输出层神经元,经过非线性的激活函数变换处理产生输出信号yi,计算输出信号及预测值与真实值之间的误差,反向传播误差且沿梯度下降的方向调节神经元之间的连接权值和阈值。经过反复学习训练,确定与最小误差相对应的网络参数。
其中,信号正向传播,即隐层各神经元的激活值sj为:
其中,ωij表示输入层第i个神经元与隐层第j个神经元的连接权值;θj表示隐层神经元的阈值;p表示隐层神经元的数量;d表示输入层神经元的数量。隐层各个神经元的输出值bj通过Sigmoid函数处理输入值得到:
输出层神经元的激活值oq为:
其中,误差逆向传播,即对于单个样例的误差通过方差代价函数计算:
容量为n的数据集,整体的代价函数J(ω,θ)为:
上式的第二项是一个规则化权重衰减项,λ是权重衰减因子,它的作用是防止神经网络发生过拟合现象。其中α∈(0,1)表示学习率,控制着每一轮迭代的更新步长,太大容易发生震荡,太小则会导致收敛速度过慢。梯度下降算法在每一次迭代中对ω和θ进行更新:
作为进一步地实施例,在训练所述预测模型时,基于网格搜索(Grid Search,GS)的自动参数优化算法,得到单隐层前馈型神经网络的最优参数组合。其中,网格搜索(GridSearch,GS)的自动参数优化算法是由需要参与优化的参数数目N和每个参数的搜索步长M(即候选值的数目)确定一个N维的搜索空间,该空间包含MN种参数组合,通过N层网格搜索算法搜索出使预测精度达到最高的最优参数组合。
由于隐层神经元数量以及权重衰减因子对神经网络的学习能力起着至关重要的作用。如果隐层神经元数量过少,会降低单隐层前馈型神经网络的学习能力和信息处理能力。反之,若过多,不仅会增加单隐层前馈型神经网络结构的复杂性,也会使其收敛速度变慢并且更加容易陷入局部最优。如果选择了不合适的权重衰减因子,会使单隐层前馈型神经网络发生过拟合现象。本发明通过基于网格搜索的自动参数优化算法,优化隐层神经元数量以及权重衰减因子,以改进单隐层前馈型神经网络。
作为更进一步地实施例,在构建单隐层前馈型神经网络时,可以按预设规则生成候选参数网格搜索空间,搜索网格空间构建单隐层前馈型神经网络求正确率,进而选择最优单隐层前馈型神经网络。目标函数可以表示为:
上式中,size表示隐层神经元的数量,decay表示权重衰减因子λ,tuneLength表示参数的网格搜索步长。tuneLength|size表示size有tuneLength个候选值。同理,tuneLength|decay表示decay有tuneLength个候选值。size和decay这两个参数构成了一个二维空间,在训练过程中获取候选组合中使预测正确率最高的最优参数组合和最优单隐层前馈型神经网络。
需要说明的是,按预设规则生成候选参数网格搜索空间时,网格中size是由服从均匀分布的tuneLength个自然数构成的等差数列,如:1,3,5…;decay是由1的e-n倍的tuneLength个实数组成的等比数列(若decay中含有0,则其余decay值组成等比数列),如:0e-0,1e-1,1e-2…,即0,0.1,0.01…。
根据生成tuneLength2种参数组合构成的网格搜索空间:size和decay的所有组合构成参数候选网格,网格中每一格代表了一种参数组合,所有网格构成了一个网格搜索空间。
而在搜索网格空间构建单隐层前馈型神经网络求正确率时,将隐层神经元数量size和权重衰减因子decay设置成网格中所有可能的参数组合去训练数据,即每一组参数会训练出一个单隐层前馈型神经网络。优选地采用十倍交叉验证方法取样,该方法将样本平均分成10份,每次使用其中的9份训练样本,其余一份用来验证当前模型的有效性,如此进行10次,10次正确率的平均值即为该参数组合下BP神经网络的正确率。
另外,将使用网格空间中所有参数组合构建好的单隐层前馈型神经网络的正确率从大到小排序,正确率最高即为本次训练的单隐层前馈型神经网络,其对应的参数组合即为当前网格搜索空间中的最优参数组合。
图4是根据本发明第二实施例的识别工程缺陷的方法的主要流程的示意图,所述识别工程缺陷的方法可以包括:
步骤S401,获取被预测的目标工程,解析目标工程中每个类编译后生成的字节码文件,以得到静态度量元特征数据。
步骤S402,计算每个静态度量元特征数据的变量重要性数值,以根据所述变量重要性数值进行排序。
较佳地,采用对数几率回归模型,计算每个静态度量元特征数据的变量重要性数值。
步骤S403,基于排序后的静态度量元特征数据,计算静态度量元特征数据之间的相关性系数,以筛选出用于输入至预先构建的预测模型的静态度量元特征数据子集。
较佳地,分别计算两个静态度量元特征数据之间的斯皮尔曼相关系数、皮尔逊相关系数和肯德尔相关系数,以将三个相关系数的均值作为静态度量元特征数据之间的相关性系数。
步骤S404,将静态度量元特征数据子集输入至预先构建的预测模型,得到每个类缺陷存在概率,进而生成所述目标工程的缺陷信息。
图5是根据本发明第三实施例的识别工程缺陷的方法的主要流程的示意图,所述识别工程缺陷的方法可以包括:
步骤S501,获取被预测的目标工程,解析目标工程中每个类编译后生成的字节码文件,以得到静态度量元特征数据。
步骤S502,计算每个静态度量元特征数据的变量重要性数值,以根据所述变量重要性数值进行排序。
步骤S503,计算静态度量元特征数据之间的相关性系数。
步骤S504,判断所述相关性系数的绝对值大于预设阈值,若是则进行步骤S505,否则直接进行步骤S506。
步骤S505,基于排序后的静态度量元特征数据,将排序靠后的静态度量元特征数据去除。
步骤S506,将静态度量元特征数据输入至预先构建的预测模型。
步骤S507,生成所述目标工程的缺陷信息。
在实施例中,缺陷信息以excel文档输出。其中,设置className字段表示被预测的类名(例如Java类名),设置bug字段则表示对该类的预测结果,“1”表示该类存在缺陷的概率偏高,“0”表示存在缺陷的概率偏低。开发人员可以参考预测结果文档首先针对预测结果为“1”的Java类设计测试用例进行测试。
还值得说明的是,本发明的具体实施例可以采用R语言进行预测模型构建和数据分析,使用Java语言实现可视化界面,并依赖开源工具CKJM extended统计静态度量元特征数据。Java与R通过开启Rserver进行交互。工具运行的具体环境详见表2。
表2
操作系统 | Windows |
JDK版本 | 1.7.0_80 |
R版本 | i386 3.5.1 |
数据分析环境 | RStudio-1.1.383 |
界面开发环境 | NetBeans IDE 8.0.2 |
依赖 | 开源工具CKJM extended |
综上所述,本发明所述识别工程缺陷的方法,基于网格搜索(Grid Search)参数优化BP(Back Propagation)误差逆向传播神经网络算法,训练JAVA工程静态度量元特征数据,构建GS-BP(Grid Search-Back Propagation)软件缺陷预测模型。最终基于该预测模型开发出便于软件研发人员使用的JAVA识别工程缺陷的模型工具。
也就是说,本发明可以提前归类出缺陷存在概率偏高和偏低的Java类,使得软件研发人员在代码自测时可以优先针对缺陷存在概率偏高的Java类设计测试用例,缩短自测耗时,从而降低了软件开发成本。另外,本发明也能基于预测结果进行代码重构,例如重构缺陷存在概率偏高的工程代码等,为未来软件工程的质量保证和管理提供了极大的技术支持。
图6是根据本发明实施例的识别工程缺陷的装置的主要模块的示意图,如图6所示,所述识别工程缺陷的装置600包括获取模块601和处理模块602。其中,获取模块601获取被预测的目标工程,解析目标工程中每个类编译后生成的字节码文件,以得到静态度量元特征数据。处理模块602将静态度量元特征数据输入至预先构建的预测模型,得到每个类缺陷存在概率,进而生成所述目标工程的缺陷信息。
在一些实施例中,获取模块601还可以计算每个静态度量元特征数据的变量重要性数值,以根据所述变量重要性数值进行排序。基于排序后的静态度量元特征数据,计算静态度量元特征数据之间的相关性系数,以筛选出用于输入至预先构建的预测模型的静态度量元特征数据子集。
进一步地实施例,采用对数几率回归模型,计算每个静态度量元特征数据的变量重要性数值。
另一进一步地实施例,分别计算两个静态度量元特征数据之间的斯皮尔曼相关系数、皮尔逊相关系数和肯德尔相关系数,以将三个相关系数的均值作为静态度量元特征数据之间的相关性系数。优选地实施例,当所述相关性系数的绝对值大于预设阈值时,基于排序后的静态度量元特征数据,将排序靠后的静态度量元特征数据去除,从而筛选出用于输入至预先构建的预测模型的静态度量元特征数据子集。
作为又一些实施例,采用单隐层前馈型神经网络作为预测模型;其中,在训练所述预测模型时每次迭代都通过误差逆向传播来调节权值和阈值,直至迭代完成使单隐层前馈型神经网络的误差平方和最小。
值得说明的是,在训练所述预测模型时,基于网格搜索的自动参数优化算法,得到单隐层前馈型神经网络的最优参数组合。
需要说明的是,在本发明所述识别工程缺陷的方法和所述识别工程缺陷的装置在具体实施内容上具有相应关系,故重复内容不再说明。
图7示出了可以应用本发明实施例的识别工程缺陷的方法或识别工程缺陷的装置的示例性系统架构700。
如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用。
终端设备701、702、703可以是具有识别工程缺陷的屏并且支持浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所浏览的软件工程提供支持的后台管理服务器(仅为示例)。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机系统800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的行为和处理。在RAM803中,还存储有计算机系统800操作所需的各种程序和数据。CPU801、ROM802以及RAM803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶识别工程缺陷的器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括获取模块和处理模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括获取被预测的目标工程,解析目标工程中每个类编译后生成的字节码文件,以得到静态度量元特征数据;将静态度量元特征数据输入至预先构建的预测模型,得到每个类缺陷存在概率,进而生成所述目标工程的缺陷信息。
根据本发明实施例的技术方案,能够解决现有软件缺陷预测效率低,泛化能力差的问题。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种识别工程缺陷的方法,其特征在于,包括:
获取被预测的目标工程,解析目标工程中每个类编译后生成的字节码文件,以得到静态度量元特征数据;
将静态度量元特征数据输入至预先构建的预测模型,得到每个类缺陷存在概率,进而生成所述目标工程的缺陷信息。
2.根据权利要求1所述的方法,其特征在于,将静态度量元特征数据输入至预先构建的预测模型之前,包括:
计算每个静态度量元特征数据的变量重要性数值,以根据所述变量重要性数值进行排序;
基于排序后的静态度量元特征数据,计算静态度量元特征数据之间的相关性系数,以筛选出用于输入至预先构建的预测模型的静态度量元特征数据子集。
3.根据权利要求2所述的方法,其特征在于,还包括:
采用对数几率回归模型,计算每个静态度量元特征数据的变量重要性数值。
4.根据权利要求2所述的方法,其特征在于,还包括:
分别计算两个静态度量元特征数据之间的斯皮尔曼相关系数、皮尔逊相关系数和肯德尔相关系数,以将三个相关系数的均值作为静态度量元特征数据之间的相关性系数。
5.根据权利要求4所述的方法,其特征在于,还包括:
当所述相关性系数的绝对值大于预设阈值时,基于排序后的静态度量元特征数据,将排序靠后的静态度量元特征数据去除。
6.根据权利要求1-5中任一所述的方法,其特征在于,包括:
采用单隐层前馈型神经网络作为预测模型;其中,在训练所述预测模型时每次迭代都通过误差逆向传播来调节权值和阈值,直至迭代完成使单隐层前馈型神经网络的误差平方和最小。
7.根据权利要求6所述的方法,其特征在于,还包括:
在训练所述预测模型时,基于网格搜索的自动参数优化算法,得到单隐层前馈型神经网络的最优参数组合。
8.一种识别工程缺陷的装置,其特征在于,包括:
获取模块,用于获取被预测的目标工程,解析目标工程中每个类编译后生成的字节码文件,以得到静态度量元特征数据;
处理模块,用于将静态度量元特征数据输入至预先构建的预测模型,得到每个类缺陷存在概率,进而生成所述目标工程的缺陷信息。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010218505.0A CN113448821B (zh) | 2020-03-25 | 2020-03-25 | 一种识别工程缺陷的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010218505.0A CN113448821B (zh) | 2020-03-25 | 2020-03-25 | 一种识别工程缺陷的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113448821A true CN113448821A (zh) | 2021-09-28 |
CN113448821B CN113448821B (zh) | 2023-12-08 |
Family
ID=77807037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010218505.0A Active CN113448821B (zh) | 2020-03-25 | 2020-03-25 | 一种识别工程缺陷的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113448821B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115578377A (zh) * | 2022-11-14 | 2023-01-06 | 成都数之联科技股份有限公司 | 一种面板缺陷的检测方法、训练方法、装置、设备及介质 |
CN116049640A (zh) * | 2023-04-03 | 2023-05-02 | 河北工业大学 | 一种用于液液非均相反应热行为判别的概率映射识别方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201871A (zh) * | 2016-06-30 | 2016-12-07 | 重庆大学 | 基于代价敏感半监督的软件缺陷预测方法 |
US20170010906A1 (en) * | 2006-08-17 | 2017-01-12 | International Business Machines Corporation | Conservative class preloading for real time java execution |
CN107341101A (zh) * | 2017-06-01 | 2017-11-10 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 度量fpga软件静态质量的方法 |
CN108459955A (zh) * | 2017-09-29 | 2018-08-28 | 重庆大学 | 基于深度自编码网络的软件缺陷预测方法 |
CN108563555A (zh) * | 2018-01-10 | 2018-09-21 | 江苏工程职业技术学院 | 基于四目标优化的故障更改代码预测方法 |
-
2020
- 2020-03-25 CN CN202010218505.0A patent/CN113448821B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170010906A1 (en) * | 2006-08-17 | 2017-01-12 | International Business Machines Corporation | Conservative class preloading for real time java execution |
CN106201871A (zh) * | 2016-06-30 | 2016-12-07 | 重庆大学 | 基于代价敏感半监督的软件缺陷预测方法 |
CN107341101A (zh) * | 2017-06-01 | 2017-11-10 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 度量fpga软件静态质量的方法 |
CN108459955A (zh) * | 2017-09-29 | 2018-08-28 | 重庆大学 | 基于深度自编码网络的软件缺陷预测方法 |
CN108563555A (zh) * | 2018-01-10 | 2018-09-21 | 江苏工程职业技术学院 | 基于四目标优化的故障更改代码预测方法 |
Non-Patent Citations (1)
Title |
---|
陈翔;顾庆;刘望舒;刘树龙;倪超;: "静态软件缺陷预测方法研究", 软件学报, no. 01 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115578377A (zh) * | 2022-11-14 | 2023-01-06 | 成都数之联科技股份有限公司 | 一种面板缺陷的检测方法、训练方法、装置、设备及介质 |
CN116049640A (zh) * | 2023-04-03 | 2023-05-02 | 河北工业大学 | 一种用于液液非均相反应热行为判别的概率映射识别方法 |
CN116049640B (zh) * | 2023-04-03 | 2023-07-07 | 河北工业大学 | 一种用于液液非均相反应热行为判别的概率映射识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113448821B (zh) | 2023-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10360517B2 (en) | Distributed hyperparameter tuning system for machine learning | |
US12020134B2 (en) | Debugging correctness issues in training machine learning models | |
CN110807515B (zh) | 模型生成方法和装置 | |
CN110852438B (zh) | 模型生成方法和装置 | |
CN110852421B (zh) | 模型生成方法和装置 | |
CN110766142A (zh) | 模型生成方法和装置 | |
EP3893169A2 (en) | Method, apparatus and device for generating model and storage medium | |
CN108197652B (zh) | 用于生成信息的方法和装置 | |
CN110995459B (zh) | 异常对象识别方法、装置、介质及电子设备 | |
CN110705255B (zh) | 检测语句之间的关联关系的方法和装置 | |
US20210374544A1 (en) | Leveraging lagging gradients in machine-learning model training | |
US11373760B2 (en) | False detection rate control with null-hypothesis | |
US20140317034A1 (en) | Data classification | |
CN111353601B (zh) | 用于预测模型结构的延时的方法和装置 | |
US20220198277A1 (en) | Post-hoc explanation of machine learning models using generative adversarial networks | |
US20220366297A1 (en) | Local permutation importance: a stable, linear-time local machine learning feature attributor | |
CN113448821B (zh) | 一种识别工程缺陷的方法和装置 | |
CN112966701A (zh) | 目标分类的方法和装置 | |
CN114036051A (zh) | 测试方法、装置、设备以及存储介质 | |
CN112420125A (zh) | 分子属性预测方法、装置、智能设备和终端 | |
CN113627513A (zh) | 一种训练数据生成方法、系统、电子设备及存储介质 | |
Shetty et al. | A Weighted Ensemble of VAR and LSTM for Multivariate Forecasting of Cloud Resource Usage | |
US20210149793A1 (en) | Weighted code coverage | |
CN112231299A (zh) | 一种特征库动态调整的方法和装置 | |
CN111461344B (zh) | 高阶特征的自动生成方法、系统、设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |