CN111881048A - 一种跨项目软件老化缺陷预测方法 - Google Patents

一种跨项目软件老化缺陷预测方法 Download PDF

Info

Publication number
CN111881048A
CN111881048A CN202010758279.5A CN202010758279A CN111881048A CN 111881048 A CN111881048 A CN 111881048A CN 202010758279 A CN202010758279 A CN 202010758279A CN 111881048 A CN111881048 A CN 111881048A
Authority
CN
China
Prior art keywords
data
project
adopting
cross
software aging
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.)
Granted
Application number
CN202010758279.5A
Other languages
English (en)
Other versions
CN111881048B (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.)
Wuhan University of Technology WUT
Original Assignee
Wuhan University of Technology WUT
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 Wuhan University of Technology WUT filed Critical Wuhan University of Technology WUT
Priority to CN202010758279.5A priority Critical patent/CN111881048B/zh
Publication of CN111881048A publication Critical patent/CN111881048A/zh
Application granted granted Critical
Publication of CN111881048B publication Critical patent/CN111881048B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种跨项目软件老化预测方法,首先对源项目和目标项目中的数据进行预处理,之后采用联合分布域适应减小边缘分布和条件分布差异,然后采用欠采样法和改进的子类判别分析法缓解类不平衡问题,最后使用机器学习分类器(逻辑回归等)进行预测。本发明考虑了软件老化缺陷数据集源项目和目标项目间的条件分布差异,并进一步采用改进的子类判别分析法等缓解极其严重的类不平衡问题。它解决了传统跨项目软件老化缺陷预测方法精度以及健壮性不高的问题,有助于开发者在开发测试阶段发现软件老化相关缺陷并移除,避免软件老化问题带来的损失。本发明已在真实软件上验证过其可行性,并可推广至其他软件来预测软件老化相关缺陷。

Description

