CN112765034B - 基于神经网络的软件缺陷预测方法 - Google Patents

基于神经网络的软件缺陷预测方法 Download PDF

Info

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
Application number
CN202110106091.7A
Other languages
English (en)
Other versions
CN112765034A (zh
Inventor
姚天问
张奔
赵铁生
钟敏
谢黛茜
郭海波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Aerospace System Engineering Research Institute
Original Assignee
Sichuan Aerospace System Engineering Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sichuan Aerospace System Engineering Research Institute filed Critical Sichuan Aerospace System Engineering Research Institute
Priority to CN202110106091.7A priority Critical patent/CN112765034B/zh
Publication of CN112765034A publication Critical patent/CN112765034A/zh
Application granted granted Critical
Publication of CN112765034B publication Critical patent/CN112765034B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, 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所述的基于神经网络的软件缺陷预测方法,其特征在于,还包括以下步骤:
在神经网络模型的最后增加分类器,再加上数据样本对应的标签,来决定被测软件样本是否有缺陷。
CN202110106091.7A 2021-01-26 2021-01-26 基于神经网络的软件缺陷预测方法 Active CN112765034B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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