CN117056209A - 软件缺陷预测模型、解释方法以及量化评估方法 - Google Patents
软件缺陷预测模型、解释方法以及量化评估方法 Download PDFInfo
- Publication number
- CN117056209A CN117056209A CN202310933290.4A CN202310933290A CN117056209A CN 117056209 A CN117056209 A CN 117056209A CN 202310933290 A CN202310933290 A CN 202310933290A CN 117056209 A CN117056209 A CN 117056209A
- Authority
- CN
- China
- Prior art keywords
- model
- software defect
- prediction model
- defect prediction
- evaluation index
- 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.)
- Pending
Links
- 230000007547 defect Effects 0.000 title claims abstract description 125
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000011158 quantitative evaluation Methods 0.000 title abstract description 9
- 238000011156 evaluation Methods 0.000 claims abstract description 70
- 230000000694 effects Effects 0.000 claims abstract description 8
- 239000011159 matrix material Substances 0.000 claims description 30
- 239000013598 vector Substances 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 14
- 230000006870 function Effects 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 10
- 238000012549 training Methods 0.000 claims description 10
- 239000003795 chemical substances by application Substances 0.000 claims description 9
- 238000013528 artificial neural network Methods 0.000 claims description 7
- 239000012634 fragment Substances 0.000 claims description 7
- 238000010606 normalization Methods 0.000 claims description 7
- 238000012217 deletion Methods 0.000 claims description 4
- 230000037430 deletion Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000012417 linear regression Methods 0.000 claims description 3
- 238000005070 sampling Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 4
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 230000007246 mechanism Effects 0.000 abstract description 2
- 238000001514 detection method Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 238000005295 random walk Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000013097 stability assessment Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- 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
-
- 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
-
- 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
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开一种软件缺陷预测模型、解释方法以及量化评估方法,首先,基于多维度代码特征构建软件缺陷预测模型,旨在捕捉软件缺陷的关键因素,从而提高模型的预测性能,其次,采用代理模型来拟合复杂的缺陷预测模型,通过使用代理模型,可以将缺陷预测模型的复杂性转化为更容易理解和解释的形式,能够更好地理解模型的决策过程和预测结果,最后,设计了多个可解释性评价指标,并构建了相应的评估方法,用于对可解释性效果进行评估,以确保评估结果的可靠性和有效性。本发明的有益效果:能够在软件缺陷预测模型中增加可解释性,并利用定量评估方法来衡量可解释性的效果,从而提供更可靠和可解释的软件缺陷预测模型解释机制。
Description
技术领域
本发明涉及软件可解释性评估技术领域,尤其涉及一种软件缺陷预测模型、解释方法以及量化评估方法。
背景技术
软件缺陷预测是软件工程领域中一项重要的研究方向。它利用历史数据对软件开发过程进行挖掘和分析,通过设计与软件缺陷相关的度量指标,并对程序模块进行度量,再运用统计或机器学习技术构建缺陷预测模型,以实现对目标软件模块的缺陷倾向、缺陷严重程度或缺陷数量分布等方面的预测。然而,尽管机器学习有着端到端等优点,但是由于多数机器学习的黑箱特点、以及当前对缺陷预测结果现象的理解不全面等事实,导致基于学机器习的软件缺陷预测模型无法提供清晰的解释和证据来支持其预测结果,从而限制了这些模型在实际应用中的有效性。
中国发明申请CN114528221A公开了“一种基于异质图神经网络的软件缺陷预测方法”,该方法利用了软件仓库和缺陷日志数据中的信息,通过构建代码图和缺陷链,使用前缀树和带状态机进行节点跨域关联,将代码图中的节点与缺陷图中的节点关联起来。然后,对代码节点和缺陷节点生成表示向量,并通过异质图神经网络进行多层次的注意力聚合,从而实现内容和语义路径的信息传递。通过使用多层次的注意力聚合和知识图谱表示学习方法,可以更好地捕捉代码和缺陷之间的语义信息,提高检测的准确性。该方法存在的不足之处是:虽然从代码仓库中获取了代码的语义信息,但却舍弃了开源社区中的其他代码知识,如缺陷报告、修复记录等,导致所建立的缺陷检测模型学习到的知识不够充分,从而影响检测结果的精准性。其次,预测结果缺乏可解释性,难以解释模型对缺陷预测的依据,限制了方法的可解释性。
中国发明申请CN115629980A公开了一种名为“一种软件缺陷预测模型解释方法”,该方法旨在通过采用与模型无关的解释方法,提供对软件缺陷预测模型结果的解释,并结合改进的筛选策略,以满足软件缺陷预测的特定需求。通过该方法,用户能够更加清晰地理解模型的预测结果,并获得与软件缺陷相关的更多洞察。然而,需要指出的是,该方案未对提供的解释效果进行有效评估。因此,在实际应用该方法时,仍然需要进一步评估和验证,以确保解释结果的准确性和可信度。
综上,现有的软件缺陷预测模型、预测模型的解释方法,以及解释方法的评估方法均存在各自的不足,再有,由于上述三者并非针对彼此进行统一设计,各种特征和指标之间缺乏可靠的可解释逻辑,导致解释方法的可解释性的可靠性不高。
发明内容
针对上述问题,本发明提出一种软件缺陷预测模型、解释方法以及量化评估方法,解决背景技术中指出的至少一个问题。
为解决上述技术问题,本发明第一方面提出一种软件缺陷预测模型,包括以下步骤:
将代码片段进行解析,生成代码中间表示;
将所述代码中间表示输入向量训练模型进行学习,获得特征向量;
检测所述代码片段的警告信息;
提取所述警告信息的类型属性信息,并对每个所述警告信息进行切片,获取与所述警告信息相关的代码碎片,每个所述代码碎片表示为一组所述类型属性信息;
所述特征向量和所述类型属性信息进行融合,构建综合特征向量;
将所述综合特征向量和已标记的软件缺陷样本数据共同作为输入,使用深度神经网络构建并训练软件缺陷预测模型。
本发明第二方面提出一种基于代理模型的软件缺陷预测模型解释方法,用于上述的软件缺陷预测模型,包括以下步骤:
根据所述软件缺陷预测模型获取基准参考预测值;
为所述软件缺陷预测模型的特征创建变量分位数矩阵;
根据所述变量分位数矩阵获取对应的预测矩阵;
根据所述预测矩阵计算每个的分位数的重要性得分值;
将全部的所述重要性得分值合并为全局特征重要性得分值;
从所述全局特征重要性得分值中将贡献最大的重要性得分值,并将所述重要性得分值对应的所述特征组成新的特征集合,将所述特征集合和所述软件缺陷预测模型组成待解释实例;
以所述待解释实例为中心对所述特征集合的训练数据进行随机采样,得到所述待解释实例的局部解释目标函数;
根据样本之间的距离来确定所述局部解释目标函数的权重系数;
通过线性回归法对所述局部解释目标函数进行优化,得到代理模型。
在一些实施方式中,所述变量分位数矩阵包括:
其中,xi,q表示第i个特征对应的q个分位数,Q表示分位数的总数,p表示特征维度的总数,
所述预测矩阵包括:
其中,f(.)为软件缺陷预测模型。
在一些实施方式中,所述重要性得分值包括:
所述局部解释目标函数包括:
其中,tj,k=tj+(1-λ)t′j,k,t′j,k为tj的第k个最近邻的实例,xj为第j个实例,p(.)为权重系数,g(.)为所述代理模型,φ为预测值。
在一些实施方式中,所述权重系数包括:
其中,tj为,σ为。
本发明第三方面提出一种软件缺陷预测模型可解释性的量化评估方法,用于上述的基于代理模型的软件缺陷预测模型解释方法,包括以下步骤:
设置一致性评价指标,用于度量所述代理模型的解释结果和所述软件缺陷预测模型的解释结果之间的一致性;
设置因果性评价指标,用于判断各个特征的删除或扰动对所述因果性评价指标的输出值的影响是否超过预设值,若是,则认定所述特征与解释结果之间存在强因果效应;
设置稳定性评价指标,用于将所述代理模型和所述软件缺陷预测模型中拥有相同解释结果的实例定义为覆盖实例;
将所述一致性评价指标、所述因果性评价指标和所述稳定性评价指标进行归一化处理,得到归一化处理矩阵;
计算所述归一化处理矩阵的信息熵;
根据所述信息熵计算所述一致性评价指标、所述因果性评价指标和所述稳定性评价指标的相对熵;
根据所述相对熵的值,计算所述一致性评价指标、所述因果性评价指标和所述稳定性评价指标的权重;
各个所述权重分别和对应的所述归一化处理矩阵加权后得到综合评估分数。
在一些实施方式中,所述一致性评价指标包括:
其中,c表示标签,C为表示标签,rc表示当标签为c时代理模型和所述软件缺陷预测模型的预测结果具有相同的数量,wc表示当标签为c时代理模型和所述软件缺陷预测模型的预测结果具有不同的数量。
所述因果性评价指标包括:
其中,M为表示最重要的的特征的个数, 和/>其中/>
在一些实施方式中,所述稳定性评价指标包括:
在一些实施方式中,所述权重的计算方法为:
所述综合评估分数包括:
本发明第四方面提出一种基于代理模型的软件缺陷预测模型解释装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本发明第五方面提出一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本发明的有益效果为:能够在软件缺陷预测模型中增加可解释性,并利用定量评估方法来衡量可解释性的效果,从而提供更可靠和可解释的软件缺陷预测模型解释机制,有助于提高人们对于模型预测的理解和信任度,并为软件开发和维护过程中的决策提供有益的指导,具体请参阅实施例一至三。
附图说明
图1为本发明的总体框架图;
图2为本发明实施例一公开的软件缺陷预测模型的构建流程示意图;
图3为本发明实施例二公开的基于代理模型的软件缺陷预测模型解释方法的流程示意图;
图4为本发明实施例三公开的软件缺陷预测模型可解释性的量化评估方法的流程示意图;
图5为本发明实施例四公开的基于代理模型的软件缺陷预测模型解释方法的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,下面结合附图和具体实施方式对本发明的内容做进一步详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
以下实施例一至三分别提出一种软件缺陷预测模型、一种基于代理模型的软件缺陷预测模型解释方法,以及一种软件缺陷预测模型可解释性的量化评估方法,用于预测目标软件是否存在缺陷和对预测结果提供解释,并对解释进行量化评估,如图1所示,本发明以“模型—解释—评估”为框架开展研究,以下是对该实施例的详细描述。
实施例一
本实施例提出了一种软件缺陷预测模型,图2所示,包括以下步骤:
S11,将代码片段进行解析,生成代码中间表示.
软件工程领域,中间表示(Intermediate Representation)如抽象语法树(Abstract Syntax Tree,AST)、控制流图(Control Flow Graph,CFG)和程序依赖图(Program Dependency Graph,PDG)等起着重要作用。利用Joern工具解析代码片段进行解析生成代码中间表示。
S12,将代码中间表示输入向量训练模型进行学习,获得特征向量。
具体的,在S12中,对于AST,将AST进一步划分为语句级树的方法,将语句级树转化为词向量并利用双向循环神经网络进行学习,从而获得源代码的语义特征向量v1。对于CFG和PDG,采用了Node2vec方法对控制流图(CFG)和程序依赖图(PDG)中的节点进行随机游走,得到图的节点表示。这些节点表示被输入到Sent2vec模型中进行训练,以获得控制流图的控制流特征向量v2和程序依赖图的程序依赖特征向量v3。
S13,检测代码片段的警告信息。
在S13中,可使用静态扫描工具进行检测的方法,从而获得代码中存在的警告信息,通过整理每个软件代码片段的警告,形成警告集W={w1,w2,...,wr}。这些警告信息能够揭示潜在的缺陷和代码质量问题。
S14,提取警告信息的类型属性信息,并对每个警告信息进行切片,获取与警告信息相关的代码碎片,每个代码碎片表示为一组类型属性信息。
在一示例中,针对S13中的每个警告信息,提取了类型属性信息,并利用Joana对每个警告进行切片,以获取与警告相关的代码片段。最终,每个警告被表示为一组属性,表示为w=[attr1,attr2,...,attrn]。
S15,特征向量和类型属性信息进行融合,构建综合特征向量。
在一示例中,对于步骤S12中获得的语义特征向量v1、控制流特征向量v2和程序依赖特征向量v3,以及步骤S14中提取的类型属性信息w进行融合的方法,构建了一个综合特征向量x=[x1,x2,...,xp]。
S16,将综合特征向量和已标记的软件缺陷样本数据共同作为输入,使用深度神经网络构建并训练软件缺陷预测模型。
在S16中,将融合后的特征向量作为输入,结合已标记的软件缺陷样本数据,使用深度神经网络方法(如随机森林)训练了一个软件缺陷预测模型f(.),软件缺陷预测模型f(.)的评估和参数调优可以借助交叉验证等技术来进行。
S18,通过模型预测得到的软件缺陷概率或分类结果f(x)。
在本实施例中,基于多维度代码特征构建软件缺陷预测模型,通过收集目标软件与缺陷相关的警告信息(包括软件模块的特征、历史缺陷记录)等,用于训练软件缺陷预测模型,能够预测软件是否存在缺陷,上述代码特征的选择旨在捕捉软件缺陷的关键因素,从而提高模型的预测性能。
实施例二
本实施例提出了一种基于代理模型的软件缺陷预测模型解释方法,图3所示,用于实施例一所述的软件缺陷预测模型,包括以下步骤:
S21,根据软件缺陷预测模型获取基准参考预测值。
具体的,在S21中,利用软件缺陷预测模型f(.)获取基准参考预测值
S22,为软件缺陷预测模型的特征创建变量分位数矩阵。
变量分位数矩阵Zi包括:
其中,Zi∈RQ×p,该矩阵的一行可以表示为:xi,q表示第i个特征对应的q个分位数,Q表示分位数的总数,p表示特征维度的总数,/>
S23,根据变量分位数矩阵获取对应的预测矩阵。
预测矩阵包括:
其中,f(.)为软件缺陷预测模型。
S24,根据预测矩阵计算每个的分位数的重要性得分值。
具体的,在S23的预测矩阵的基础上计算对应的分位数的要性得分值,重要性得分值包括:
S25,将全部的重要性得分值合并为全局特征重要性得分值。
根据前述的S21-S24的计算,特征xi全局特征重要性得分值应表示为:
S26,从全局特征重要性得分值中将贡献最大的重要性得分值,并将重要性得分值对应的特征组成新的特征集合,将特征集合和软件缺陷预测模型组成待解释实例。
在步骤S26中,根据步骤S25获取的全局特征重要性得分值可解性方法目的是从为p个特征中贡献最大的M个重要特征组成新的特征集合t=[t1,t2,...,tm],可以用(tj,f(xj))代替待解释的实例(xj,f(xj))。
S27,以待解释实例为中心对特征集合的训练数据进行随机采样,得到待解释实例的局部解释目标函数。
局部解释目标函数包括:
其中,tj,k=tj+(1-λ)t′j,k,t′j,k为tj的第k个最近邻的实例,xj为第j个实例,p(.)为权重系数,g(.)为代理模型,φ为预测值。
S28,根据样本之间的距离来确定局部解释目标函数的权重系数。
在本实施例中,权重系数可以根据样本之间的距离远近来确定。通常情况下,距离越近的样本具有更高的权重,因此权重系数可表示为:
其中,tj为,σ为。
S29,通过线性回归法对局部解释目标函数进行优化,得到代理模型。
在本实施例中,S21-S25通过获取软件缺陷预测模型的重要性得分值,得到每个特征对于预测结果的贡献度,从而获取全局可解释性,然后S26-S29对待解释实例进行随机扰动生成一组近似实例。使用生成的数据集和相应的预测结果,训练一个解释模型。因此,通过分析代理模型的参数、特征重要性或决策路径,可以更好地理解原始模型在给定实例上的预测结果。
其中,全局可解释性是通过特征重要性分析揭示预测模型在做出预测时所依据的关键特征,帮助理解模型的决策过程。局部可解释性则是通过随机生成与待解释的实例相似的实例集,训练代理模型。代理模型可以是一个简单的线性模型。
实施例三
本实施例提出了一种软件缺陷预测模型可解释性的量化评估方法,用于实施例二所述的基于代理模型的软件缺陷预测模型解释方法,包括以下步骤:
S31,设置一致性评价指标,用于度量代理模型的解释结果和软件缺陷预测模型的解释结果之间的一致性。
一致性评价指标包括:
其中,c表示标签,C为表示标签,rc表示当标签为c时代理模型和所述软件缺陷预测模型的预测结果具有相同的数量,wc表示当标签为c时代理模型和所述软件缺陷预测模型的预测结果具有不同的数量。
S32,设置因果性评价指标,用于判断各个特征的删除或扰动对因果性评价指标的输出值的影响是否超过预设值,若是,则认定特征与解释结果之间存在强因果效应。
因果性评价指标包括:
其中,M表示最重要的的特征的个数, 和/>其中/>若某一个特征的删除和扰动对预测结果发生变化较大,则该特征与预测结果之间的因果效应越强。
S33,设置稳定性评价指标,用于将代理模型和软件缺陷预测模型中拥有相同解释结果的实例定义为覆盖实例。
稳定性评价指标包括:
具体的,即代理模型g(t)和软件缺陷预测模型f(x)预测结果相同的实例成为覆盖实例。 表示t′i扰动实例。
S34,将一致性评价指标、因果性评价指标和稳定性评价指标进行归一化处理,得到归一化处理矩阵。
在一示例中,将其转化为相同的量级或范围[0,1],得到一化处理矩阵
S35,计算归一化处理矩阵的信息熵。
该信息熵可表示为其中,pi表示是指标值/>在样本x*中出现的概率。信息熵的作用是衡量概率分布的不确定性或信息量。
S36,根据信息熵计算一致性评价指标、因果性评价指标和稳定性评价指标的相对熵。
相对熵用于衡量各个指标之间的相对重要性。相对熵的计算公式为:
其中,E(x* max)和E(x* min)分别是指标的最大信息熵和最小信息熵。
S37,根据相对熵的值,计算一致性评价指标、因果性评价指标和稳定性评价指标的权重。
权重的计算方法为:
S38,各个权重分别和对应的归一化处理矩阵加权后得到综合评估分数。
综合评估分数包括:
在本实施例中,首先是可解释性评价指标的设计,其次是多维度评价指标的融合。构建了一致性、因果性、稳定性三个维度的评价指标,并通过有效融合建立了评估方法,对代理模型的解释性进行了全面评估,帮助判断解释的准确性和可信度。
实施例四
参阅图5,本实施例提供的基于代理模型的软件缺陷预测模型解释装置包括处理器、存储器以及存储在该存储器中并可在所述处理器上运行的计算机程序,例如基于代理模型的软件缺陷预测模型解释程序。该处理器执行所述计算机程序时实现上述实施例一步骤,例如图3所示的步骤。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述基于代理模型的软件缺陷预测模型解释装置中的执行过程。
所述基于代理模型的软件缺陷预测模型解释装置可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述基于代理模型的软件缺陷预测模型解释装置可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,图5仅仅是基于代理模型的软件缺陷预测模型解释装置的示例,并不构成基于代理模型的软件缺陷预测模型解释装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述基于代理模型的软件缺陷预测模型解释装置还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器可以是所述基于代理模型的软件缺陷预测模型解释装置的内部存储元,例如基于代理模型的软件缺陷预测模型解释装置的硬盘或内存。所述存储器也可以是所述基于代理模型的软件缺陷预测模型解释装置的外部存储设备,例如所述基于代理模型的软件缺陷预测模型解释装置上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器还可以既包括所述基于代理模型的软件缺陷预测模型解释装置的内部存储单元也包括外部存储设备。所述存储器用于存储所述计算机程序以及所述基于代理模型的软件缺陷预测模型解释装置所需的其他程序和数据。所述存储器还可以用于暂时地存储已经输出或者将要输出的数据。
实施例五
本实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现实施例二所述方法的步骤。
所示计算机可读介质可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理再以电子方式获得所述程序,然后将其存储在计算机存储器中。
上述实施例只是为了说明本发明的技术构思及特点,其目的是在于让本领域内的普通技术人员能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡是根据本发明内容的实质所做出的等效的变化或修饰,都应涵盖在本发明的保护范围内。
Claims (10)
1.一种软件缺陷预测模型,其特征在于,包括以下步骤:
将代码片段进行解析,生成代码中间表示;
将所述代码中间表示输入向量训练模型进行学习,获得特征向量;
检测所述代码片段的警告信息;
提取所述警告信息的类型属性信息,并对每个所述警告信息进行切片,获取与所述警告信息相关的代码碎片,每个所述代码碎片表示为一组所述类型属性信息;
所述特征向量和所述类型属性信息进行融合,构建综合特征向量;
将所述综合特征向量和已标记的软件缺陷样本数据共同作为输入,使用深度神经网络构建并训练软件缺陷预测模型。
2.一种基于代理模型的软件缺陷预测模型解释方法,用于权利要求1所述的软件缺陷预测模型,其特征在于,包括以下步骤:
根据所述软件缺陷预测模型获取基准参考预测值;
为所述软件缺陷预测模型的特征创建变量分位数矩阵;
根据所述变量分位数矩阵获取对应的预测矩阵;
根据所述预测矩阵计算每个的分位数的重要性得分值;
将全部的所述重要性得分值合并为全局特征重要性得分值;
从所述全局特征重要性得分值中将贡献最大的重要性得分值,并将所述重要性得分值对应的所述特征组成新的特征集合,将所述特征集合和所述软件缺陷预测模型组成待解释实例;
以所述待解释实例为中心对所述特征集合的训练数据进行随机采样,得到所述待解释实例的局部解释目标函数;
根据样本之间的距离来确定所述局部解释目标函数的权重系数;
通过线性回归法对所述局部解释目标函数进行优化,得到代理模型。
3.如权利要求2所述的基于代理模型的软件缺陷预测模型解释方法,其特征在于,所述变量分位数矩阵包括:
其中,xi,q表示第i个特征对应的q个分位数,Q表示分位数的总数,p表示特征维度的总数,
所述预测矩阵包括:
其中,f(.)为软件缺陷预测模型。
4.如权利要求3所述的基于代理模型的软件缺陷预测模型解释方法,其特征在于,所述重要性得分值包括:
5.如权利要求3所述的基于代理模型的软件缺陷预测模型解释方法,其特征在于,所述局部解释目标函数包括:
其中,tj,k=tj+(1-λ)t′j,k,t′j,k为tj的第k个最近邻的实例,xj为第j个实例,P(.)为权重系数,g(.)为所述代理模型,φ为预测值;
所述权重系数包括:
其中,tj为第j个代理实例,σ为高斯函数的方差。
6.一种软件缺陷预测模型可解释性的量化评估方法,用于权利要求2-5任一项所述的基于代理模型的软件缺陷预测模型解释方法,其特征在于,包括以下步骤:
设置一致性评价指标,用于度量所述代理模型的解释结果和所述软件缺陷预测模型的解释结果之间的一致性;
设置因果性评价指标,用于判断各个特征的删除或扰动对所述因果性评价指标的输出值的影响是否超过预设值,若是,则认定所述特征与解释结果之间存在强因果效应;
设置稳定性评价指标,用于将所述代理模型和所述软件缺陷预测模型中拥有相同解释结果的实例定义为覆盖实例;
将所述一致性评价指标、所述因果性评价指标和所述稳定性评价指标进行归一化处理,得到归一化处理矩阵;
计算所述归一化处理矩阵的信息熵;
根据所述信息熵计算所述一致性评价指标、所述因果性评价指标和所述稳定性评价指标的相对熵;
根据所述相对熵的值,计算所述一致性评价指标、所述因果性评价指标和所述稳定性评价指标的权重;
各个所述权重分别和对应的所述归一化处理矩阵加权后得到综合评估分数。
7.如权利要求6所述的基于代理模型的软件缺陷预测模型解释方法,其特征在于,所述一致性评价指标包括:
其中,c表示标签,C为表示标签,rc表示当标签为c时代理模型和所述软件缺陷预测模型的预测结果具有相同的数量,wc表示当标签为c时代理模型和所述软件缺陷预测模型的预测结果具有不同的数量;
所述因果性评价指标包括:
其中,M表示最重要的的特征的个数, 和/>其中/>
所述稳定性评价指标包括:
8.如权利要求6所述的基于代理模型的软件缺陷预测模型解释方法,其特征在于,所述权重的计算方法为:
所述综合评估分数包括:
9.一种基于代理模型的软件缺陷预测模型解释装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求2至5任一所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求2至5任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310933290.4A CN117056209A (zh) | 2023-07-27 | 2023-07-27 | 软件缺陷预测模型、解释方法以及量化评估方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310933290.4A CN117056209A (zh) | 2023-07-27 | 2023-07-27 | 软件缺陷预测模型、解释方法以及量化评估方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117056209A true CN117056209A (zh) | 2023-11-14 |
Family
ID=88659934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310933290.4A Pending CN117056209A (zh) | 2023-07-27 | 2023-07-27 | 软件缺陷预测模型、解释方法以及量化评估方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117056209A (zh) |
-
2023
- 2023-07-27 CN CN202310933290.4A patent/CN117056209A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Thota et al. | Survey on software defect prediction techniques | |
US11615331B2 (en) | Explainable artificial intelligence | |
US10600002B2 (en) | Machine learning techniques for providing enriched root causes based on machine-generated data | |
EP3872637A1 (en) | Application programming interface assessment | |
CN110502677B (zh) | 一种设备识别方法、装置及设备、存储介质 | |
Tran et al. | An analysis of software bug reports using machine learning techniques | |
CN113590451B (zh) | 一种根因定位方法、运维服务器及存储介质 | |
CN111080117A (zh) | 设备风险标签的构建方法、装置、电子设备及存储介质 | |
Dasu | Data glitches: Monsters in your data | |
Ebrahim et al. | Anomaly detection in business processes logs using social network analysis | |
Tsoukalas et al. | Machine learning for technical debt identification | |
CN114036531A (zh) | 一种基于多尺度代码度量的软件安全漏洞检测方法 | |
CN115310510A (zh) | 基于优化规则决策树的目标安全识别方法、装置及电子设备 | |
CN110414806B (zh) | 员工风险预警方法及相关装置 | |
CN117370548A (zh) | 用户行为风险识别方法、装置、电子设备及介质 | |
CN117056209A (zh) | 软件缺陷预测模型、解释方法以及量化评估方法 | |
CN114493853A (zh) | 信用等级评价方法、装置、电子设备及存储介质 | |
Tran et al. | An analysis of software bug reports using random forest | |
Spinnato et al. | Explaining crash predictions on multivariate time series data | |
Wessman | Advanced Algorithms for Classification and Anomaly Detection on Log File Data: Comparative study of different Machine Learning Approaches | |
Kotti | Industrial Automation with Safety Aspects using Machine Learning Techniques | |
US20230367591A1 (en) | A method for assessing quality of open source projects | |
CN117390139B (zh) | 基于知识图谱的变电工作票工作内容准确性评估的方法 | |
Freitas et al. | Using Machine Learning on Testing IoT Applications: a systematic mapping | |
Asthana et al. | ML Model Change Detection and Versioning Service |
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 |