一种跨项目软件老化缺陷预测方法
技术领域
本发明属于软件处理技术领域,具体涉及一种跨项目软件老化缺陷预测方法。
背景技术
在长期运行的操作系统中,软件老化是造成系统性能下降或软件崩溃的主要原因。其由软件老化相关缺陷(Aging-Related Bugs,ARB)引起,如内存泄漏,未释放的文件锁,存储问题等。且其已被发现存在于多种系统中,如Android、Linux、Windows等。软件老化的复杂性和时间特性导致其检测十分困难。故在开发测试阶段(代码层次)预测并移除软件老化相关缺陷是降低软件老化所带来损失的重要方式之一。
近年来,老化缺陷预测逐步受到可靠性领域学者的重视。部分学者通过使用代码静态特征(如代码行数,注释数等)并利用机器学习等方法来训练模型进行项目内老化缺陷预测,然而由于老化缺陷占比较少,如Linux老化缺陷数据集中老化缺陷仅占比0.59%,对我们来说在项目内收集到足够的训练数据进行建模是非常困难的。
针对训练数据不充足这个问题,部分学者提出了跨项目软件老化缺陷预测。通过利用其它项目的相关数据来进行目标项目模型的训练。其中,近期提出的主要方法是通过迁移学习来减少分布差异,并进一步处理类不平衡问题来进行跨项目老化缺陷预测。然而,传统的方法中仅考虑了边缘分布的差异,未考虑条件分布的差异性,降低了迁移效果。且仅用过采样法处理类不平衡问题,极易导致过拟合,对不同的机器学习分类器不够健壮,即预测效果差异较大。
发明内容:
为了克服上述背景技术的缺陷,本发明提供一种跨项目软件老化缺陷预测方法。
为了解决上述技术问题本发明的所采用的技术方案为:
一种跨项目软件老化缺陷预测方法,包括:
步骤1,对源项目和目标项目数据进行预处理,生成第一数据;
步骤2,对第一数据采用联合分布域适应方法(JDA)来减小分布差异,生成第二数据;
步骤3,对所述第二数据采用改进的子类判别分析(ISDA)和欠采样法(RUS)进行类不平衡问题处理,同时进行分类特征学习,生成第三数据;
步骤4,针对所述第三数据,采用机器学习方法训练预测模型并在目标项目上进行老化缺陷预测。
其中,在对源项目和目标项目数据进行预处理的步骤中,采用z-score数据标准化方法,将源项目和目标项目数据中每一个样本的特征值减去训练集特征的均值后除以训练集特征度量的方差,得到第一数据。
其中,对第一数据采用联合分布域适应方法来减小分布差异的步骤中,采用联合分布域适应方法同时减小第一数据边缘分布和条件分布的差异。
其中,在对所述第二数据采用改进的子类判别分析(ISDA)和欠采样法(RUS)进行类不平衡问题处理的步骤中,针对第二数据,首先采用改进的子类判别分析法对数据集进行处理,即将第二数据的数据集分别映射至子类空间中,采用k-means聚类方法进行映射,以寻找使得子类间距离最大化和类内距离最小化的映射向量V,来学习具有更强分类能力的特征;然后,对源数据集采用欠采样法进一步缓解类不平衡问题。
其中,在采用机器学习方法训练预测模型并在目标项目上进行老化缺陷预测的步骤中,采用机器学习方法为逻辑回归或朴素贝叶斯;其中分类器最佳参数的选择采用十折交叉验证法确定。
本发明的有益效果在于:针对老化缺陷数据量较少的问题,提出了一种新的跨项目老化缺陷预测方法。它解决了传统跨项目软件老化缺陷预测方法中未考虑条件分布差异以及采用的过采样法极易造成过拟合问题,具有较强的鲁棒性,综合提升了跨项目老化缺陷的预测精度,能够避免因软件老化造成的损失。
附图说明
图1为本发明实施例的跨项目老化缺陷预测方法流程框图。
具体实施方式
下面结合附图和实施例对本发明做进一步的说明。
如图1本发明实施例的跨项目老化缺陷预测流程框图所示,首先对源项目和目标项目进行数据预处理,之后采用联合分布域适应(JDA)减小两个项目间的边缘分布和条件分布差异。根据老化数据集的特点采用改进的子类判别分析法,并进一步在源项目上采用欠采样法(RUS)进行处理。最终使用机器学习分类器对目标项目进行分类,输出预测结果。
下面结合实例对本发明进行详细的描述,本实施例的一种新的跨项目软件老化预测方法的具体步骤包括:
步骤1,对源项目和目标项目的数据进行数据预处理。
数据预处理主要指的是数据的标准化。该方法常用于给定所有的特征以相同的权重,它已经被广泛应用在软件缺陷预测当中。在本步骤中我们采用z-score标准化方法。首先给定源项目有标签的数据集
Figure BDA0002612315890000041
以及目标项目无标签的数据集
Figure BDA0002612315890000042
其中ns和nt分别代表源项目和目标项目的样本数。我们将样本i的每一个特征值xij按照公式(1)进行标准化。
Figure BDA0002612315890000043
其中meantest(x.j)代表目标项目(测试集)的第j个特征的均值,stdtest(x.j)代表了目标项目(测试集)第j个特征的方差。
步骤2,利用联合分布域适应(JDA)减小数据分布差异。
本步骤中我们的目标是减小源项目Ds和目标项目Dt之间的距离,距离公式为
Dist(Ds,Dt)≈||P(xs)-P(xt)||+||P(ys|xs)-P(yt|xt)|| (2)
最大均值差异(MMD)用来表示这种距离。我们的目标是寻找变换A使得变换后的边缘分布P(ATxs)接近P(ATxt),条件分布P(ys|ATxs)接近P(yt|ATxt)。
其中,边缘分布差异的计算公式如下:
Figure BDA0002612315890000044
X代表源项目特征矩阵Xs和目标项目特征矩阵Xt之间的结合。L是MMD矩阵,计算公式如下:
Figure BDA0002612315890000045
边缘分布差异可以由如下公式计算:
Figure BDA0002612315890000046
其中c代表类,MMD矩阵Lc计算公式如下:
Figure BDA0002612315890000051
我们将公式(3)和公式(5)相结合代入公式(2)中,得到:
Figure BDA0002612315890000052
s.t.ATXHXTA=I (8)
其中
Figure BDA0002612315890000053
代表正则项,H代表中心矩阵,I代表单位矩阵。通过使用拉普拉斯方法,我们最终得到特征分解公式:
Figure BDA0002612315890000054
其中,φ代表拉普拉斯内核。计算得到变换A。
步骤3,利用改进的子类判别分析法(ISDA)学习更加强有力的分类特征,更进一步在源项目上采用欠采样法(RUS)缓解类不平衡。
软件老化缺陷预测所面临的类不平衡问题十分严重,比如常用于老化缺陷预测的Linux数据集,老化缺陷仅占比0.59%。故我们需要对类不平衡问题进行处理。在本步骤中首先采用改进的子类判别分析法对数据进行处理,本方法的目标是最小化类内距离并最大化类间距离,从而学习更加强有力的分类特征。
以上实例为简单老化检测分析,本发明适用于内存相关的软件老化检测,并能够快速、健壮的检测软件老化的存在性。其中类间散度矩阵的计算公式如下:
Figure BDA0002612315890000055
协方差矩阵计算公式如下:
Figure BDA0002612315890000061
目标函数为:
Figure BDA0002612315890000062
其中xi代表第i个样本,公式(11)中的μ代表所有样本的均值。在公式(10)中,C代表类的数目,Li代表类i中子类的个数,n是样本数,pij=nij/n代表了类i中第j个子类的占比,μij代表了类i中第j个子类的样本均值。我们的最终目的是学习公式(12)中的目标映射向量V。其中含老化缺陷类的子类个数设置为1,不含老化缺陷的子类个数设置为n2/n1,n1和n2分别代表含老化缺陷和无老化缺陷的样本个数。子类聚类算法采用k-means算法。更进一步,对源项目采用欠采样法(RUS),即缩减含多数样本的类中样本个数。结合上述内容对类不平衡问题进行处理。
步骤四,采用机器学习方法对目标项目进行预测。
在本步骤中,采用机器学习算法对目标项目进行预测,如朴素贝叶斯(NB),逻辑回归(LR),K-近邻(KNN),决策树(DT),随机森林(RF),支持向量机(SVM)等。分类器参数通过十折交叉验证确定。六种不同的机器学习分类器均取得较佳效果,其中使用LR作为分类器时取得最佳效果。
以上为简单的跨项目老化缺陷预测方案分析,本发明适用于跨项目老化缺陷预测,并且能够健壮的、精确的检测老化相关缺陷。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (5)

