CN115509927A - 软件缺陷概率的确定方法、装置、设备及存储介质 - Google Patents
软件缺陷概率的确定方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115509927A CN115509927A CN202211232887.8A CN202211232887A CN115509927A CN 115509927 A CN115509927 A CN 115509927A CN 202211232887 A CN202211232887 A CN 202211232887A CN 115509927 A CN115509927 A CN 115509927A
- Authority
- CN
- China
- Prior art keywords
- defect
- probability
- defect type
- software
- target
- 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
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/3604—Software analysis for verifying properties of programs
- G06F11/3616—Software analysis for verifying properties of programs using software metrics
-
- 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/3696—Methods or tools to render software testable
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供的一种软件缺陷概率的确定方法、装置、设备及存储介质。该方法包括:确定目标软件当前版本的待预测的目标缺陷类型,然后通过获取当前版本的前N个版本的多个缺陷类型对应的缺陷概率,将前N个版本的多个缺陷类型对应的缺陷概率输入到预先训练得到的预测模型中,得到目标缺陷类型对应的第一后验概率,然后根据第一后验概率,确定当前版本的目标缺陷类型对应的缺陷概率。本申请的预测模型可以是多重神经网络,而通过建立多重神经网络的输入和输出,避免了条件独立的假设,使得该方法适用于复杂场景的软件缺陷概率的确定,提高了软件缺陷概率的确定方法的适用性。
Description
技术领域
本申请涉及数据分析技术领域,尤其涉及一种软件缺陷概率的确定方法、装置、设备及存储介质。
背景技术
随着软件行业的发展,软件的代码量急剧增加,与此同时,软件更新迭代周期也逐渐缩短,而代码量的增加以及更新迭代时间周期的缩短会伴随着更多的缺陷(Bug)的产生。因此,软件缺陷概率的预测对于软件质量保证而言具有重要意义,能够使用预测值对存在缺陷的软件模块进行预警。
在相关技术中,可以基于事件流类型(用户与软件的交互行为类型),根据类型随机场建模原理对软件缺陷的发生概率进行预测。马尔科夫链随机场(Markov Chain RandomField,MCRF)是一种基于转移概率的类型变量预测模型,该模型的随机场中只包含一条空间马尔科夫链,不需要作出多条链相互独立的假设,但是为了简化该模型的计算,一般通过施加条件独立假设,多点后验概率可以因式分解为多个两点转移概率的乘积组合,从而得到软件缺陷的预测概率。
但是,由于上述模型是基于条件独立假设,不适用于具有复杂“数据交互”的日志事件流场景,从而不适用于该复杂场景对应的软件缺陷概率的预测。
发明内容
本申请提供一种软件缺陷概率的确定方法、装置、设备及存储介质,有助于解决相关技术中软件缺陷概率的确定方法适用性较低的问题。
第一方面,本申请提供一种软件缺陷概率的确定方法,包括:
确定目标软件当前版本的待预测的目标缺陷类型;
获取所述当前版本的前N个版本的多个缺陷类型对应的缺陷概率,所述N为大于或者等于1的整数,所述多个缺陷类型中包括所述目标缺陷类型;
将所述前N个版本的多个缺陷类型对应的缺陷概率输入到预先训练得到的预测模型中,得到所述当前版本的所述目标缺陷类型对应的第一后验概率;
根据所述第一后验概率,确定所述当前版本的所述目标缺陷类型对应的缺陷概率。
在一种可能的实施方式中,所述方法还包括:
获取训练数据,所述训练数据中包括多个缺陷类型对应的多个第一后验概率;
通过所述训练数据对预设模型进行训练得到所述预测模型。
在一种可能的实施方式中,所述获取训练数据,包括:
获取多个软件的多个版本对应的缺陷类型;
根据所述多个软件的多个版本对应的缺陷类型,确定多个缺陷类型对应的多个第一后验概率。
在一种可能的实施方式中,所述根据所述多个软件的多个版本对应的缺陷类型,确定各个缺陷类型对应的多个第一后验概率,包括:
将所述多个软件的多个版本按照版本迭代时刻进行排序,得到每个软件的版本序列;
通过以下公式确定多个缺陷类型中缺陷类型Di对应的第一后验概率:
其中,A为所述目标缺陷类型,Di是i个缺陷类型,P(Di|AD1…Di-1)为所述缺陷类型Di对应的第一后验概率;
Nn(AD1…Di-1Di)是所述目标缺陷类型、第一缺陷类型、…、第i缺陷类型作为第一扫描组合,在每个软件的版本序列对应的缺陷类型中出现的次数的总数;
Nn(AD1…Di-1)是所述目标缺陷类型、所述第一缺陷类型、…、第i-1缺陷类型作为第二扫描组合,在每个软件的版本序列对应的缺陷类型中出现的次数的总数。
在一种可能的实施方式中,各个第一后验概率对应的所述第一扫描组合和所述第二扫描组合的排列顺序均不相同。
在一种可能的实施方式中,所述预先训练得到的预测模型表示为:
其中,P(Di|AD1…Di-1)为缺陷类型i在目标缺陷类型A、缺陷类型D1、…、缺陷类型Di-1同时发生的条件下的发生概率,S和h均为所述预测模型的激活函数,和为权函数,i=2,…,N,P(D0)为预设数值,P(Dm|A)为缺陷类型Dm在目标缺陷类型A已经发生的条件下的发生概率。
在一种可能的实施方式中,所述根据所述第一后验概率,确定所述当前版本的所述目标缺陷类型对应的缺陷概率,包括:
通过以下公式确定所述目标缺陷类型对应的缺陷概率:
其中,ρ为正规化常数,P1为所述目标缺陷类型对应的缺陷概率,P(A|D1)为目标缺陷类型A在缺陷类型D1已经发生的条件下的发生概率。
第二方面,本申请提供一种软件缺陷概率的确定装置,包括:
第一确定模块,用于确定目标软件当前版本的待预测的目标缺陷类型;
获取模块,用于获取所述当前版本的前N个版本的多个缺陷类型对应的缺陷概率,所述N为大于或者等于1的整数,所述多个缺陷类型中包括所述目标缺陷类型;
预测模块,用于将所述前N个版本的多个缺陷类型对应的缺陷概率输入到预先训练得到的预测模型中,得到所述当前版本的所述目标缺陷类型对应的第一后验概率;
第二确定模块,用于根据所述第一后验概率,确定所述当前版本的所述目标缺陷类型对应的缺陷概率。
在一种可能的实施方式中,所述装置还包括:训练模块。
所述训练模块,用于获取训练数据,所述训练数据中包括多个缺陷类型对应的多个第一后验概率;
通过所述训练数据对预设模型进行训练得到所述预测模型。
在一种可能的实施方式中,所述训练模块还用于:
获取多个软件的多个版本对应的缺陷类型;
根据所述多个软件的多个版本对应的缺陷类型,确定多个缺陷类型对应的多个第一后验概率。
在一种可能的实施方式中,所述训练模块还用于:
将所述多个软件的多个版本按照版本迭代时刻进行排序,得到每个软件的版本序列;
通过以下公式确定多个缺陷类型中缺陷类型Di对应的第一后验概率:
其中,A为所述目标缺陷类型,Di是i个缺陷类型,P(Di|AD1…Di-1)为所述缺陷类型Di对应的第一后验概率;
Nn(AD1…Di-1Di)是所述目标缺陷类型、第一缺陷类型、…、第i缺陷类型作为第一扫描组合,在每个软件的版本序列中出现的次数的总数;
Nn(AD1…Di-1)是所述目标缺陷类型、所述第一缺陷类型、…、第i-1缺陷类型作为第二扫描组合,在每个软件的版本序列中出现的次数的总数。
在一种可能的实施方式中,各个第一后验概率对应的所述第一扫描组合和所述第二扫描组合的排列顺序均不相同。
在一种可能的实施方式中,所述预先训练得到的预测模型表示为:
其中,P(Di|AD1…Di-1)为缺陷类型i在目标缺陷类型A、缺陷类型D1、…、缺陷类型Di-1同时发生的条件下的发生概率,S和h均为所述预测模型的激活函数,和为权函数,i=2,…,N,P(D0)为预设数值,P(Dm|A)为缺陷类型Dm在目标缺陷类型A已经发生的条件下的发生概率。
在一种可能的实施方式中,所述第二确定模块还用于:
通过以下公式确定所述目标缺陷类型对应的缺陷概率:
其中,ρ为正规化常数,P1为所述目标缺陷类型对应的缺陷概率,P(A|D1)为所述目标缺陷类型A在缺陷类型D1已经发生的条件下的发生概率。
第三方面,本申请实施例提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如第一方面所述的软件缺陷概率的确定方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面所述的软件缺陷概率的确定方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的软件缺陷概率的确定方法。
本申请提供的一种软件缺陷概率的确定方法、装置、设备及存储介质,确定目标软件当前版本的待预测的目标缺陷类型,然后通过获取当前版本的前N个版本的多个缺陷类型对应的缺陷概率,将前N个版本的多个缺陷类型对应的缺陷概率输入到预先训练得到的预测模型中,得到目标缺陷类型对应的第一后验概率,然后根据第一后验概率,确定当前版本的目标缺陷类型对应的缺陷概率。本申请的预测模型可以是多重神经网络,而通过建立多重神经网络的输入和输出,避免了条件独立的假设,使得该方法适用于复杂场景的软件缺陷概率的确定,提高了软件缺陷概率的确定方法的适用性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的一种应用场景示意图;
图2为本申请实施例一提供的一种软件缺陷概率的确定方法的流程示意图;
图3为本申请实施例二提供的一种软件缺陷概率的确定方法的流程示意图;
图4为本申请实施例三提供的一种软件缺陷概率的确定装置的结构示意图;
图5为本申请实施例四提供的一种电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在基于DevOps(development operations,过程、方法与系统的统称)循环的软件统计测试中,一种常用的方法是通过运维日志回放,从历史事件中提取信息,进而获取新一轮迭代版本中软件缺陷的发生概率。在这种技术背景下,可以基于事件流类型(用户与软件的交互行为类型),根据类型随机场建模原理对软件缺陷的发生概率进行预测。
示例性的,软件版本的缺陷类型可分为非常严重、严重、一般、轻微等,或者,为了简化计算,也可以将缺陷类型归类为有缺陷和无缺陷两种类型等。
在软件缺陷发生概率的预测模型中,MCRF是一种基于转移概率的类型变量预测模型,该模型的随机场中只包含一条空间马尔科夫链,不需要作出多条链相互独立的假设,但是为了简化该模型的计算,一般通过施加条件独立假设,多点后验概率可以因式分解为多个两点转移概率的乘积组合,从而得到软件缺陷的预测概率。
从统计学的另一个角度出发,条件最大熵方法可以解决经典的贝叶斯最大熵模型所面临的高计算量问题。虽然MCRF和条件最大熵模型具有不同的原理背景,但是这两种方法都是基于条件独立假设,不适用于具有复杂“数据交互”的日志事件流场景中的软件缺陷的预测。
具体的,为了获得多点准后验概率,MCRF作出如下条件独立假设:
P(Di|AD1…Di-1)=P(Di|A) (1)
其中,i=2,…,N,P(Di|AD1…Di-1)为缺陷类型i在目标缺陷类型A、缺陷类型D1、…、缺陷类型Di-1同时发生的条件下的发生概率,P(Di|A)为缺陷类型Di在目标缺陷类型A已经发生的条件下的发生概率。
其中,多点准后验概率可以理解为得到多点后验概率的中间概率值,即获取多点准后验概率后,可以得到多点后验概率。
在本申请实施例中,多点准后验概率称为第一后验概率,第一后验概率是指某件事已经发生,计算这件事发生的原因是由某个因素引起的概率,也可以理解为条件概率。
由于上述条件独立假设的表达式相对简单,这一假设被广泛地用于类型变量预测建模中。然而,考虑到日志事件流下可能存在的复杂交互信息,该假设不适用于具有复杂“数据交互”的日志事件流场景中的软件缺陷的预测。
所以,本申请提供一种软件缺陷概率的确定方法,通过确定预测模型的输入和输出,即将待预测的当前版本的前N个版本的多个缺陷类型对应的缺陷概率作为预测模型的输入,将目标缺陷类型对应的第一后验概率作为预测模型的输出,然后根据第一后验概率,可以得到目标缺陷类型对应的缺陷概率,避免了条件独立的假设,使得该方法适用于复杂场景的软件缺陷概率的确定,提高了软件缺陷概率的确定方法的适用性。
为了便于理解,下面结合图1,对本申请实施例所适用的应用场景进行说明。
图1为本申请实施例提供的一种应用场景示意图。请参见图1,电子设备中包括软件缺陷概率确定模块,该模块可以基于目标软件当前版本的前N个版本的多个缺陷类型对应的缺陷概率,得到当前版本的目标缺陷类型的缺陷概率。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以独立存在,也可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本申请实施例一提供的一种软件缺陷概率的确定方法的流程示意图,该方法可以由软件缺陷概率的确定装置执行,该软件缺陷概率的确定装置可以是服务器,以下以服务器为例进行说明,本实施例中的方法可以通过软件、硬件或者软硬件结合的方式来实现,参考图2,该方法包括如下步骤。
S201、确定目标软件当前版本的待预测的目标缺陷类型。
在对目标软件的当前版本的缺陷概率进行确定时,服务器可以获取待预测的目标缺陷类型,以实现对目标缺陷类型的缺陷概率进行确定。
在一种可能的实现方式中,目标软件的缺陷类型可以包括非常严重、严重、一般和轻微等,那么,目标缺陷类型可以是缺陷类型中的任意一个。
在另一种可能的实现方式中,目标软件的缺陷类型可以包括有缺陷和无缺陷,那么,目标缺陷类型可以是缺陷类型中的任意一个。
目标软件的缺陷类型还可以使用其他缺陷类型的描述,本申请对此不作限制。
S202、获取当前版本的前N个版本的多个缺陷类型对应的缺陷概率。
服务器可以获取目标软件的当前版本的前N个版本的多个缺陷类型对应的缺陷概率,其中,多个缺陷类型中包括目标缺陷类型。
也就是说,服务器可以获取当前版本的前N个版本中,每个版本的多个缺陷类型的缺陷概率,其中,多个缺陷类型可以是非常严重、严重、一般、轻微等,N为大于或者等于1的整数。
S203、将前N个版本的多个缺陷类型对应的缺陷概率输入到预先训练得到的预测模型中,得到当前版本的目标缺陷类型对应的第一后验概率。
服务器获取到当前版本的前N个版本的多个缺陷类型对应的缺陷概率后,可以将前N个版本的多个缺陷类型对应的缺陷概率输入到预先训练得到的预测模型中进行预测,得到当前版本的目标缺陷类型对应的第一后验概率。
其中,预先训练得到的预测模型可以是服务器通过训练数据对预设模型进行训练得到的,预测模型的输入为多个版本的多个缺陷概率对应的缺陷概率,输出为目标缺陷概率的第一后验概率。
S204、根据第一后验概率,确定当前版本的目标缺陷类型对应的缺陷概率。
服务器得到目标软件当前版本的目标缺陷类型对应的第一后验概率后,可以根据第一后验概率,确定当前版本的目标缺陷类型对应的缺陷概率。
服务器根据第一后验概率确定目标缺陷类型对应的缺陷概率的方法例如可以是:
根据公式(2)确定目标缺陷类型对应的缺陷概率:
其中,ρ为正规化常数,P1为目标缺陷类型对应的缺陷概率,P(A|D1)为目标缺陷类型A在缺陷类型D1已经发生的条件下的发生概率。P(Di|AD1…Di-1)为缺陷类型i在目标缺陷类型A、缺陷类型D1、…、缺陷类型Di-1同时发生的条件下的发生概率。
在本实施例中,服务器确定目标软件当前版本的待预测的目标缺陷类型,然后通过获取当前版本的前N个版本的多个缺陷类型对应的缺陷概率,将前N个版本的多个缺陷类型对应的缺陷概率输入到预先训练得到的预测模型中,得到目标缺陷类型对应的第一后验概率,然后根据第一后验概率,确定当前版本的目标缺陷类型对应的缺陷概率。本申请的预测模型可以是多重神经网络,而通过建立多重神经网络的输入和输出,避免了条件独立的假设,使得该方法适用于复杂场景的软件缺陷概率的预测,提高了软件缺陷概率的预测方法的适用性。
下面,通过实施例二对通过训练数据对预设模型进行训练得到预测模型进行详细说明。
图3为本申请实施例二提供的一种软件缺陷概率的确定方法的流程示意图,该方法可以由软件缺陷概率的确定装置执行,该软件缺陷概率的确定装置可以是服务器,以下以服务器为例进行说明,本实施例中的方法可以通过软件、硬件或者软硬件结合的方式来实现,参考图3,该方法包括如下步骤。
S301、获取训练数据,训练数据中包括多个缺陷类型对应的多个第一后验概率。
在一种可能的实现方式中,服务器可以获取如下方式获取训练数据:
服务器可以获取多个软件的多个版本对应的缺陷类型,然后根据多个软件的多个版本对应的缺陷类型,确定多个缺陷类型对应的多个第一后验概率。
具体的,服务器可以将多个软件的多个版本按照版本迭代时刻进行排序,得到每个软件的版本序列。即将每个软件的多个版本按照更新时刻进行排序,以得到的版本序列。
然后通过公式(3)确定多个缺陷类型中缺陷类型Di对应的第一后验概率:
其中,A为目标缺陷类型,Di是i个缺陷类型,P(Di|AD1…Di-1)为缺陷类型Di对应的第一后验概率。
Nn(AD1…Di-1Di)是目标缺陷类型、第一缺陷类型、…、第i缺陷类型作为第一扫描组合,在每个软件的版本序列对应的缺陷类型中出现的次数的总数。
Nn(AD1…Di-1)是目标缺陷类型、第一缺陷类型、…、第i-1缺陷类型作为第二扫描组合,在每个软件的版本序列对应的缺陷类型中出现的次数的总数。
其中,各个第一后验概率对应的第一扫描组合和第二扫描组合的排列顺序均不相同。
可以理解,训练数据越多,可以使得对预设模型的训练结果越好,且第一扫描组合的排列顺序不同时,其在每个软件的版本序列中出现的次数的总数不同,第二扫描组合同理。
那么,为了增加训练数据的数据量,即增加多个软件的多个版本对应的缺陷类型对应的第一后验概率的数量,服务器可以将第一扫描组合和第二扫描组合的排列顺序进行调整。
也就是说,对于缺陷类型Di,当第一扫描组合和第二扫描组合的排列顺序固定,那么得到的其对应的第一后验概率则为一个值。所以,服务器可以将第一扫描组合和/或第二扫描组合的排列顺序进行调整,以得到多个第一后验概率。
示例性的,第一扫描组合的排列顺序可以是:目标缺陷类型、第一缺陷类型、…、第i缺陷类型。或者,第一扫描组合的排列顺序还可以是:第一缺陷类型、目标缺陷类型、…、第i缺陷类型等。
同理,第二扫描组合的排列顺序可以是:目标缺陷类型、第一缺陷类型、…、第i-1缺陷类型。或者,第二扫描组合的排列顺序还可以是:第一缺陷类型、目标缺陷类型、…、第i-1缺陷类型等。
第一扫描组合和/或第二扫描组合的排列顺序不同,那么,第一扫描组合和第二扫描组合在每个软件的版本序列对应的缺陷类型中出现的次数不同,从而使得在多个软件的版本序列对应的缺陷类型中出现的次数的总数不同。
那么,根据公式(3)得到第一后验概率则不同,从而增加第一后验概率的数量。
S302、通过训练数据对预设模型进行训练得到预测模型。
服务器获取到训练数据后,可以通过训练数据对预设模型进行训练得到预测模型,其中,预设模型可以为多重神经网络。
该预测模型可以表示为:
其中,P(Di|AD1…Di-1)为缺陷类型i在目标缺陷类型A、缺陷类型D1、…、缺陷类型Di-1同时发生的条件下的发生概率,S和h均为预测模型的激活函数,和为权函数,i=2,…,N,P(D0)为预设数值,该预设数值一般为1,P(Dm|A)为缺陷类型Dm在目标缺陷类型A已经发生的条件下的发生概率。
在本实施例中,服务器可以获取训练数据,训练数据中包括多个缺陷类型对应的多个第一后验概率,然后通过训练数据对预设模型进行训练得到预测模型,使得该预测模型可以用于对目标软件当前版本的待预测的目标缺陷类型的缺陷概率进行预测,避免了条件独立的假设,使得本申请的软件缺陷概率的确定方法适用于复杂场景的软件缺陷概率的预测,提高了软件缺陷概率的预测方法的适用性。
图4为本申请实施例三提供的一种软件缺陷概率的确定装置的结构示意图。参考图4,该装置40包括:第一确定模块401,获取模块402、预测模块403和第二确定模块404。
第一确定模块401,用于确定目标软件当前版本的待预测的目标缺陷类型。
获取模块402,用于获取当前版本的前N个版本的多个缺陷类型对应的缺陷概率,N为大于或者等于1的整数,多个缺陷类型中包括目标缺陷类型。
预测模块403,用于将前N个版本的多个缺陷类型对应的缺陷概率输入到预先训练得到的预测模型中,得到当前版本的目标缺陷类型对应的第一后验概率。
第二确定模块404,用于根据第一后验概率,确定当前版本的目标缺陷类型对应的缺陷概率。
在一种可能的实施方式中,装置40还包括:训练模块。
训练模块,用于获取训练数据,训练数据中包括多个缺陷类型对应的多个第一后验概率。
通过训练数据对预设模型进行训练得到预测模型。
在一种可能的实施方式中,训练模块还用于:
获取多个软件的多个版本对应的缺陷类型。
根据多个软件的多个版本对应的缺陷类型,确定多个缺陷类型对应的多个第一后验概率。
在一种可能的实施方式中,训练模块还用于:
将多个软件的多个版本按照版本迭代时刻进行排序,得到每个软件的版本序列。
通过以下公式确定多个缺陷类型中缺陷类型Di对应的第一后验概率:
其中,A为目标缺陷类型,Di是i个缺陷类型,P(Di1AD1…Di-1)为缺陷类型Di对应的第一后验概率。
Nn(AD1…Di-1Di)是目标缺陷类型、第一缺陷类型、…、第i缺陷类型作为第一扫描组合,在每个软件的版本序列对应的缺陷类型中出现的次数的总数。
Nn(AD1…Di-1)是目标缺陷类型、第一缺陷类型、…、第i-1缺陷类型作为第二扫描组合,在每个软件的版本序列对应的缺陷类型中出现的次数的总数。
在一种可能的实施方式中,各个第一后验概率对应的第一扫描组合和第二扫描组合的排列顺序均不相同。
在一种可能的实施方式中,预先训练得到的预测模型表示为:
其中,P(Di|AD1…Di-1)为缺陷类型i在目标缺陷类型A、缺陷类型D1、…、缺陷类型Di-1同时发生的条件下的发生概率,S和h均为预测模型的激活函数,和为权函数,i=2,…,N,P(D0)为预设数值,P(Dm|A)为缺陷类型Dm在目标缺陷类型A已经发生的条件下的发生概率。
在一种可能的实施方式中,第二确定模块404还用于:
通过以下公式确定目标缺陷类型对应的缺陷概率:
其中,ρ为正规化常数,P1为目标缺陷类型对应的缺陷概率,P(A|D1)为目标缺陷类型A在缺陷类型D1已经发生的条件下的发生概率。
本实施例的装置,可用于执行实施例一或者实施例二中的一种软件缺陷概率的确定方法的步骤,具体实现方式和技术效果类似,这里不再赘述。
图5为本申请实施例四提供的一种电子设备的结构示意图,如图5所示,电子设备50可以包括:至少一个处理器501和存储器502。
存储器502,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
存储器502可能包含高速随机存取存储器(Random Access Memory,RAM),也可能还包括非易失性存储器(Non-Volatile Memory),例如至少一个磁盘存储器。
处理器501用于执行存储器502存储的计算机执行指令,以实现前述方法实施例所描述的方法。其中,处理器501可能是一个中央处理器(Central Processing Unit,CPU),或者是特定集成电路(Application Specific Integrated Circuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
可选的,电子设备50还可以包括:通信接口503。在具体实现上,如果通信接口503、存储器502和处理器501独立实现,则通信接口503、存储器502和处理器501可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry StandardArchitecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果通信接口503、存储器502和处理器501集成在一块芯片上实现,则通信接口503、存储器502和处理器501可以通过内部接口完成通信。
电子设备50可以为芯片、模组、IDE、终端设备、服务器等。
本实施例的电子设备,可用于执行实施例一或者实施例二中的一种软件缺陷概率的确定方法的步骤,具体实现方式和技术效果类似,这里不再赘述。
本申请实施例七提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、RAM、磁盘或者光盘等各种可以存储计算机执行指令的介质,具体的,该计算机可读存储介质中存储有计算机执行指令,该计算机执行指令被处理器执行时用于实现执行实施例一或者实施例二中的一种软件缺陷概率的确定方法的步骤,具体实现方式和技术效果类似,这里不再赘述。
本申请实施例八提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时,实现执行实施例一或者实施例二中的一种软件缺陷概率的确定方法的步骤,具体实现方式和技术效果类似,这里不再赘述。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本申请的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (10)
1.一种软件缺陷概率的确定方法,其特征在于,包括:
确定目标软件当前版本的待预测的目标缺陷类型;
获取所述当前版本的前N个版本的多个缺陷类型对应的缺陷概率,所述N为大于或者等于1的整数,所述多个缺陷类型中包括所述目标缺陷类型;
将所述前N个版本的多个缺陷类型对应的缺陷概率输入到预先训练得到的预测模型中,得到所述当前版本的所述目标缺陷类型对应的第一后验概率;
根据所述第一后验概率,确定所述当前版本的所述目标缺陷类型对应的缺陷概率。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取训练数据,所述训练数据中包括多个缺陷类型对应的多个第一后验概率;
通过所述训练数据对预设模型进行训练得到所述预测模型。
3.根据权利要求2所述的方法,其特征在于,所述获取训练数据,包括:
获取多个软件的多个版本对应的缺陷类型;
根据所述多个软件的多个版本对应的缺陷类型,确定多个缺陷类型对应的多个第一后验概率。
4.根据权利要求3所述的方法,其特征在于,所述根据所述多个软件的多个版本对应的缺陷类型,确定多个缺陷类型对应的多个第一后验概率,包括:
将所述多个软件的多个版本按照版本迭代时刻进行排序,得到每个软件的版本序列;
通过以下公式确定多个缺陷类型中缺陷类型Di对应的第一后验概率:
其中,A为所述目标缺陷类型,Di是i个缺陷类型,P(Di|AD1 … Di-1)为所述缺陷类型Di对应的第一后验概率;
Nn(AD1 … Di-1Di)是所述目标缺陷类型、第一缺陷类型、…、第i缺陷类型作为第一扫描组合,在每个软件的版本序列对应的缺陷类型中出现的次数的总数;
Nn(AD1 … Di-1)是所述目标缺陷类型、所述第一缺陷类型、…、第i-1缺陷类型作为第二扫描组合,在每个软件的版本序列对应的缺陷类型中出现的次数的总数。
5.根据权利要求4所述的方法,其特征在于,各个第一后验概率对应的所述第一扫描组合和所述第二扫描组合的排列顺序均不相同。
8.一种软件缺陷概率的确定装置,其特征在于,包括:
第一确定模块,用于确定目标软件当前版本的待预测的目标缺陷类型;
获取模块,用于获取所述当前版本的前N个版本的多个缺陷类型对应的缺陷概率,所述N为大于或者等于1的整数,所述多个缺陷类型中包括所述目标缺陷类型;
预测模块,用于将所述前N个版本的多个缺陷类型对应的缺陷概率输入到预先训练得到的预测模型中,得到所述当前版本的所述目标缺陷类型对应的第一后验概率;
第二确定模块,用于根据所述第一后验概率,确定所述当前版本的所述目标缺陷类型对应的缺陷概率。
9.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-7中任一项所述的软件缺陷概率的确定方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-7任一项所述的软件缺陷概率的确定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211232887.8A CN115509927A (zh) | 2022-10-10 | 2022-10-10 | 软件缺陷概率的确定方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211232887.8A CN115509927A (zh) | 2022-10-10 | 2022-10-10 | 软件缺陷概率的确定方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115509927A true CN115509927A (zh) | 2022-12-23 |
Family
ID=84508519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211232887.8A Pending CN115509927A (zh) | 2022-10-10 | 2022-10-10 | 软件缺陷概率的确定方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115509927A (zh) |
-
2022
- 2022-10-10 CN CN202211232887.8A patent/CN115509927A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109685805B (zh) | 一种图像分割方法及装置 | |
US20170286844A1 (en) | Decision service | |
US20200334557A1 (en) | Chained influence scores for improving synthetic data generation | |
WO2019006541A1 (en) | SYSTEM AND METHOD FOR AUTOMATIC CONSTRUCTION OF LEARNING MACHINES USING LEARNING MACHINES | |
CN110287104A (zh) | 测试用例生成方法、装置、终端及计算机可读存储介质 | |
KR20200076323A (ko) | 디지털 트윈용 다중 모델 병렬 실행 자동화 및 검증을 위한 방법 및 장치 | |
CN106649122B (zh) | 一种终端应用的模型构建方法及装置 | |
CN108875810B (zh) | 针对训练语料从词频表中进行负例采样的方法及装置 | |
CN116166967B (zh) | 基于元学习与残差网络的数据处理方法、设备和存储介质 | |
CN111626498A (zh) | 设备运行状态预测方法、装置、设备及存储介质 | |
CN114443483A (zh) | 人工智能系统的测试方法、装置、电子设备及介质 | |
CN112712181A (zh) | 模型构建优化方法、装置、设备和可读存储介质 | |
CN115509927A (zh) | 软件缺陷概率的确定方法、装置、设备及存储介质 | |
CN114049539B (zh) | 基于去相关二值网络的协同目标识别方法、系统及装置 | |
CN112988566B (zh) | 测试覆盖率提高方法、装置、计算机设备及存储介质 | |
CN111124918B (zh) | 测试数据预测方法及装置、处理设备 | |
KR102255470B1 (ko) | 인공신경망 모델의 검증 방법 및 장치 | |
CN117561502A (zh) | 一种确定失效原因的方法及装置 | |
CN108664368B (zh) | 处理器性能指标评估方法及设备 | |
CN117688881B (zh) | 基于人工智能的集成电路验证方法、装置及存储介质 | |
CN112598118B (zh) | 有监督学习的标注异常处理方法、装置、存储介质及设备 | |
TWI774312B (zh) | 模型訓練裝置、模型訓練方法及電腦可讀取媒體 | |
US20220172074A1 (en) | Verification system and verification method for neural network accelerator hardware | |
CN113989023A (zh) | 差错交易的处理方法及装置 | |
CN115687104A (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 |