CN112765034B - 基于神经网络的软件缺陷预测方法 - Google Patents
基于神经网络的软件缺陷预测方法 Download PDFInfo
- Publication number
- CN112765034B CN112765034B CN202110106091.7A CN202110106091A CN112765034B CN 112765034 B CN112765034 B CN 112765034B CN 202110106091 A CN202110106091 A CN 202110106091A CN 112765034 B CN112765034 B CN 112765034B
- Authority
- CN
- China
- Prior art keywords
- software
- neural network
- feature
- sample
- value
- 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.)
- Active
Links
- 230000007547 defect Effects 0.000 title claims abstract description 35
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 24
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000012549 training Methods 0.000 claims abstract description 10
- 238000003062 neural network model Methods 0.000 claims abstract description 8
- 238000005070 sampling Methods 0.000 claims abstract description 8
- 230000009467 reduction Effects 0.000 claims abstract description 6
- 238000012163 sequencing technique Methods 0.000 claims abstract description 4
- 238000004364 calculation method Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 6
- 230000002950 deficient Effects 0.000 claims description 5
- 238000010801 machine learning Methods 0.000 claims description 5
- 210000002569 neuron Anatomy 0.000 claims description 5
- 238000013135 deep learning Methods 0.000 claims description 4
- 238000013461 design Methods 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 238000012360 testing method Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 238000012795 verification 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Biophysics (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于神经网络的软件缺陷预测方法,包括:软件特征预处理:将被测软件特征维度划分为N等分,每一等分的数据都将服从正态分布N(μ,σ2);采样:首先计算每个被测软件样本在每个软件特征下的值的中位数,将每个软件特征的中位数作为该软件特征的阈值;对于每一个样本,将每个软件特征的值与对应的阈值进行比较,计算出被测软件样本大于阈值的特征个数,并进行从多到少的排序;然后按照排序进行采样,使缺陷数据占据一定比例;设置神经网络模型:利用反向传播算法,让目标值尽可能等于输入值,通过不停训练来调整神经网络参数,得到每一层神经网络的训练权值,以此达到特征降维的目的;本发明可显著提高软件缺陷发现效率。
Description
技术领域
本发明涉及软件测试技术领域,特别是一种基于神经网络的软件缺陷预测方法。
背景技术
软件缺陷是指软件产品在开发或维护过程中存在的错误等问题或对所需要实现的某种功能的失效或违背。随着软件规模与复杂度日益增长,软件开发过程中会不可避免地产生缺陷数据,并且缺陷可能出现在软件开发过程的任何阶段。软件技术发展至今,任何检验、验证手段都不可能发现并排除所有的缺陷,在软件项目的开发周期中,缺陷被发现得越晚,则修复缺陷的代价就越高。
统计表明,在软件代码复查阶段,发现及修复一个软件缺陷评价需要两分钟,在单元测试阶段则需要十到二十分钟,在集成测试阶段平均需要花费一个小时,而在系统测试阶段则需要耗费四十个小时,并且随着时间的推移,修复缺陷的代价几乎呈指数增长。
发明内容
为解决现有技术中存在的问题,本发明的目的是提供一种基于神经网络的软件缺陷预测方法,本发明可显著提高软件缺陷发现效率。
为实现上述目的,本发明采用的技术方案是:一种基于神经网络的软件缺陷预测方法,包括以下步骤:
步骤1、软件特征预处理:将被测软件特征维度划分为N等分,每一等分的数据都将服从正态分布N(μ,σ2);
步骤2、采样:首先计算每个被测软件样本在每个软件特征下的值的中位数,将每个软件特征的中位数作为该软件特征的阈值;对于每一个样本,将每个软件特征的值与对应的阈值进行比较,计算出被测软件样本大于阈值的特征个数,并进行从多到少的排序;然后按照排序进行采样,使缺陷数据占据一定比例;
步骤3、设置神经网络模型:利用反向传播算法,让目标值尽可能等于输入值,通过不停训练来调整神经网络参数,得到每一层神经网络的训练权值,以此达到特征降维的目的。
作为本发明的进一步改进,在步骤1中,所述的软件特征包括:代码行数、圈复杂度、基本复杂度、设计复杂度、操作符总数、代码行数、注释行数、空白行行数、分支数量、类的加权方法数、类的继承深度和类的响应数量。
作为本发明的进一步改进,在步骤3中,所述的神经网络模型为包括两个中间特征层的深度学习神经网络软件缺陷预测架构,且中间层神经元数量少于输入层神经元数量,在每一层计算中,输入预处理后的被测软件样本的特征值,按照如下编码函数进行计算:
其中,权重Rm*n是权重矩阵,m为中间层个数,n为样本数,b为偏置向量。
作为本发明的进一步改进,所述编码函数中的权重和偏置向量b通过目标函数不停输入样本数据进行机器学习,并动态调整/>和b的值,最终达到一个稳定的神经网络结构,在该神经网络中/>其中/>x为输入样本,/>为输出值。
作为本发明的进一步改进,还包括以下步骤:
在神经网络模型的最后增加分类器,再加上数据样本对应的标签,来决定被测软件样本是否有缺陷。
本发明的有益效果是:
本发明通过深度神经网络进行软件缺陷特征提取,减少特征纬度来剔除冗余信息,结合机器学习分类器的训练预测过程来建立一个软件缺陷预测的模型来自动化预测软件缺陷,可显著提高软件缺陷发现效率。
附图说明
图1为本发明实施例中深度学习神经网络软件缺陷预测架构的结构示意图。
具体实施方式
下面结合附图对本发明的实施例进行详细说明。
实施例
软件缺陷预测旨在软件开发初期准确预测出软件模块中的缺陷,以此来合理有效地分配有限的测试资源,提高软件质量。
软件特征是对软件数据的描述,也是软件缺陷预测中需要关注的软件数据信息,特征的提取是通过线性或非线性的方法,将高维数据映射到低维空间,以便于通过算法进行识别和判断。
深度神经网络是机器学习的一种模型,使用深度神经网络可以得到高维数据的压缩表示,从而实现对数据的降维。
本实施例的基于神经网络的软件缺陷预测方法具体步骤如下:
1、软件特征预处理:
本实施例将软件特征描述为:代码行数、圈复杂度、基本复杂度、设计复杂度、操作符总数、代码行数、注释行数、空白行行数、分支数量、类的加权方法数、类的继承深度、类的响应数量。
首先将被测软件特征维度划分为N等分,每一等分的数据都将服从正态分布N(μ,σ2)。
2、采样:
软件特征值越高,出现缺陷的概率越大。首先计算每个被测软件样本(后都简称为样本)在每个软件特征下的值的中位数,每个软件特征的中位数将作为该软件特征的阈值。例如,软件特征n1在所有样本中的值为{4,3,6,2,5,1,7},其中位数为4,将4作为软件特征n1的阈值。
对于每一个样本,将每个软件特征的值与对应的阈值进行比较,计算出该样本大于阈值的特征个数,并进行从多到少的排序。然后按照排序进行采样,使缺陷数据占据一定比例。
3、设置神经网络模型:
利用反向传播算法,让目标值尽可能等于输入值,通过不停训练来调整神经网络参数,得到每一层神经网络的训练权值,以此达到特征降维的目的。
如图1所示,本实施例提出的模型是一个包含两个中间特征层的深度学习神经网络软件缺陷预测架构。
图1中X1-X7····是样本,clean是标签,经过两层神经网络计算后,输出1(有缺陷)或者0(无缺陷)的概率值,概率值较大的为输出结果。
在每一层计算中,输入是预处理后的样本的特征值,按照编码函数进行计算。
其中Rm*n是权重矩阵,m为中间层个数,n为样本数,本模型中第一层m=4,第二层m=3。
b为偏置向量。
函数中的和b通过目标函数:/>不停输入样本数据进行机器学习,并动态调整/>和b的值,最终达到一个稳定的网络结构,在该网络中/>
其中x为输入样本,/>为输出值。
输出层尽可能复现了输出层的每个软件数据样本的特征值,则中间层的数据就可以作为输入的一种近似表示,这种表示就是特征,设置中间层神经元数量少于输入层,从而实现了对样本数据集的特征降维。
当训练完成后,可得到每一层中的和b(权重和偏移量),也就时深度神经网络的结构参数。然后在网络结构的最后增加分类器,再加上数据样本对应的标签,来决定样本是否有缺陷。
以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (3)
1.一种基于神经网络的软件缺陷预测方法,其特征在于,包括以下步骤:
步骤1、软件特征预处理:将被测软件特征维度划分为N等分,每一等分的数据都将服从正态分布N(μ,σ2);
步骤2、采样:首先计算每个被测软件样本在每个软件特征下的值的中位数,将每个软件特征的中位数作为该软件特征的阈值;对于每一个样本,将每个软件特征的值与对应的阈值进行比较,计算出被测软件样本大于阈值的特征个数,并进行从多到少的排序;然后按照排序进行采样,使缺陷数据占据一定比例;
步骤3、设置神经网络模型:利用反向传播算法,让目标值尽可能等于输入值,通过不停训练来调整神经网络参数,得到每一层神经网络的训练权值,以此达到特征降维的目的;
在步骤3中,所述的神经网络模型为包括两个中间特征层的深度学习神经网络软件缺陷预测架构,且中间层神经元数量少于输入层神经元数量,在每一层计算中,输入预处理后的被测软件样本的特征值,按照如下编码函数进行计算:
其中,权重Rm*n是权重矩阵,m为中间层个数,n为样本数,b为偏置向量;
所述编码函数中的权重和偏置向量b通过目标函数/>不停输入样本数据进行机器学习,并动态调整/>和b的值,最终达到一个稳定的神经网络结构,在该神经网络中/>其中/>x为输入样本,/>为输出值。
2.根据权利要求1所述的基于神经网络的软件缺陷预测方法,其特征在于,在步骤1中,所述的软件特征包括:代码行数、圈复杂度、基本复杂度、设计复杂度、操作符总数、代码行数、注释行数、空白行行数、分支数量、类的加权方法数、类的继承深度和类的响应数量。
3.根据权利要求1所述的基于神经网络的软件缺陷预测方法,其特征在于,还包括以下步骤:
在神经网络模型的最后增加分类器,再加上数据样本对应的标签,来决定被测软件样本是否有缺陷。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110106091.7A CN112765034B (zh) | 2021-01-26 | 2021-01-26 | 基于神经网络的软件缺陷预测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110106091.7A CN112765034B (zh) | 2021-01-26 | 2021-01-26 | 基于神经网络的软件缺陷预测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112765034A CN112765034A (zh) | 2021-05-07 |
CN112765034B true CN112765034B (zh) | 2023-11-24 |
Family
ID=75705869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110106091.7A Active CN112765034B (zh) | 2021-01-26 | 2021-01-26 | 基于神经网络的软件缺陷预测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112765034B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016033708A1 (en) * | 2014-09-03 | 2016-03-10 | Xiaoou Tang | Apparatus and methods for image data classification |
CN108459955A (zh) * | 2017-09-29 | 2018-08-28 | 重庆大学 | 基于深度自编码网络的软件缺陷预测方法 |
CN109446090A (zh) * | 2018-10-31 | 2019-03-08 | 南开大学 | 基于深度神经网络和概率决策森林的软件缺陷预测模型 |
CN111949535A (zh) * | 2020-08-13 | 2020-11-17 | 西安电子科技大学 | 基于开源社区知识的软件缺陷预测装置及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11467817B2 (en) * | 2019-01-28 | 2022-10-11 | Adobe Inc. | Software component defect prediction using classification models that generate hierarchical component classifications |
-
2021
- 2021-01-26 CN CN202110106091.7A patent/CN112765034B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016033708A1 (en) * | 2014-09-03 | 2016-03-10 | Xiaoou Tang | Apparatus and methods for image data classification |
CN108459955A (zh) * | 2017-09-29 | 2018-08-28 | 重庆大学 | 基于深度自编码网络的软件缺陷预测方法 |
CN109446090A (zh) * | 2018-10-31 | 2019-03-08 | 南开大学 | 基于深度神经网络和概率决策森林的软件缺陷预测模型 |
CN111949535A (zh) * | 2020-08-13 | 2020-11-17 | 西安电子科技大学 | 基于开源社区知识的软件缺陷预测装置及方法 |
Non-Patent Citations (2)
Title |
---|
基于BP神经网络软件测试缺陷预测技术研究及应用;费清春;严沁;史莹莹;;测控技术(01);全文 * |
基于深度自编码网络的软件缺陷预测方法;周末;徐玲;杨梦宁;廖胜平;鄢萌;;计算机工程与科学(10);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112765034A (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112149316B (zh) | 基于改进的cnn模型的航空发动机剩余寿命预测方法 | |
CN106895975B (zh) | 基于Stacked SAE深度神经网络的轴承故障诊断方法 | |
CN111914883B (zh) | 一种基于深度融合网络的主轴轴承状态评估方法及装置 | |
CN110333074B (zh) | 基于卷积神经网络的多测点传动机构故障诊断方法和系统 | |
CN110263934B (zh) | 一种人工智能数据标注方法和装置 | |
CN114295377B (zh) | 一种基于遗传算法的cnn-lstm轴承故障诊断方法 | |
CN110609229B (zh) | 一种基于深度学习的风力发电机叶片不平衡故障检测方法 | |
CN115082401B (zh) | 一种基于改进yolox与pnn的smt产线贴片机故障预测方法 | |
Bao et al. | A Deep Transfer Learning Network for Structural Condition Identification with Limited Real‐World Training Data | |
CN114548199A (zh) | 一种基于深度迁移网络的多传感器数据融合方法 | |
CN116562121A (zh) | 基于XGBoost和FocalLoss结合的电缆老化状态评估方法 | |
CN112085108A (zh) | 基于自动编码器及k均值聚类的光伏电站故障诊断算法 | |
CN113064976A (zh) | 基于深度学习算法的事故车判定方法 | |
CN104021180A (zh) | 一种组合式软件缺陷报告分类方法 | |
CN117726240A (zh) | 一种基于卷积神经网络的质量评价分类方法及系统 | |
CN115165366A (zh) | 一种旋转机械变工况故障诊断方法及系统 | |
CN115526258A (zh) | 基于Spearman相关系数特征提取的电力系统暂稳评估方法 | |
CN109921462B (zh) | 一种基于lstm的新能源消纳能力评估方法及系统 | |
CN117034143A (zh) | 一种基于机器学习的分布式系统故障诊断方法及装置 | |
CN114839492A (zh) | 一种基于mobilenetv3的gis局部放电类型识别方法及装置 | |
CN117056678B (zh) | 一种基于小样本的机泵设备运行故障诊断方法及装置 | |
CN114548154A (zh) | 一种重要厂用水泵智能诊断的方法及装置 | |
CN114358075A (zh) | 一种数据驱动的转子系统典型故障自动识别方法 | |
CN112765034B (zh) | 基于神经网络的软件缺陷预测方法 | |
CN112763215A (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 |