1.一种跨项目软件老化缺陷预测方法,其特征在于,包括:
步骤1,对源项目和目标项目数据进行预处理,生成第一数据;
步骤2,对第一数据采用联合分布域适应方法(JDA)来减小分布差异,生成第二数据;
步骤3,对所述第二数据采用改进的子类判别分析(ISDA)和欠采样法(RUS)进行类不平衡问题处理,同时进行分类特征学习,生成第三数据;
步骤4,针对所述第三数据,采用机器学习方法训练预测模型并在目标项目上进行老化缺陷预测。
2.根据权利要求1所述一种跨项目软件老化缺陷预测方法,其特征在于:在对源项目和目标项目数据进行预处理的步骤中,采用z-score数据标准化方法,将源项目和目标项目数据中每一个样本的特征值减去训练集特征的均值后除以训练集特征度量的方差,得到第一数据。
3.根据权利要求1所述一种跨项目软件老化缺陷预测方法,其特征在于:对第一数据采用联合分布域适应方法来减小分布差异的步骤中,采用联合分布域适应方法同时减小第一数据边缘分布和条件分布的差异。
4.根据权利要求1所述一种跨项目软件老化缺陷预测方法,其特征在于:在对所述第二数据采用改进的子类判别分析(ISDA)和欠采样法(RUS)进行类不平衡问题处理的步骤中,针对第二数据,首先采用改进的子类判别分析法对数据集进行处理,即将第二数据的数据集分别映射至子类空间中,采用k-means聚类方法进行映射,以寻找使得子类间距离最大化和类内距离最小化的映射向量V,来学习具有更强分类能力的特征;然后,对源数据集采用欠采样法进一步缓解类不平衡问题。
5.根据权利要求1所述一种跨项目软件老化缺陷预测方法,其特征在于:在采用机器学习方法训练预测模型并在目标项目上进行老化缺陷预测的步骤中,采用机器学习方法为逻辑回归或朴素贝叶斯;其中分类器最佳参数的选择采用十折交叉验证法确定。
CN202010758279.5A 2020-07-31 2020-07-31 一种跨项目软件老化缺陷预测方法 Active CN111881048B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010758279.5A CN111881048B (zh) 2020-07-31 2020-07-31 一种跨项目软件老化缺陷预测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010758279.5A CN111881048B (zh) 2020-07-31 2020-07-31 一种跨项目软件老化缺陷预测方法

Publications (2)

Publication Number Publication Date
CN111881048A true CN111881048A (zh) 2020-11-03
CN111881048B CN111881048B (zh) 2022-06-03

Family

ID=73204731

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010758279.5A Active CN111881048B (zh) 2020-07-31 2020-07-31 一种跨项目软件老化缺陷预测方法

Country Status (1)

