CN106528417A - 软件缺陷智能检测方法和*** - Google Patents
软件缺陷智能检测方法和*** Download PDFInfo
- Publication number
- CN106528417A CN106528417A CN201610964353.2A CN201610964353A CN106528417A CN 106528417 A CN106528417 A CN 106528417A CN 201610964353 A CN201610964353 A CN 201610964353A CN 106528417 A CN106528417 A CN 106528417A
- Authority
- CN
- China
- Prior art keywords
- software
- sample
- module
- vector
- defect
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种软件缺陷智能检测方法和***,获取样本软件模块进行预处理,得到软件样本集。对软件无缺陷样本集进行聚类处理,得到聚类子集。对聚类子集进行随机抽样,得到平衡后的软件无缺陷样本集。根据软件有缺陷样本集和平衡后的软件无缺陷样本集得到更新软件样本集。根据更新软件样本集进行训练得到缺陷检测模型。根据缺陷检测模型对待测软件模块进行缺陷预测,并输出预测结果。通过对样本软件模块进行分类,并对软件无缺陷样本集进行聚类和抽取样本,保证了样本的平衡。根据平衡后的软件无缺陷样本集训练缺陷检测模型,使缺陷预测模型能够更好的对缺陷数据进行估计和拟合,对有缺陷数据的预测能够得到明显的提升,提高了预测准确度。
Description
技术领域
本发明涉及软件安全技术领域,特别是涉及一种软件缺陷智能检测方法和***。
背景技术
随着信息技术的发展,软件复杂程度不断提高、软件规模不断增大,尤其是对于复杂软件***,良好的软件质量控制和检测机制不但可以帮助企业开发出高质量的软件产品,减少产品生产和维护成本,而且在提高客户满意度,建立良好的企业形象和增强企业在市场上的竞争力等方面都有着重要的意义。
传统的软件缺陷智能检测方法采用基于机器学习的软件缺陷预测模型,以软件模块的度量数据向量作为输入,通过预处理、特征提取、模型训练和预测等步骤,实现对软件模块是否存在缺陷进行预测。该模型由于其性能的评价准则、归纳偏置等内在问题,对软件有缺陷模块和软件无缺陷模块同等处理,以总体最大预测精度作为目标,但对软件缺陷的检出率仍然不高。因此,传统的软件缺陷智能检测方法存在预测准确度低的缺点。
发明内容
基于此,有必要针对上述问题,提供一种可提高预测准确度的软件缺陷智能检测方法和***。
一种软件缺陷智能检测方法,包括以下步骤:
获取样本软件模块进行预处理,得到软件样本集;所述软件样本集包括软件有缺陷样本集和软件无缺陷样本集;
对所述软件无缺陷样本集进行聚类处理,得到聚类子集;
对所述聚类子集进行随机抽样,得到平衡后的软件无缺陷样本集;
根据所述软件有缺陷样本集和所述平衡后的软件无缺陷样本集得到更新软件样本集;
根据所述更新软件样本集进行训练得到缺陷检测模型;
根据所述缺陷检测模型对待测软件模块进行缺陷预测,并输出预测结果。
一种软件缺陷智能检测***,包括:
样本集建立模块,用于获取样本软件模块进行预处理,得到软件样本集;所述软件样本集包括软件有缺陷样本集和软件无缺陷样本集;
聚类处理模块,用于对所述软件无缺陷样本集进行聚类处理,得到聚类子集;
抽样处理模块,用于对所述聚类子集进行随机抽样,得到平衡后的软件无缺陷样本集;
样本集更新模块,用于根据所述软件有缺陷样本集和所述平衡后的软件无缺陷样本集得到更新软件样本集;
模型训练模块,用于根据所述更新软件样本集进行训练得到缺陷检测模型;
缺陷预测模块,用于根据所述缺陷检测模型对待测软件模块进行缺陷预测,并输出预测结果。
上述软件缺陷智能检测方法和***,获取样本软件模块进行预处理,得到软件样本集。对软件无缺陷样本集进行聚类处理,得到聚类子集。对聚类子集进行随机抽样,得到平衡后的软件无缺陷样本集。根据软件有缺陷样本集和平衡后的软件无缺陷样本集得到更新软件样本集。根据更新软件样本集进行训练得到缺陷检测模型。根据缺陷检测模型对待测软件模块进行缺陷预测,并输出预测结果。通过对样本软件模块进行分类,并对软件无缺陷样本集进行聚类和抽取样本,保证了样本的平衡。根据平衡后的软件无缺陷样本集训练缺陷检测模型,使缺陷预测模型能够更好的对缺陷数据进行估计和拟合,对有缺陷数据的预测能够得到明显的提升,提高了预测准确度。
附图说明
图1为一实施例中软件缺陷智能检测方法的流程图;
图2为一实施例中软件缺陷智能检测***的结构图。
具体实施方式
在一个实施例中,一种软件缺陷智能检测方法,如图1所示,包括以下步骤:
步骤S110:获取样本软件模块进行预处理,得到软件样本集。
软件样本集包括软件有缺陷样本集和软件无缺陷样本集。样本软件模块指已知是否存在缺陷的软件模块。例如,对于软件中已知的Q个模块,其中软件无缺陷模块有M个,软件有缺陷模块有N个,M+N=Q。在获取得到样本软件模块之后根据是否存在缺陷进行分类,得到软件有缺陷样本集和软件无缺陷样本集。
在一个实施例中,步骤S110包括步骤112至步骤116。
步骤112:分别对样本软件模块进行标记处理,得到各样本软件模块的缺陷标记。
对每一个模块i,i=1,2,...,Q,分别对其是否存在缺陷标记flagi。flagi=1,存在缺陷;flagi=0,没有缺陷。可以理解,各样本软件模块的标记方式以及得到的缺陷标记的取值并不唯一,在其他实施例中,也可以是令存在缺陷的样本软件模块的缺陷标记为0,令不存在缺陷的样本软件模块的缺陷标记为1等。
步骤114:分别对样本软件模块进行静态度量,得到各样本软件模块的样本向量。
对每一个模块i,i=1,2,...,Q,分别对其源代码进行静态度量。本实施例中静态度量具体可包括Halstead度量、MaCabe度量、Khoshgoftaar度量和CK度量等,得到共k个度量值,并将这些度量值分别标记为ti1,ti2,...,tik,构成样本向量Ti={ti1,ti2,...,tik}。
步骤116:根据各样本软件模块的缺陷标记,对对应样本软件模块的样本向量进行分类,得到软件有缺陷样本集和软件无缺陷样本集。
将软件有缺陷模块的样本向量分为一类,得到软件有缺陷样本集{Ti|flagi=1}。将软件无缺陷模块的样本向量分为一类,得到软件无缺陷样本集{Ti|flagi=0}。软件有缺陷样本集和软件无缺陷样本集构成软件样本集{Ti|i=1,2,...,Q}。
步骤S120:对软件无缺陷样本集进行聚类处理,得到聚类子集。
对软件无缺陷样本集{Ti|flagi=0}进行聚类,得到聚类子集,聚类子集的具体数量并不唯一。本实施例中,采用MeanShift方法进行聚类,计算量小,可提高聚类分析速度。步骤S120包括步骤122至步骤128。
步骤122:以软件无缺陷样本集中的样本向量为起点,计算样本向量的meanshift向量。具体为:
其中,Mh表示样本向量T的meanshift向量,Sh(T)表示半径为常数h的高维球区域内,满足关系(T-Ti)T(T-Ti)<h2的K个样本向量的集合,Ti为Sh(T)中的样本向量。需要说明的是,(T-Ti)T(T-Ti)<h2中,括号内的T表示样本向量,括号右上角的运算符号T表示转置。
步骤124:判断样本向量的meanshift向量是否大于预设阈值。若是,则将样本向量与meanshift向量之和作为新的样本向量,并返回步骤122。若否,则进行步骤126。预设阈值ε为预先设定且可根据实际情况调整,如果meanshift向量Mh大于ε,以Ti+Mh作为新的起点,再次计算新的meanshift向量Mh。
步骤126:将样本向量与meanshift向量之和作为样本向量的中心点。如果Mh小于或等于ε,则确认Ti+Mh为中心点。重复步骤122至步骤126直至遍历所有样本向量,生成P个中心点。
步骤128:根据样本向量的中心点对样本向量进行聚类,得到聚类子集。将趋于同一中心点的样本向量划分为一类,形成P个聚类子集。
通过聚类方法计算软件缺陷分布的多个子集,更好的刻画软件缺陷分布,为进一步的样本平衡抽样奠定基础。
步骤S130:对聚类子集进行随机抽样,得到平衡后的软件无缺陷样本集。
对聚类形成的P个聚类子集进行抽样,以保证样本平衡。对于第j个聚类子集的样本数为mj,则有对每个聚类子集进行抽样的数量并不唯一,本实施例中,对所述聚类子集进行随机抽样的抽取样本个数为:
其中,mj'为对第j个聚类子集进行随机抽样的抽取样本个数,mj为第j个聚类子集的样本数,M为软件无缺陷模块的总数,N为软件有缺陷模块的总数。
基于缺陷数据样本分布,在每个子集下采用随机抽样的方法选取样本,实现样本间的平衡。得到平衡后的软件无缺陷集{Ti'|flagi=0},样本个数为
步骤S140:根据软件有缺陷样本集和平衡后的软件无缺陷样本集得到更新软件样本集。
将软件有缺陷样本集与平衡后的软件无缺陷样本集合并,作为更新软件样本集{Ti'|i=1,2,...,M'+N}。
步骤S150:根据更新软件样本集进行训练得到缺陷检测模型。
在平衡后的高维样本空间下,选择适合的数据挖掘方法训练缺陷检测模型。根据平衡后的软件无缺陷样本集训练缺陷检测模型,使缺陷预测模型能够更好的对缺陷数据进行估计和拟合。在一个实施例中,步骤S150包括:
其中,Ti、Tj分别为更新软件样本集中第i、j个样本向量,k(Ti,Tj)表示样本向量Ti、Tj之间的核函数;flagi、flagj分别为更新软件样本集中第i、j个样本向量所对应的缺陷标记,λi、λj为缺陷检测模型待训练的参数,表示更新软件样本集中第i、j个样本向量的权值;s.t.表示约束条件,C为惩罚因子,M’+N表示更新软件样本集中样本向量的个数。
表示取最大值时缺陷检测模型的参数λ的取值;分别将更新软件样本集中的样本向量Ti、Tj代入在取最大值时确定样本向量Ti的权值λi的取值,最终得到更新软件样本集中所有样本向量的权值。
步骤S160:根据缺陷检测模型对待测软件模块进行缺陷预测,并输出预测结果。
利用缺陷预测模型对未知的待测软件模块进行缺陷预测,得到预测结果并输出,告知工作人员完成对待测软件模块的缺陷预测。在一个实施例中,步骤S160包括步骤162和步骤164。
步骤162:对待测软件模块进行静态度量,得到待测软件模块的样本向量。具体地,对待测软件模块源代码进行静态度量,静态度量同样可包括Halstead度量、MaCabe度量、Khoshgoftaar度量和CK度量等。
步骤164:根据待测软件模块的样本向量以及缺陷预测模型对待测软件模块进行缺陷预测。具体为:
其中,T为待测软件模块的样本向量,g(T)表示待测软件模块的缺陷标记,sgn表示对求整型变量,当大于0时取1,当小于或等于0时取0;Ti为更新软件样本集中第i个样本向量,flagi为更新软件样本集中第i个样本向量所对应的缺陷标记,λi表示由缺陷预测模型得到的更新软件样本集中第i个样本向量的权值,M’+N表示更新软件样本集中样本向量的个数,b为常数。同样,本实施例中K(Ti,T)表示样本向量Ti、T之间的核函数。进行整型变量的方式与缺陷标记的定义对应。
在实际应用中,由于软件失效的概率相比正常的概率较低,软件失效模块占软件模块总数相对较少。然而,当这些少量的软件失效模块未被发现时,一旦投入实际使用,所带来的经济损失和社会损失是不可估量的。并且,由于软件失效模块占软件模块总数相对较少,这使得其在软件缺陷检测模型训练样本数据相差悬殊时,智能检测方法产生偏向性。
上述软件缺陷智能检测方法,针对软件复杂程度不断提高、软件规模不断增大,尤其是对于复杂软件***缺陷检测工作量巨大,缺陷定位困难等问题。通过对样本软件模块进行分类,并对软件无缺陷样本集进行聚类和抽取样本,保证了样本的平衡。根据平衡后的软件无缺陷样本集训练缺陷检测模型,使缺陷预测模型能够更好的对缺陷数据进行估计和拟合,对有缺陷数据的预测能够得到明显的提升,提高了预测准确度。
在一个实施例中,一种软件缺陷智能检测***,如图2所示,包括样本集建立模块110、聚类处理模块120、抽样处理模块130、样本集更新模块140、模型训练模块150和缺陷预测模块160。
样本集建立模块110用于获取样本软件模块进行预处理,得到软件样本集。
软件样本集包括软件有缺陷样本集和软件无缺陷样本集。样本软件模块指已知是否存在缺陷的软件模块。在获取得到样本软件模块之后根据是否存在缺陷进行分类,得到软件有缺陷样本集和软件无缺陷样本集。在一个实施例中,样本集建立模块110包括第一样本集建立单元、第二样本集建立单元和第三样本集建立单元。
第一样本集建立单元用于分别对样本软件模块进行标记处理,得到各样本软件模块的缺陷标记。
对每一个模块i,i=1,2,...,Q,分别对其是否存在缺陷标记flagi。flagi=1,存在缺陷;flagi=0,没有缺陷。可以理解,各样本软件模块的标记方式以及得到的缺陷标记的取值并不唯一,在其他实施例中,也可以是令存在缺陷的样本软件模块的缺陷标记为0,令不存在缺陷的样本软件模块的缺陷标记为1等。
第二样本集建立单元用于分别对样本软件模块进行静态度量,得到各样本软件模块的样本向量。
对每一个模块i,i=1,2,...,Q,分别对其源代码进行静态度量。本实施例中静态度量具体可包括Halstead度量、MaCabe度量、Khoshgoftaar度量和CK度量等,得到共k个度量值,并将这些度量值分别标记为ti1,ti2,...,tik,构成样本向量Ti={ti1,ti2,...,tik}。
第三样本集建立单元用于根据各样本软件模块的缺陷标记,对对应样本软件模块的样本向量进行分类,得到软件有缺陷样本集和软件无缺陷样本集。
将软件有缺陷模块的样本向量分为一类,得到软件有缺陷样本集{Ti|flagi=1}。将软件无缺陷模块的样本向量分为一类,得到软件无缺陷样本集{Ti|flagi=0}。软件有缺陷样本集和软件无缺陷样本集构成软件样本集{Ti|i=1,2,...,Q}。
聚类处理模块120用于对软件无缺陷样本集进行聚类处理,得到聚类子集。
对软件无缺陷样本集{Ti|flagi=0}进行聚类,得到聚类子集,聚类子集的具体数量并不唯一。本实施例中,采用MeanShift方法进行聚类,计算量小,可提高聚类分析速度。聚类处理模块120包括第一处理单元、第二处理单元、第三处理单元和第四处理单元。
第一处理单元用于以软件无缺陷样本集中的样本向量为起点,计算样本向量的meanshift向量。具体为:
其中,Mh表示样本向量T的meanshift向量,Sh(T)表示半径为常数h的高维球区域内,满足关系(T-Ti)T(T-Ti)<h2的K个样本向量的集合,Ti为Sh(T)中的样本向量。需要说明的是,(T-Ti)T(T-Ti)<h2中,括号内的T表示样本向量,括号右上角的运算符号T表示转置。
第二处理单元用于判断样本向量的meanshift向量是否大于预设阈值。预设阈值ε为预先设定且可根据实际情况调整。
第三处理单元,用于在样本向量的meanshift向量大于预设阈值时,将样本向量与meanshift向量之和作为新的样本向量,并控制第一处理单元再次以软件无缺陷样本集中的样本向量为起点,计算样本向量的meanshift向量;以及在样本向量的meanshift向量小于或等于预设阈值时,将样本向量与meanshift向量之和作为样本向量的中心点。
如果meanshift向量Mh大于ε,以Ti+Mh作为新的起点,再次计算新的meanshift向量Mh。如果Mh小于或等于ε,则确认Ti+Mh为中心点。重复进行计算直至遍历所有样本向量,生成P个中心点。
第四处理单元用于根据样本向量的中心点对样本向量进行聚类,得到聚类子集。将趋于同一中心点的样本向量划分为一类,形成P个聚类子集。
通过聚类方法计算软件缺陷分布的多个子集,更好的刻画软件缺陷分布,为进一步的样本平衡抽样奠定基础。
抽样处理模块130用于对聚类子集进行随机抽样,得到平衡后的软件无缺陷样本集。
对聚类形成的P个聚类子集进行抽样,以保证样本平衡。对于第j个聚类子集的样本数为mj,则有对每个聚类子集进行抽样的数量并不唯一,本实施例中,对所述聚类子集进行随机抽样的抽取样本个数为:
其中,mj'为对第j个聚类子集进行随机抽样的抽取样本个数,mj为第j个聚类子集的样本数,M为软件无缺陷模块的总数,N为软件有缺陷模块的总数。
基于缺陷数据样本分布,在每个子集下采用随机抽样的方法选取样本,实现样本间的平衡。得到平衡后的软件无缺陷集{Ti'|flagi=0},样本个数为
样本集更新模块140用于根据软件有缺陷样本集和平衡后的软件无缺陷样本集得到更新软件样本集。
将软件有缺陷样本集与平衡后的软件无缺陷样本集合并,作为更新软件样本集{Ti'|i=1,2,...,M'+N}。
模型训练模块150用于根据更新软件样本集进行训练得到缺陷检测模型。在平衡后的高维样本空间下,选择适合的数据挖掘方法训练缺陷检测模型。根据平衡后的软件无缺陷样本集训练缺陷检测模型,使缺陷预测模型能够更好的对缺陷数据进行估计和拟合。在一个实施例中,模型训练模块150根据更新软件样本集进行训练得到缺陷检测模型,包括:
其中,Ti、Tj分别为更新软件样本集中第i、j个样本向量,k(Ti,Tj)表示样本向量Ti、Tj之间的核函数;flagi、flagj分别为更新软件样本集中第i、j个样本向量所对应的缺陷标记,λi、λj为缺陷检测模型待训练的参数,表示更新软件样本集中第i、j个样本向量的权值;s.t.表示约束条件,C为惩罚因子,M’+N表示更新软件样本集中样本向量的个数。
表示取最大值时缺陷检测模型的参数λ的取值;分别将更新软件样本集中的样本向量Ti、Tj代入在取最大值时确定样本向量Ti的权值λi的取值,最终得到更新软件样本集中所有样本向量的权值。
缺陷预测模块160用于根据缺陷检测模型对待测软件模块进行缺陷预测,并输出预测结果。
利用缺陷预测模型对未知的待测软件模块进行缺陷预测,得到预测结果并输出,告知工作人员完成对待测软件模块的缺陷预测。在一个实施例中,缺陷预测模块160包括第一预测单元和第二预测单元。
第一预测单元用于对待测软件模块进行静态度量,得到待测软件模块的样本向量。具体地,对待测软件模块源代码进行静态度量,静态度量同样可包括Halstead度量、MaCabe度量、Khoshgoftaar度量和CK度量等。
第二预测单元用于根据待测软件模块的样本向量以及缺陷预测模型对待测软件模块进行缺陷预测。具体为:
其中,T为待测软件模块的样本向量,g(T)表示待测软件模块的缺陷标记,sgn表示对求整型变量,当大于0时取1,当小于或等于0时取0;Ti为更新软件样本集中第i个样本向量,flagi为更新软件样本集中第i个样本向量所对应的缺陷标记,λi表示由缺陷预测模型得到的更新软件样本集中第i个样本向量的权值,M’+N表示更新软件样本集中样本向量的个数,b为常数。同样,本实施例中K(Ti,T)表示样本向量Ti、T之间的核函数。进行整型变量的方式与缺陷标记的定义对应。
上述软件缺陷智能检测***,针对软件复杂程度不断提高、软件规模不断增大,尤其是对于复杂软件***缺陷检测工作量巨大,缺陷定位困难等问题。通过对样本软件模块进行分类,并对软件无缺陷样本集进行聚类和抽取样本,保证了样本的平衡。根据平衡后的软件无缺陷样本集训练缺陷检测模型,使缺陷预测模型能够更好的对缺陷数据进行估计和拟合,对有缺陷数据的预测能够得到明显的提升,提高了预测准确度。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种软件缺陷智能检测方法,其特征在于,包括以下步骤:
获取样本软件模块进行预处理,得到软件样本集;所述软件样本集包括软件有缺陷样本集和软件无缺陷样本集;
对所述软件无缺陷样本集进行聚类处理,得到聚类子集;
对所述聚类子集进行随机抽样,得到平衡后的软件无缺陷样本集;
根据所述软件有缺陷样本集和所述平衡后的软件无缺陷样本集得到更新软件样本集;
根据所述更新软件样本集进行训练得到缺陷检测模型;
根据所述缺陷检测模型对待测软件模块进行缺陷预测,并输出预测结果。
2.根据权利要求1所述的软件缺陷智能检测方法,其特征在于,所述获取样本软件模块进行预处理,得到软件样本集的步骤,包括以下步骤:
分别对样本软件模块进行标记处理,得到各样本软件模块的缺陷标记;
分别对样本软件模块进行静态度量,得到各样本软件模块的样本向量;
根据各样本软件模块的缺陷标记,对对应样本软件模块的样本向量进行分类,得到软件有缺陷样本集和软件无缺陷样本集。
3.根据权利要求2所述的软件缺陷智能检测方法,其特征在于,所述对所述软件无缺陷样本集进行聚类处理,得到聚类子集的步骤,包括以下步骤:
以所述软件无缺陷样本集中的样本向量为起点,计算样本向量的meanshift向量,具体为:
其中,Mh表示样本向量T的meanshift向量,Sh(T)表示半径为常数h的高维球区域内,满足关系(T-Ti)T(T-Ti)<h2的K个样本向量的集合,Ti为Sh(T)中的样本向量;
判断样本向量的meanshift向量是否大于预设阈值;
若是,则将样本向量与meanshift向量之和作为新的样本向量,并返回所述以所述软件无缺陷样本集中的样本向量为起点,计算样本向量的meanshift向量的步骤;
若否,则将样本向量与meanshift向量之和作为样本向量的中心点;
根据样本向量的中心点对样本向量进行聚类,得到聚类子集。
4.根据权利要求1所述的软件缺陷智能检测方法,其特征在于,对所述聚类子集进行随机抽样的抽取样本个数为:
其中,mj'为对第j个聚类子集进行随机抽样的抽取样本个数,mj为第j个聚类子集的样本数,M为软件无缺陷模块的总数,N为软件有缺陷模块的总数。
5.根据权利要求1所述的软件缺陷智能检测方法,其特征在于,所述根据所述更新软件样本集进行训练得到缺陷检测模型,包括:
其中,表示取最大值时缺陷检测模型的参数λ的取值;
Ti、Tj分别为更新软件样本集中第i、j个样本向量,k(Ti,Tj)表示样本向量Ti、Tj之间的核函数;flagi、flagj分别为更新软件样本集中第i、j个样本向量所对应的缺陷标记,λi、λj为缺陷检测模型待训练的参数,表示更新软件样本集中第i、j个样本向量的权值;s.t.表示约束条件,C为惩罚因子,M’+N表示更新软件样本集中样本向量的个数。
6.根据权利要求1所述的软件缺陷智能检测方法,其特征在于,根据所述缺陷检测模型对待测软件模块进行缺陷预测,包括以下步骤:
对待测软件模块进行静态度量,得到待测软件模块的样本向量;
根据待测软件模块的样本向量以及缺陷预测模型对待测软件模块进行缺陷预测,具体为:
其中,T为待测软件模块的样本向量,K(Ti,T)表示样本向量Ti、T之间的核函数;g(T)表示待测软件模块的缺陷标记,sgn为符号函数,表示对求整型变量,当大于0时取1,当小于或等于0时取0;Ti为更新软件样本集中第i个样本向量,flagi为更新软件样本集中第i个样本向量所对应的缺陷标记,λi表示由缺陷预测模型得到的更新软件样本集中第i个样本向量的权值,M’+N表示更新软件样本集中样本向量的个数,b为常数。
7.一种软件缺陷智能检测***,其特征在于,包括:
样本集建立模块,用于获取样本软件模块进行预处理,得到软件样本集;所述软件样本集包括软件有缺陷样本集和软件无缺陷样本集;
聚类处理模块,用于对所述软件无缺陷样本集进行聚类处理,得到聚类子集;
抽样处理模块,用于对所述聚类子集进行随机抽样,得到平衡后的软件无缺陷样本集;
样本集更新模块,用于根据所述软件有缺陷样本集和所述平衡后的软件无缺陷样本集得到更新软件样本集;
模型训练模块,用于根据所述更新软件样本集进行训练得到缺陷检测模型;
缺陷预测模块,用于根据所述缺陷检测模型对待测软件模块进行缺陷预测,并输出预测结果。
8.根据权利要求7所述的软件缺陷智能检测***,其特征在于,对所述聚类子集进行随机抽样的抽取样本个数为:
其中,mj'为对第j个聚类子集进行随机抽样的抽取样本个数,mj为第j个聚类子集的样本数,M为软件无缺陷模块的总数,N为软件有缺陷模块的总数。
9.根据权利要求7所述的软件缺陷智能检测***,其特征在于,所述模型训练模块根据所述更新软件样本集进行训练得到缺陷检测模型,包括:
其中,表示取最大值时缺陷检测模型的参数λ的取值;
Ti、Tj分别为更新软件样本集中第i、j个样本向量,k(Ti,Tj)表示样本向量Ti、Tj之间的核函数;flagi、flagj分别为更新软件样本集中第i、j个样本向量所对应的缺陷标记,λi、λj为缺陷检测模型待训练的参数,表示更新软件样本集中第i、j个样本向量的权值;s.t.表示约束条件,C为惩罚因子,M’+N表示更新软件样本集中样本向量的个数。
10.根据权利要求7所述的软件缺陷智能检测***,其特征在于,所述缺陷预测模块包括:
第一预测单元,用于对待测软件模块进行静态度量,得到待测软件模块的样本向量;
第二预测单元,用于根据待测软件模块的样本向量以及缺陷预测模型对待测软件模块进行缺陷预测,具体为:
其中,T为待测软件模块的样本向量,K(Ti,T)表示样本向量Ti、T之间的核函数;g(T)表示待测软件模块的缺陷标记,sgn表示对求整型变量,当大于0时取1,当小于或等于0时取0;Ti为更新软件样本集中第i个样本向量,flagi为更新软件样本集中第i个样本向量所对应的缺陷标记,λi表示由缺陷预测模型得到的更新软件样本集中第i个样本向量的权值,M’+N表示更新软件样本集中样本向量的个数,b为常数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610964353.2A CN106528417A (zh) | 2016-10-28 | 2016-10-28 | 软件缺陷智能检测方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610964353.2A CN106528417A (zh) | 2016-10-28 | 2016-10-28 | 软件缺陷智能检测方法和*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106528417A true CN106528417A (zh) | 2017-03-22 |
Family
ID=58326311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610964353.2A Pending CN106528417A (zh) | 2016-10-28 | 2016-10-28 | 软件缺陷智能检测方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106528417A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107247662A (zh) * | 2017-05-10 | 2017-10-13 | 中国电子产品可靠性与环境试验研究所 | 软件缺陷检测方法及装置 |
CN107391369A (zh) * | 2017-07-13 | 2017-11-24 | 武汉大学 | 一种基于数据筛选和数据过采样的跨项目缺陷预测方法 |
CN107391370A (zh) * | 2017-07-13 | 2017-11-24 | 武汉大学 | 一种基于数据过采样和集成学习的软件缺陷数目预测方法 |
CN107391452A (zh) * | 2017-07-06 | 2017-11-24 | 武汉大学 | 一种基于数据欠采样和集成学习的软件缺陷数目预测方法 |
CN109242106A (zh) * | 2018-09-07 | 2019-01-18 | 百度在线网络技术(北京)有限公司 | 样本处理方法、装置、设备和存储介质 |
CN109597748A (zh) * | 2017-09-30 | 2019-04-09 | 北京国双科技有限公司 | 代码缺陷预警方法及装置 |
CN109829483A (zh) * | 2019-01-07 | 2019-05-31 | 鲁班嫡系机器人(深圳)有限公司 | 缺陷识别模型训练方法、装置、计算机设备和存储介质 |
CN111611177A (zh) * | 2020-06-29 | 2020-09-01 | 中国人民解放军国防科技大学 | 一种基于配置项性能期望的软件性能缺陷检测方法 |
CN116804668A (zh) * | 2023-08-23 | 2023-09-26 | 国盐检测(天津)有限责任公司 | 一种食盐碘含量检测数据标识方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050071807A1 (en) * | 2003-09-29 | 2005-03-31 | Aura Yanavi | Methods and systems for predicting software defects in an upcoming software release |
CN103823753A (zh) * | 2014-01-22 | 2014-05-28 | 浙江大学 | 一种面向网页内容无障碍检测的网页抽样方法 |
CN104899135A (zh) * | 2015-05-14 | 2015-09-09 | 工业和信息化部电子第五研究所 | 软件缺陷预测方法和*** |
-
2016
- 2016-10-28 CN CN201610964353.2A patent/CN106528417A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050071807A1 (en) * | 2003-09-29 | 2005-03-31 | Aura Yanavi | Methods and systems for predicting software defects in an upcoming software release |
CN103823753A (zh) * | 2014-01-22 | 2014-05-28 | 浙江大学 | 一种面向网页内容无障碍检测的网页抽样方法 |
CN104899135A (zh) * | 2015-05-14 | 2015-09-09 | 工业和信息化部电子第五研究所 | 软件缺陷预测方法和*** |
Non-Patent Citations (1)
Title |
---|
戴翔等: "基于集成混合采样的软件缺陷预测研究", 《计算机工程与科学》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107247662A (zh) * | 2017-05-10 | 2017-10-13 | 中国电子产品可靠性与环境试验研究所 | 软件缺陷检测方法及装置 |
CN107247662B (zh) * | 2017-05-10 | 2019-10-18 | 中国电子产品可靠性与环境试验研究所 | 软件缺陷检测方法及装置 |
CN107391452A (zh) * | 2017-07-06 | 2017-11-24 | 武汉大学 | 一种基于数据欠采样和集成学习的软件缺陷数目预测方法 |
CN107391452B (zh) * | 2017-07-06 | 2020-01-07 | 武汉大学 | 一种基于数据欠采样和集成学习的软件缺陷数目预测方法 |
CN107391369B (zh) * | 2017-07-13 | 2020-03-24 | 武汉大学 | 一种基于数据筛选和数据过采样的跨项目缺陷预测方法 |
CN107391369A (zh) * | 2017-07-13 | 2017-11-24 | 武汉大学 | 一种基于数据筛选和数据过采样的跨项目缺陷预测方法 |
CN107391370A (zh) * | 2017-07-13 | 2017-11-24 | 武汉大学 | 一种基于数据过采样和集成学习的软件缺陷数目预测方法 |
CN107391370B (zh) * | 2017-07-13 | 2020-05-12 | 武汉大学 | 一种基于数据过采样和集成学习的软件缺陷数目预测方法 |
CN109597748A (zh) * | 2017-09-30 | 2019-04-09 | 北京国双科技有限公司 | 代码缺陷预警方法及装置 |
CN109242106A (zh) * | 2018-09-07 | 2019-01-18 | 百度在线网络技术(北京)有限公司 | 样本处理方法、装置、设备和存储介质 |
CN109242106B (zh) * | 2018-09-07 | 2022-07-26 | 百度在线网络技术(北京)有限公司 | 样本处理方法、装置、设备和存储介质 |
CN109829483A (zh) * | 2019-01-07 | 2019-05-31 | 鲁班嫡系机器人(深圳)有限公司 | 缺陷识别模型训练方法、装置、计算机设备和存储介质 |
CN109829483B (zh) * | 2019-01-07 | 2021-05-18 | 鲁班嫡系机器人(深圳)有限公司 | 缺陷识别模型训练方法、装置、计算机设备和存储介质 |
CN111611177A (zh) * | 2020-06-29 | 2020-09-01 | 中国人民解放军国防科技大学 | 一种基于配置项性能期望的软件性能缺陷检测方法 |
CN111611177B (zh) * | 2020-06-29 | 2023-06-09 | 中国人民解放军国防科技大学 | 一种基于配置项性能期望的软件性能缺陷检测方法 |
CN116804668A (zh) * | 2023-08-23 | 2023-09-26 | 国盐检测(天津)有限责任公司 | 一种食盐碘含量检测数据标识方法及*** |
CN116804668B (zh) * | 2023-08-23 | 2023-11-21 | 国盐检测(天津)有限责任公司 | 一种食盐碘含量检测数据标识方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106528417A (zh) | 软件缺陷智能检测方法和*** | |
CN110287927B (zh) | 基于深度多尺度和上下文学习的遥感影像目标检测方法 | |
CN109117883B (zh) | 基于长短时记忆网络的sar影像海冰分类方法及*** | |
CN106469560B (zh) | 一种基于无监督域适应的语音情感识别方法 | |
WO2020073714A1 (zh) | 训练样本获取方法,账户预测方法及对应装置 | |
CN104899135B (zh) | 软件缺陷预测方法和*** | |
CN107274020B (zh) | 一种基于协同过滤思想的学习者学科总测成绩预测***及方法 | |
CN104408153A (zh) | 一种基于多粒度主题模型的短文本哈希学习方法 | |
CN105069470A (zh) | 分类模型训练方法及装置 | |
CN105069072A (zh) | 基于情感分析的混合用户评分信息推荐方法及其推荐装置 | |
CN108549817A (zh) | 一种基于文本深度学习的软件安全漏洞预测方法 | |
CN109284779A (zh) | 基于深度全卷积网络的物体检测方法 | |
CN108334943A (zh) | 基于主动学习神经网络模型的工业过程半监督软测量建模方法 | |
CN111476307B (zh) | 一种基于深度领域适应的锂电池表面缺陷检测方法 | |
CN108628164A (zh) | 一种基于循环神经网络模型的工业过程半监督软测量方法 | |
CN108764295A (zh) | 一种基于半监督集成学习的软测量建模方法 | |
CN115049627B (zh) | 基于域自适应深度迁移网络的钢表面缺陷检测方法及*** | |
CN110263934A (zh) | 一种人工智能数据标注方法和装置 | |
CN113516228A (zh) | 一种基于深度神经网络的网络异常检测方法 | |
Zhang et al. | Research on surface defect detection algorithm of strip steel based on improved YOLOV3 | |
CN117152503A (zh) | 一种基于伪标签不确定性感知的遥感图像跨域小样本分类方法 | |
CN111144462A (zh) | 一种雷达信号的未知个体识别方法及装置 | |
CN116152674A (zh) | 一种基于改进U-Net模型的大坝无人机影像裂缝智能识别方法 | |
CN113283467A (zh) | 一种基于平均损失和逐类选择的弱监督图片分类方法 | |
Wang et al. | Temperature forecast based on SVM optimized by PSO algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170322 |
|
RJ01 | Rejection of invention patent application after publication |