The invention provides a software defect prediction method and device, to forecast the software software module source code static measurement, construction defects defects can be obtained by vector; vector mapping vector projection matrix is mapped to the preset defects in geometric space; presupposition projection matrix is obtained by training in the training process prediction model, the sample defect a subset of samples make the vector set relative entropy distance geometric mean maximum projection matrix, the sample defects include defective subset subset and defect free subsets; mapping vector input to the defect prediction model after training, through training the prediction model, the mapping vector and the sample subset of the defect defect of Mahalanobis distance sample defect subset the smallest corresponding categories, as prediction software defects to be corresponding to the predicted results, so, can The optimization of software defect data is carried out to ensure the rationality of data distribution, so that higher accuracy prediction results can be obtained.
【技术实现步骤摘要】
软件缺陷预测方法及装置
本专利技术涉及软件质量
,尤其涉及一种软件缺陷预测方法及装置。
技术介绍
随着信息技术的发展,软件复杂程度不断提高、软件规模不断增大,良好的软件质量控制和预测机制,不但可以帮助企业开发出高质量的软件产品,减少产品生产和维护成本,而且在提高客户满意度,建立良好的企业形象和增强企业在市场上的竞争力等方面都有着重要的意义。另外,软件系统的质量问题极有可能会导致严重后果。因此,软件质量越来越受重视,如何预测软件质量及提高软件质量成为当今研究的热点之一。软件缺陷预测是通过统计学方法对与软件质量有关的数据进行处理从而对软件模块是否存在缺陷进行估计,这样就能在软件开发的早期根据软件的有关数据,对软件的质量进行预测和控制,从而预测出软件可能出现的质量问题,进而提高和控制软件的质量。传统的软件缺陷预测方法主要包括基于统计学方法的预测模型和基于神经网络的预测模型等。其中,神经网络由于其训练不需要完全知道系统的具体细节,并且具有良好的非线性映射逼近性能和自学习能力,在软件缺陷预测中得到了广泛应用。然而在实际应用中,由于软件失效的概率相比正常的概率较低,实际得到的软件缺陷分布基本上都是不均衡的,软件失效模块占软件模块总数相对较少。并且,由于软件缺陷预测模型输入的各种度量数据的计算方法不同,取值范围和含义也各不相同,会导致质量评价方法产生偏向性,这些因素都会严重影响软件缺陷预测模型的准确性。当这些软件失效模块被错误预测为无缺陷时,一旦投入实际使用,所带来的经济损失和社会损失是不可估量的。
技术实现思路
基于此,有必要提供一种提高软件缺陷预测准确性的软件缺陷 ...
【技术保护点】
一种软件缺陷预测方法,其特征在于,包括:对待预测软件的软件模块源代码进行静态度量,构建缺陷向量;将所述缺陷向量通过预设投影矩阵映射到几何空间中得到映射缺陷向量;所述预设投影矩阵为在训练获得经过训练的预测模型的过程中,使得样本向量集的样本缺陷子集之间的相对熵距离的几何均值最大的投影矩阵,所述样本缺陷子集包括有缺陷子集和无缺陷子集;将所述映射缺陷向量输入到所述经过训练的预测模型中,通过所述经过训练的预测模型,将所述映射缺陷向量与所述样本缺陷子集的马氏距离最小的样本缺陷子集所对应的类别,作为所述待预测软件对应的缺陷预测结果。
【技术特征摘要】
1.一种软件缺陷预测方法,其特征在于,包括:对待预测软件的软件模块源代码进行静态度量,构建缺陷向量;将所述缺陷向量通过预设投影矩阵映射到几何空间中得到映射缺陷向量;所述预设投影矩阵为在训练获得经过训练的预测模型的过程中,使得样本向量集的样本缺陷子集之间的相对熵距离的几何均值最大的投影矩阵,所述样本缺陷子集包括有缺陷子集和无缺陷子集;将所述映射缺陷向量输入到所述经过训练的预测模型中,通过所述经过训练的预测模型,将所述映射缺陷向量与所述样本缺陷子集的马氏距离最小的样本缺陷子集所对应的类别,作为所述待预测软件对应的缺陷预测结果。2.根据权利要求1所述的软件缺陷预测方法,其特征在于,所述将所述缺陷向量通过预设投影矩阵映射到几何空间中得到映射缺陷向量的步骤之前,还包括:对已知的样本软件的软件模块源代码进行静态度量,构成样本向量,各所述样本向量组成样本向量集;根据所述样本向量集的样本缺陷子集确定所述样本缺陷子集的协方差矩阵;根据所述样本缺陷子集的协方差矩阵,将所述样本缺陷子集之间的相对熵距离的几何均值最大的投影矩阵确定为所述预设投影矩阵。3.根据权利要求2所述的软件缺陷预测方法,其特征在于,所述将所述映射缺陷向量输入到所述经过训练的预测模型之前,还包括:将所述样本向量集通过所述预设投影矩阵映射到几何空间中,得到映射向量集;根据所述样本缺陷子集对应的所述映射向量集的映射缺陷子集确定映射后的所述样本缺陷子集的协方差矩阵;对映射后的所述样本缺陷子集的协方差矩阵进行特征分解,确定映射后的所述样本缺陷子集的协方差矩阵的特征值及特征向量;根据所述映射后的所述样本缺陷子集的协方差矩阵的特征值及特征向量对预测模型进行特征分解,得到所述经过训练的预测模型。4.根据权利要求3所述的软件缺陷预测方法,其特征在于,所述在经过训练的预测模型中所述映射缺陷向量与所述样本缺陷子集的马氏距离表示为:Dc(y,Σc)表示所述映射缺陷向量与所述样本缺陷子集的马氏距离;Λc=diag[λc1,...,λcd],其中,λcj,j=1,...,d是映射后的所述样本缺陷子集的协方差矩阵的特征值;其中,j=1,...,d是映射后的所述样本缺陷子集的协方差矩阵的特征向量;d为对所述软件模块源代码进行静态度量时的度量值的数量;为所述映射缺陷子集的均值;y为所述映射缺陷向量。5.根据权利要求1所述的软件缺陷预测方法,其特征在于,所述预设投影矩阵表示为:其中,W*为预设投影矩阵,C为所述样本向量集的所述样本缺陷子集的个数;DW(pc1||pc2)为在几何空间下的两个所述样本缺陷子集之间的相对熵距离;qc,表示为样本缺陷子集{xci}的先验概率,c为c1、c2、m或n,c1、c2、m、n的取值范围为1至C;α为权重因子。6.一种软件缺陷预测装置,其特征在于,包括:缺...
【专利技术属性】
技术研发人员:高岩,杨春晖,李冬,
申请(专利权)人:中国电子产品可靠性与环境试验研究所,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。