Country Link
CN (1) CN111881048B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527670A (zh) * 2020-12-18 2021-03-19 武汉理工大学 一种基于Active Learning的项目内软件老化缺陷预测方法
CN115858209A (zh) * 2022-11-17 2023-03-28 北京航空航天大学 基于信息保留协同优化的异构跨项目软件缺陷预测方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108304316A (zh) * 2017-12-25 2018-07-20 浙江工业大学 一种基于协同迁移的软件缺陷预测方法
CN108446711A (zh) * 2018-02-01 2018-08-24 南京邮电大学 一种基于迁移学习的软件缺陷预测方法
CN109993229A (zh) * 2019-04-02 2019-07-09 广东石油化工学院 一种严重不平衡数据分类方法
CN110008584A (zh) * 2019-04-02 2019-07-12 广东石油化工学院 一种基于GitHub的半监督异构软件缺陷预测算法
CN110825644A (zh) * 2019-11-11 2020-02-21 南京邮电大学 一种跨项目软件缺陷预测方法及其系统
CN111459838A (zh) * 2020-04-20 2020-07-28 武汉大学 一种基于流形对齐的软件缺陷预测方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108304316A (zh) * 2017-12-25 2018-07-20 浙江工业大学 一种基于协同迁移的软件缺陷预测方法
CN108446711A (zh) * 2018-02-01 2018-08-24 南京邮电大学 一种基于迁移学习的软件缺陷预测方法
CN109993229A (zh) * 2019-04-02 2019-07-09 广东石油化工学院 一种严重不平衡数据分类方法
CN110008584A (zh) * 2019-04-02 2019-07-12 广东石油化工学院 一种基于GitHub的半监督异构软件缺陷预测算法
CN110825644A (zh) * 2019-11-11 2020-02-21 南京邮电大学 一种跨项目软件缺陷预测方法及其系统
CN111459838A (zh) * 2020-04-20 2020-07-28 武汉大学 一种基于流形对齐的软件缺陷预测方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ZLBRYANT: "迁移学习二——JDA", 《HTTPS://BLOG.CSDN.NET/QQ_40824311/ARTICLE/DETAILS/102731202》 *
娄丰鹏等: "增加度量元的迁移学习跨项目软件缺陷预测", 《计算机技术与发展》 *
陈曙等: "一种基于领域适配的跨项目软件缺陷预测方法", 《软件学报》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527670A (zh) * 2020-12-18 2021-03-19 武汉理工大学 一种基于Active Learning的项目内软件老化缺陷预测方法
CN115858209A (zh) * 2022-11-17 2023-03-28 北京航空航天大学 基于信息保留协同优化的异构跨项目软件缺陷预测方法

Also Published As

Publication number Publication date
CN111881048B (zh) 2022-06-03

Similar Documents

Publication Publication Date Title
Hu et al. A survey on online feature selection with streaming features
US9471886B2 (en) Class discriminative feature transformation
US20220067531A1 (en) Efficient identification of critical faults in neuromorphic hardware of a neural network
Zweig et al. Hierarchical regularization cascade for joint learning
CN111881048B (zh) 一种跨项目软件老化缺陷预测方法
CN110880007A (zh) 一种机器学习算法自动选择方法和系统
He et al. Novel discriminant locality preserving projection integrated with Monte Carlo sampling for fault diagnosis
CN112906767A (zh) 一种基于隐空间学习和流行约束的无监督特征选择方法
CN112463640B (zh) 一种基于联合概率域适应的跨项目软件老化缺陷预测方法
Artola et al. Glad: A global-to-local anomaly detector
US20230110719A1 (en) Systems and methods for few-shot protein fitness prediction with generative models
CN109902731B (zh) 一种基于支持向量机的性能故障的检测方法及装置
CN117671704B (zh) 一种手写体数字识别方法、装置及计算机存储介质
Nguyen et al. Robust product classification with instance-dependent noise
CN118135265A (zh) 目标分类方法、装置、设备及存储介质
Li et al. Effective vehicle logo recognition in real-world application using mapreduce based convolutional neural networks with a pre-training strategy
CN114818845A (zh) 一种噪声稳健的高分辨距离像特征选择方法
Hu et al. A novel quality prediction method based on feature selection considering high dimensional product quality data.
Cumani et al. Exact memory–constrained UPGMA for large scale speaker clustering
CN113724060A (zh) 一种信用风险评估方法及系统
Bao Image classification under class-imbalanced situation
Hua et al. Bayesian weighted Dynamic Distribution of Samples-based Remote Sensing Feature Selection Method
Guo et al. The study of image feature extraction and classification
Kumar et al. Image classification in python using Keras
Roffo et al. Object tracking via dynamic feature selection processes

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