CN113656284A - 软件缺陷预测方法、装置、电子设备及存储介质 - Google Patents
软件缺陷预测方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113656284A CN113656284A CN202110842722.1A CN202110842722A CN113656284A CN 113656284 A CN113656284 A CN 113656284A CN 202110842722 A CN202110842722 A CN 202110842722A CN 113656284 A CN113656284 A CN 113656284A
- Authority
- CN
- China
- Prior art keywords
- model
- software
- defect
- defect prediction
- individual
- 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
- 230000007547 defect Effects 0.000 title claims abstract description 192
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000012549 training Methods 0.000 claims abstract description 90
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 49
- 238000005457 optimization Methods 0.000 claims abstract description 29
- 239000013598 vector Substances 0.000 claims description 159
- 238000005259 measurement Methods 0.000 claims description 33
- 238000012360 testing method Methods 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 18
- 238000000605 extraction Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 13
- 238000012163 sequencing technique Methods 0.000 claims description 13
- 238000007781 pre-processing Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 7
- 230000008030 elimination Effects 0.000 claims description 6
- 238000003379 elimination reaction Methods 0.000 claims description 6
- 239000013589 supplement Substances 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 7
- 230000002068 genetic effect Effects 0.000 description 5
- 238000013468 resource allocation Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 229910002056 binary alloy Inorganic materials 0.000 description 2
- 230000035772 mutation Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009469 supplementation Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 210000000349 chromosome Anatomy 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 210000004209 hair Anatomy 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
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/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- 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/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Artificial Intelligence (AREA)
- Genetics & Genomics (AREA)
- Physiology (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种软件缺陷预测方法、装置、电子设备及存储介质,通过提取已知缺陷信息的软件中的度量元特征和缺陷信息得到训练数据,然后利用线性模型作为基本模型,依据训练数据使用改进的MOEA/D算法对模型参数进行优化的训练,求得帕累托解集合后,得到一组缺陷预测模型,这里改进的MOEA/D算法引入了构建零参数的方式来对模型参数进行优化,从而实现模型性能的优化,基于优化后的模型,依据应用场景选取其中一个预测模型,对待测软件进行缺陷预测,得到下一版本的待测软件的缺陷信息,通过上述方法的实施能够更好地构造具有良好排序性能、较小预测误差、预测时间更短的软件缺陷预测模型,进一步扩大了模型的应用场景并提高对缺陷预测的精准度。
Description
技术领域
本发明涉及软件检测领域,尤其涉及一种软件缺陷预测方法、装置、电子设备及存储介质。
背景技术
随着各种新兴计算机技术的兴起,软件规模越来越大,软件的质量也越来越被重视,而软件缺陷是影响软件质量的重要因素,是导致相关***出错、失效的潜在根源,因此,如何及时发现并修正软件缺陷以提高软件的质量,已经成为软件开发生命周期中一个不可忽视的问题。
软件缺陷预测技术起始于上世纪七十年代,主要是利用机器学习技术,根据记录的历史数据和目前已知的缺陷等软件度量数据生成软件缺陷预测模型,通过软件缺陷模块来预测软件***未来可能存在的缺陷数目及其类型。为了提高对软件缺陷的精准预测,目前还提出了直接优化模型的排序性能或者采用多目标算法MOEAD对软件预测模型进行优化的方案,但是,无论是直接优化模型还是通过算法来优化模型,其都没有考虑到模型的复杂度,导致模型的预测误差还是比较大。
发明内容
本发明的主要目的在于提供了一种软件缺陷预测方法、装置、电子设备及存储介质,以解决现有技术中的软件缺陷预测方案对于新软件的缺陷预测精度较低、预测模型较为复杂的技术问题。
本发明第一方面提供了一种基于改进的MOEA/D算法的软件缺陷预测方法,所述软件缺陷预测方法包括:
获取待测软件的前一版本源代码文件,并从所述前一版本源代码文件中提取所述待测软件的所有软件模块的度量元特征以及对应的缺陷信息,生成训练数据;
利用中位数补充法和去重法,对所述训练数据进行预处理,得到模型训练数据;
根据所述模型训练数据,利用预设的线性模型和改进的MOEA/D算法对模型参数进行模型优化训练,求得帕累托解集合,并基于所述帕累托解集合构建缺陷预测模型,其中,所述帕累托解集合为构建模型的参数;
获取所述待测软件的后一版本源代码文件中的所有度量值;
依据应用场景选择对应的缺陷预测模型,将所有所述度量值输入至所述缺陷预测模型中进行缺陷预测,得到后一版本的待测软件的缺陷信息。
可选的,所述从所述前一版本源代码文件中提取所述待测软件的所有软件模块的度量元特征以及对应的缺陷信息,生成训练数据包括:
对所述前一版本源代码文件中的代码进行模块化处理,得到多个软件模块;
利用度量元特征提取工具,提取各软件模块的度量元特征及对应的缺陷信息,其中所述度量元特征至少包括以下特征中的一种:源代码度量、变更熵、源代码度量的变化、源代码度量的熵、过程度量和历史缺陷;
以模块为单位将各度量元特征进行组合并向量化,得到每个软件模块对应的度量元向量,并基于所述软件模块的缺陷信息得到训练数据。
可选的,所述根据所述模型训练数据,利用预设的线性模型和改进的MOEA/D算法对模型参数进行模型优化训练,求得帕累托解集合,并基于所述帕累托解集合构建缺陷预测模型包括:
根据所述待测软件的预测需求,确定构建模型的多个性能维度以及各性能维度之间的权重比例,其中所述性能维度包括排序性能、回归性能和模型复杂度;
利用所述改进的MOEA/D算法,使用所述模型训练数据对模型参数进行最优解求解,得到对应的帕累托解集合;
将所述帕累托解集合输入至预设的线性模型中,得到多个缺陷预测模型雏形;
可选的,所述利用所述改进的MOEA/D算法,使用所述模型训练数据对模型参数进行最优解求解,得到对应的帕累托解集合包括:
基于所述模型训练数据中的度量元特征和缺陷信息构建初始种群,其中,所述初始种群包括N个个体向量x1~xN,每个个体向量包括m个参数和初始化理想点向量z,所述z包括m个参数,每个参数为单目标问题理想值;
根据所述初始种群生成均匀分布的N个权重向量,并基于N个权重向量将多个单目标问题构建成N个标量优化子问题,N个个体向量一一对应于N个标量优化子问题的解;
计算N个权重向量中任意两个权重向量之间的欧几里得距离,基于所述欧几里得距离构建每个权重向量的邻居向量集合T;
从当前个体对应的权重向量的邻居向量集合中选择两个邻居个体的序号,根据所述序号从N个个体中选择出两个个体向量进行交叉和变异处理,生成第一新个体;
对所述第一新个体的属性进行随机置零,产生第二新个体;
根据新的个体向量更新所述初始化理想点向量和预设的非支配解集,得到一组所述模型参数对应的帕累托解集合。
可选的,在所述计算N个权重向量中任意两个权重向量之间的欧几里得距离,基于所述欧几里得距离构建每个权重向量的邻居向量集合T之后,还包括:
计算个体的m个目标函数的值,并将其与所述初始化理想点向量z中的值比较,若小于,则确定为满足更新所述初始化理想点向量的条件;
通过遍历邻居权重向量,遍历比较邻居个体集合与所述个体的标量子问题解的大小,若大于所述个体,则满足更新所述非支配解集的条件。
可选的,所述基于N个权重向量将多个单目标问题构建成N个标量优化子问题包括:
通过基于惩罚的边界交叉法(pbi),基于N个权重向量将多个单目标问题分解为多个标量优化的子问题,其中每一个子问题可以表示为:
mingpbi(x|λ,z*)=d1+θd2,
Subject tox∈Ω,
本发明第二方面提供了一种基于改进的MOEA/D算法的软件缺陷预测装置,所述软件缺陷预测装置包括:
提取模块,用于获取待测软件的前一版本源代码文件,并从所述前一版本源代码文件中提取所述待测软件的所有软件模块的度量元特征以及对应的缺陷信息,生成训练数据;
预处理模块,用于利用中位数补充法和去重法,对所述训练数据进行预处理,得到模型训练数据;
模型构建模块,用于根据所述模型训练数据,利用预设的线性模型和改进的MOEA/D算法对模型参数进行模型优化训练,求得帕累托解集合,并基于所述帕累托解集合构建缺陷预测模型,其中,所述帕累托解集合为构建模型的参数;
采集模块,用于获取所述待测软件的后一版本源代码文件中的所有度量值;
预测模块,用于依据应用场景选择对应的缺陷预测模型,将所有所述度量值输入至所述缺陷预测模型中进行缺陷预测,得到后一版本的待测软件的缺陷信息。
可选的,所述提取模块包括:
模块化单元,用于对所述前一版本源代码文件中的代码进行模块化处理,得到多个软件模块;
提取单元,用于利用度量元特征提取工具,提取各软件模块的度量元特征及对应的缺陷信息,其中所述度量元特征至少包括以下特征中的一种:源代码度量、变更熵、源代码度量的变化,源代码度量的熵、过程度量和历史缺陷;
向量化单元,用于以模块为单位将各度量元特征进行组合并向量化,得到每个软件模块对应的度量元向量,并基于所述软件模块的缺陷信息得到训练数据。
可选的,所述模型构建模块包括:
确定单元,用于根据所述待测软件的预测需求,确定构建模型的多个性能维度以及各性能维度之间的权重比例,其中所述性能维度包括排序性能、回归性能和模型复杂度;
求解单元,用于利用所述改进的MOEA/D算法,使用所述模型训练数据对模型参数进行最优解求解,得到对应的帕累托解集合;
训练单元,用于将所述帕累托解集合输入至预设的线性模型中,得到多个缺陷预测模型雏形;
可选的,所述求解单元具体用于:
基于所述模型训练数据中的度量元特征和缺陷信息构建初始种群,其中,所述初始种群包括N个个体向量x1~xN,每个个体向量包括m个参数和初始化理想点向量z,所述z包括m个参数,每个参数为单目标问题理想值;
根据所述初始种群生成均匀分布的N个权重向量,并基于N个权重向量将多个单目标问题构建成N个标量优化子问题,N个个体向量一一对应于N个标量优化子问题的解;
计算N个权重向量中任意两个权重向量之间的欧几里得距离,基于所述欧几里得距离构建每个权重向量的邻居向量集合T;
从当前个体对应的权重向量的邻居向量集合中选择两个邻居个体的序号,根据所述序号从N个个体中选择出两个个体向量进行交叉和变异处理,生成第一新个体;
对所述第一新个体的属性进行随机置零,产生第二新个体;
根据新的个体向量更新所述初始化理想点向量和预设的非支配解集,得到一组所述模型参数对应的帕累托解集合。
可选的,所述软件缺陷预测装置还包括扩展模块,其具体用于:
计算个体的m个目标函数的值,并将其与所述初始化理想点向量z中的值比较,若小于,则确定为满足更新所述初始化理想点向量的条件;
通过遍历邻居权重向量,遍历比较邻居个体集合与所述个体的标量子问题解的大小,若大于所述个体,则满足更新所述非支配解集的条件。
可选的,所述求解单元具体用于:
通过基于惩罚的边界交叉法(pbi),基于N个权重向量将多个单目标问题分解为多个标量优化的子问题,其中每一个子问题可以表示为:
mingpbi(x|λ,z*)=d1+θd2,
Subject tox∈Ω,
本发明第三方面提供了一种电子设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述第一方面提供的基于改进的MOEA/D算法的软件缺陷预测方法中的各个步骤。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面提供的基于改进的MOEA/D算法的软件缺陷预测方法中的各个步骤。
本发明的技术方案中,通过提取待测软件中的度量元特征和缺陷信息来构建模型训练数据,然后利用改进的MOEA/D算法和线性模型对模型进行模型参数优化训练,求得帕累托解集合后,构建缺陷预测模型,这里改进的MOEA/D算法引入了构建零参数的方式来对训练模型进行优化,从而实现模型性能的优化,基于优化后的模型,依据应用场景选取其中一个预测模型,对待测软件进行缺陷预测,得到下一版本的待测软件的缺陷信息,通过上述方法的实施能够更好地构造具有良好排序性能、较小预测误差的软件的缺陷预测模型,扩大了模型的应用场景和提高了对缺陷预测的精准度。
附图说明
图1为本发明提供的软件缺陷预测方法的第一个实施例示意图;
图2为本发明提供的软件缺陷预测方法的第二个实施例示意图;
图3为本发明提供的改进的MOEA/D算法的流程图;
图4为本发明提供的软件缺陷预测装置的一个实施例示意图;
图5为本发明提供的软件缺陷预测装置的另一个实施例示意图;
图6为本发明提供的电子设备的一个实施例示意图。
具体实施方式
针对于现有的软件缺陷预测方案对于新软件的缺陷预测精度较低的问题,提出了一种利用改进的MOEA/D算法构建模型来实现软件缺陷预测的方案,该方案包括输入训练数据,包括软件模块所有度量元的值以及相应软件模块的缺陷个数;对缺陷数据进行预处理(去除重复值,对缺失值进行填充或者删除);利用训练数据构造预测模型:使用改进的MOEA/D多目标优化算法同时优化模型的排序性能、回归性能以及模型复杂度,得到多组模型参数,然后根据实际需要给予三者不同的权重选择合适的模型参数;输入测试数据,即下一版本的软件模块度量元的值,利用训练得到的模型分析测试数据,即得到下一版本的软件模块的缺陷信息;根据模型预测结果分配测试资源。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1所示,本发明实施例中软件缺陷预测方法的第一个实施例包括:
101、获取待测软件的前一版本源代码文件,并从前一版本源代码文件中提取待测软件的所有软件模块的度量元特征以及对应的缺陷信息,生成训练数据;
在本实施例中,该待测软件可以是测试程序、测试工具等,也可以是应用程序、***等,而该待测软件优选选择至少存在两个版本及其以上的软件,根据开发人员的测试请求,首先获取该待测试软件的最新版本的源代码文件,记为后一版本源代码文件,以及获取相对于后一版本源代码文件的历史版本源代码文件,记为前一版本源代码文件,甚至还包括获取前一版本源代码文件在运行过程中产生的运行日志。
然后,从运行日志中提取软件运行时产生的报警信息,并根据报警信息确定对应的缺陷,从而得到缺陷信息,同时利用代码特征提取工具对前一版本源代码文件中的度量元特征进行提取,具体的实现过程为:
对所述前一版本源代码文件中的代码进行模块化处理,得到多个软件模块;
利用度量元特征提取工具,提取各软件模块的度量元特征及对应的缺陷信息,其中所述度量元特征至少包括以下特征中的一种:源代码度量、变更熵、源代码度量的变化、源代码度量的熵、过程度量和历史缺陷;
在实际应用中,度量元特征的提取是对源代码进行静态分析统计的过程,具体可以采用DependencyFinder,OOMeter等度量元特征提取工具对源代码进行特征的提取。
以模块为单位将各度量元特征进行组合并向量化,得到每个软件模块对应的度量元向量,并基于所述软件模块的缺陷信息得到训练数据。
在实际应用中,该前一版本源代码文件是已完成运行至少一个周期的历史版本,通过对该历史版本的代码提取到对应的训练数据,即是从已知缺陷信息的源代码文件中的各软件模块提取度量元特征和各软件模块相应的缺陷信息作为训练数据。提取度量元特征时可从以下部分方面提取:源代码度量,变更熵,源代码度量的变化,源代码度量的熵,过程度量,以往缺陷,等。每一个模块对应一个度量元向量,定义xi表示第i个模块的度量元向量,xi={xij|j=1,2,…,m},其中m是提取的度量元的总数。
102、利用中位数补充法和去重法,对训练数据进行预处理,得到模型训练数据;
该步骤中,该预处理可以理解为是对缺陷数据的去重和补充,具体的包括以下几个方面:
1、删除缺失数据;对于存在数据缺失的缺陷数据,直接删除,其中,对于判断数据是否缺失,具体可以通过预设的样本数据结构来进行判断。
2、对于缺失数据,通过填补的方式来补充完整,具体的采用中位数填补,即是计算出缺陷数据中的中位数,利用中位数中的信息对缺失数据进行填补;此外,除了中位数之外,还可以通过平均数来填补。
3、对不一致缺陷数据(即相同的度量元的值,不同的缺陷个数),如果存在其中一个样本的数量最多,则保留一个该样本,否则删除所有不一致样本。
103、根据模型训练数据,利用预设的线性模型和改进的MOEA/D算法对模型参数进行模型优化训练,求得帕累托解集合,并基于帕累托解集合构建缺陷预测模型;
该步骤中,所述帕累托解集合为构建模型的参数,具体是使用线性模型为使用改进后的MOEA/D算法求得模型参数,具体是通过计算出模型的排序性能、回归性能和模型复杂度来构建多个训练样本组,然后得到模型参数,从而构建缺陷预测模型,其实现步骤如下:
1、使用平均缺陷百分比(Fault-Percentile-Average,FPA)衡量模型的排序性能,均方误差(mean-square error,MSE)作为模型的回归性能度量,非零参数的个数作为模型复杂度的衡量指标;
2、使用基于分解的多目标进化法(Multi-Objective Evolutionary Algorithmbased on Decomposition,MOEA/D)同时优化模型的排序性能、回归性能以及模型复杂度,得到帕累托Pareto最优解的集合,即一组在排序性能、回归性能以及模型复杂度各有优势的模型参数;然后根据实际需要选择合适的模型参数ai(i=1…m)。
104、获取待测软件的后一版本源代码文件中的所有度量值;
在该步骤中,后一版本源代码文件可以理解为待测软件在前一版本源代码文件运行出现问题后,通过修复或补充后得到的升级版或者优化版的源代码文件,通过编译生成源代码后,对后一版本源代码进行度量元值的提取,这里的提取与前一版本源代码的提取方式相同,这里不再重复赘述。
105、依据应用场景选择对应的缺陷预测模型,将所有度量值输入至缺陷预测模型中进行缺陷预测,得到后一版本的待测软件的缺陷信息。
本实施例中,将从后一版本源代码文件中提取到的所有度量值依次输入至缺陷预测模型中进行缺陷的预测,输出对应的缺陷信息。在实际应用中,在将所有度量元值输入至模型之前,还可以将各个度量元值转换为向量,将所有的向量计算出总向量,将总向量输入至缺陷预测模型中进行缺陷分析,得到缺陷的预测信息,基于预测信息得到后一版本源代码文件在后续的运行中,可能出现的问题,从而提前进行测试资源的分配。
当然,对于上述的缺陷预测模型还可以是基于待测软件的完整源代码分离出来的软件模块的缺陷数据构建得到,这时则对待测软件进行预测时,还需要对待测软件的源代码进行分块,得到多个软件模块,然后提取每个模块对应的度量元值,并选择与软件模块相匹配的缺陷预测模型进行预测,这样分块化的预测,可以提高整个软件的预测精度,同时在预测时可以根据不同阶段的测试调整对应的资源分配。
本发明实施例中,取待测软件中的度量元特征和缺陷信息来构建模型训练数据,然后根据训练数据,利用改进的MOEA/D算法和线性模型对模型参数进行优化的训练,求得帕累托解集合后,构建缺陷预测模型,这里改进的MOEA/D算法为引入了构建零参数的方式来对训练数据进行优化,从而实现模型性能的优化,基于优化后的模型对待测软件进行缺陷预测。通过这样方式构建的模型进行缺陷的预测,不仅可以实现多场景的兼容,还提高最终的缺陷的预测精准度,极大地为后续的测试资源分配提供了参考,提高了测试的效率。
请参阅图2,本发明实施例中软件缺陷预测方法的第二个实施例包括:
201、获取待测软件的前一版本源代码文件,并从前一版本源代码文件中提取待测软件的所有软件模块的度量元特征以及各软件模块对应的缺陷信息,生成训练数据;
该步骤中,通过提取工具来对前一版本源代码文件进行模块化处理后,提取特征和缺陷,生成训练数据,具体的,对于提取度量元特征时,可以从以下几个方面进行提取:源代码度量,变更熵,源代码度量的变化,源代码度量的熵,过程度量,以往缺陷等。
在实际应用中,提取度量元特征时,是每一个模块对应一个度量元向量,定义xi表示第i个模块的度量元向量,xi={xij|j=1,2,…,m},其中m是提取的度量元的总数。度量元的提取是对源代码进行静态分析统计的过程,现在有很多提取度量元的工具,如:Dependency Finder,OOMeter等。
202、利用中位数补充法和去重法,对训练数据进行预处理,得到模型训练数据;
该步骤中,是对训练数据进行筛选和修正,以使得训练数据满足模型的样本要求,具体包括挑选中的缺失数据,并对缺失数据进行处理,例如删除和补全等,而补全,则通过计算样本的中位数或者平均数进行填补即可;然后识别重复的样本,对于重复的样本,具体是以度量元特征本身作为重复的识别条件,即是比对度量元特征本身是否相同,若是,则对相同的度量元特征的缺陷个数进行挑选,如果存在其中一个样本的数量最多,则保留一个该样本,否则删除所有不一致样本。
203、根据待测软件的预测需求,确定构建模型的多个性能维度以及各性能维度之间的权重比例;
该步骤中,所述性能维度包括排序性能、回归性能和模型复杂度;在实际应用中,对于软件的测试预测,会分为多个阶段,而不同阶段对于模型的性能要求会有不同的优势,因此,为了便于预测,这里根据不同阶段的需求确定对应的性能维度以及各性能维度的权重比例,以便于构建模型时的训练数据的划分。
204、利用改进的MOEA/D算法,使用模型训练数据对模型参数进行最优解求解,得到对应的帕累托解集合;
该步骤中,改进的MOEA/D算法是基于现有的多目标优化算法改进而成的算法,具体是在原有的算法基础上加入了随机构造含零“染色体”的个体的方法,从而实现对目标样本的最优化处理,以提高样本的精准度,具体实现参考图3中步骤S301-307,通过使用改进的MOEA/D算法对训练数据集进行最优解的求解,从而得到对应的模型参数,具体实现步骤包括:
基于所述模型训练数据中的度量元特征和缺陷信息构建初始种群,其中,所述初始种群包括N个个体向量x1~xN,每个个体向量包括m个参数和初始化理想点向量z,所述z包括m个参数,每个参数为单目标问题理想值;
根据所述初始种群生成均匀分布的N个权重向量,并基于N个权重向量将多个单目标问题构建成N个标量优化子问题,N个个体向量一一对应于N个标量优化子问题的解;
在本实施例中,在构建N个标量优化子问题时,具体是通过基于惩罚的边界交叉法(pbi),基于N个权重向量将多个单目标问题分解为多个标量优化的子问题,其中每一个子问题可以表示为:
mingpbi(x|λ,z*)=d1+θd2,
Subject to x∈Ω,
计算N个权重向量中任意两个权重向量之间的欧几里得距离,基于所述欧几里得距离构建每个权重向量的邻居向量集合T;
从当前个体对应的权重向量的邻居向量集合中选择两个邻居个体的序号,根据所述序号从N个个体中选择出两个个体向量进行交叉和变异处理,生成第一新个体;
对所述第一新个体的属性进行随机置零,产生第二新个体;
根据新的个体向量更新所述初始化理想点向量和预设的非支配解集,得到一组所述模型参数对应的帕累托解集合。
在实际应用中,每个第一新个体的置零概率扩展出含有m个随机数的随机向量,并将其与所述第一新个体对应的向量进行比较。
若比较的结果为存在所述新个体向量的参数小于所述随机向量的参数,则所述新个体向量将对应的参数置零,得到第二新个体;
根据第二新个体和或第一新个体更新所述初始化理想点向量和预设的非支配解集,得到一组所述模型参数对应的帕累托解集合。
在实际应用中,将训练数据集分别输入至改进的MOEA/D算法框架中,通过该算法进行初始种群的构建,输入之后,输出N个个体向量,每个个体向量包括m个参数和初始化理想点向量z,并基于N个个体向量生成均匀分布的N个权重向量λ1......λn,然后设置每一个权重向量的邻居个体集合T。
其中,构建初始化种群和邻居个体集合的过程为:
2.2,计算任意两个权重向量之间的欧几里得距离,查找每个权重向量的最近T个权重向量。对于i=1.....N,令B(i)={i1......in},λi1......λiT是γi最近的T个权重向量。
2.3,随机产生初始化种群X={x1......xN}。
2.4,初始化理想点向量z=(z1,z2.....zm)T。
进一步的,基于构建的初始化种群,还通过遗传方法对种群中的每个个体进行扩展,即是构建子代数据,其中,子代数据中包括构建零个体,基于子代数据迭代初始化种群,以得到训练数据集的最优解,而该迭代过程具体为:
3.1,复制,从B(i)中随机选择两个序号p,q,运用遗传算子模拟二进制交叉,以及多项式变异,通过xp和xq产生一个新的解y。
3.3,更新参考点Z;若zj<fj(y`),则zj=fj(y`),j=1,2....m。
3.4,更新相邻解;若gbi(y`|γj,z)<=gbi(xj|γj,z),j∈B(j),则xj=y`。并更新个体适应度。gbi表示使用的基于惩罚的边界交叉法。
3.4,更新EP;从EP中移除所有被F(y`)支配的向量。
通过上述的步骤进行子代的迭代,如果迭代后的数据集满足终止条件,则停止并输出EP,否则转步骤3.1继续迭代更新,其中终止条件可以为最优解的条件。
在本实施例中,在所述计算N个权重向量中任意两个权重向量之间的欧几里得距离,基于所述欧几里得距离构建每个权重向量的邻居个体集合之后,还包括:
从T个邻居向量中随机选择两个个体向量,利用遗传算子模拟二进制交叉法和多项式变异法生成一个后代个体;
判断所述后代个体是否满足更新理想点和非支配解集的条件;
若满足,则更新理想点z和非支配解集。
其中,所述遗传算子模拟二进制交叉法的计算公式为:
其中,β是由分布因子μ按照下面公式动态随机决定的:
μ是一个自定义的参数,它的值越大,则产生的后代个体越逼近父代个体。
其中β是有分布因子μ按照下面公式动态随机决定的:
μ是一个自定义的参数,它的值越大,则产生的后代个体越逼近父代个体。
进一步的,所述多项式变异法的计算公式为:
xi+1=xi+βi,
其中,随机数μ∈[0,1],θ是自定义的一个非负实数。
在本实施例中,对于上述利用遗传算子模拟二进制交叉法和多项式变异法生成的第一新个体实际上是员个体向量的后代,其具体实现为:
从当前个体对应的权重向量的邻居向量集合中选择两个邻居个体的序号,根据所述序号从N个个体中选择出两个个体向量进行交叉和变异处理,生成第一新个体,并将所述第二新个体与所述随机向量进行比较,生成一个后代个体,即是第一新个体;
然后,判断所述后代个体是否满足更新所述初始化理想点向量和所述非支配解集的条件;若满足,则更新所述初始化理想点向量和所述非支配解集。
而对于判断是否满足更新条件,具体的:
计算个体的m个目标函数的值,并将其与所述初始化理想点向量z中的值比较,若小于,则确定为满足更新所述初始化理想点向量的条件,即执行根据所述后代个体更新所述初始化理想点向量;
通过遍历邻居权重向量,遍历比较邻居个体集合与所述个体的标量子问题解的大小,若大于所述个体,则满足更新所述非支配解集的条件,即执行根据所述邻居个体集合更新所述非支配解集。
在实际应用中,从亲代个体xi产生子代个体xi+1的过程如下:
1)选择随机数μ∈[0,1];
2)计算βi的值,即
其中,θ是自定义的一个非负实数。
3)计算子代
xi+1=xi+βi。
205、将帕累托解集合输入至预设的线性模型中,得到多个缺陷预测模型雏形;
在本实施例中,对于训练得到多个缺陷预测模块雏形的过程中,具体还可以通过构建多个训练数据来实现,每个训练数据构建一个模型雏形,可选的根据多个性能维度,将模型训练数据划分为多组训练数据集;每个训练数据集中均包含排序性能、回归性能和模型复杂度三个维度的训练数据;在实际应用中,在划分模型训练数据时,其可以按照单个性能维度进行划分,也可以是按照多个性能维度组合进行划分,例如均需要同时包含排序性能、回归性能和模型复杂度三种指标时,根据实际情况,在划分训练数据集时,参考实际情况选择训练数据的百分比。
206、根据权重比例从多个缺陷预测模型雏形中选择一个缺陷预测模型雏形作为缺陷预测模型;
207、获取待测软件的后一版本源代码文件中的所有度量值;
208、将所有度量值输入至缺陷预测模型中进行缺陷预测,得到后一版本的待测软件的缺陷信息。
在实际应用中,后一版本的软件被开发后(单元测试前),收集后一版本版本以及后一版本之前的历史版本的各模块(可以以file、package、class、method等作为一个模块单位)的度量元相关信息(如代码长度、变化等),并且收集前面版本的缺陷信息(如发现的缺陷个数),然后使用本发明提出的方法,将前面版本的各模块的度量元相关信息以及缺陷信息作为输入,构造一系列模型,得到Pareto模型,这些模型在排序性能、回归性能以及模型复杂度上有不同的优劣势,将模型的三种性能归一化后,然后根据实际情况,给予三种性能不同权重获取其中一个模型,用于预测当前版本的各模块的缺陷个数,用于指导当前的测试资源分配。如某些模块被预测为含有缺陷较多,则主要测试这些模块,如果某些模块被预测为不含缺陷,而测试资源不够的情况,则直接跳过。模型的三种性能各有用处:模型的良好缺陷排序可以指导测试资源分配,也就是把更多资源分配给缺陷个数更多的模块测试上;模型的良好回归性能可以让测试人员更好地评估具体模块的缺陷个数;模型越稀疏,就可以越快地预测新版本的缺陷信息,可以让测试人员更容易关注缺陷和哪些因素相关,这样未来就可以尽量避免。因此,实际使用的时候,可以根据需要给予三种性能不同权值,选择模型。
本发明实施例中,通过本发明得到的模型的回归性能也存在一定的优势,并且,使用本发明的方法同时优化模型的排序性能、回归性能以及模型复杂度,得到一组模型后,可以根据不同的实际需求给予三者不同的权重选择合适的模型参数,如4×排序性能+2×回归性能+模型复杂度,这样得到的软件缺陷预测模型不但稀疏,而且具有较好的排序性能和回归性能。不仅可以实现多场景的兼容,还提高最终的缺陷的预测精准度,极大地为后续的测试资源分配提供了参考,提高了测试的效率。
上面对本发明实施例中软件缺陷预测方法进行了描述,下面对本发明实施例中软件缺陷预测装置进行描述,请参阅图4,本发明实施例中软件缺陷预测装置一个实施例包括:
提取模块401,用于获取待测软件的前一版本源代码文件,并从所述前一版本源代码文件中提取所述待测软件的所有软件模块的度量元特征以及对应的缺陷信息,生成训练数据;
预处理模块402,用于利用中位数补充法和去重法,对所述训练数据进行预处理,得到模型训练数据;
模型构建模块403,用于根据所述模型训练数据,利用预设的线性模型和改进的MOEA/D算法对模型参数进行模型优化训练,求得帕累托解集合,并基于所述帕累托解集合构建缺陷预测模型,其中,所述帕累托解集合为构建模型的参数;
采集模块404,用于获取所述待测软件的后一版本源代码文件中的所有度量值;
预测模块405,用于依据应用场景选择对应的缺陷预测模型,将所有所述度量值输入至所述缺陷预测模型中进行缺陷预测,得到后一版本的待测软件的缺陷信息。
本实施例提供的装置,通过上述的装置构建的模型进行缺陷的预测,不仅可以实现多场景的兼容,还提高最终的缺陷的预测精准度,极大地为后续的测试资源分配提供了参考,提高了测试的效率。
进一步地,请参阅图5,图5为软件缺陷预测装置各个模块的细化示意图.
在本实施例中,所述提取模块401包括:
模块化单元4011,用于对所述前一版本源代码文件中的代码进行模块化处理,得到多个软件模块;
提取单元4012,用于利用度量元特征提取工具,提取各软件模块的度量元特征及对应的缺陷信息,其中所述度量元特征至少包括以下特征中的一种:源代码度量、变更熵、源代码度量的变化、源代码度量的熵、过程度量和历史缺陷;
向量化单元4013,用于以模块为单位将各度量元特征进行组合并向量化,得到每个软件模块对应的度量元向量,并基于所述软件模块的缺陷信息得到训练数据。
在本实施例中,所述模型构建模块403包括:
确定单元4031,用于根据所述待测软件的预测需求,确定构建模型的多个性能维度以及各性能维度之间的权重比例,其中所述性能维度包括排序性能、回归性能和模型复杂度;
求解单元4032,用于利用所述改进的MOEA/D算法,使用所述模型训练数据对模型参数进行最优解求解,得到对应的帕累托解集合;
训练单元4033,用于将所述帕累托解集合输入至预设的线性模型中,得到多个缺陷预测模型雏形;
在本实施例中,所述求解单元具体4032用于:
基于所述模型训练数据中的度量元特征和缺陷信息构建初始种群,其中,所述初始种群包括N个个体向量x1~xN,每个个体向量包括m个参数和初始化理想点向量z,所述z包括m个参数,每个参数为单目标问题理想值;
根据所述初始种群生成均匀分布的N个权重向量,并基于N个权重向量将多个单目标问题构建成N个标量优化子问题,N个个体向量一一对应于N个标量优化子问题的解;
计算N个权重向量中任意两个权重向量之间的欧几里得距离,基于所述欧几里得距离构建每个权重向量的邻居向量集合T;
从当前个体对应的权重向量的邻居向量集合中选择两个邻居个体的序号,根据所述序号从N个个体中选择出两个个体向量进行交叉和变异处理,生成第一新个体;
对所述第一新个体的属性进行随机置零,产生第二新个体;
根据新的个体向量更新所述初始化理想点向量和预设的非支配解集,得到一组所述模型参数对应的帕累托解集合。
在本发明的一些实施例中,所述软件缺陷预测装置还包括扩展模块406,其具体用于:
计算个体的m个目标函数的值,并将其与所述初始化理想点向量z中的值比较,若小于,则确定为满足更新所述初始化理想点向量的条件。
通过遍历邻居权重向量,遍历比较邻居个体集合与所述个体的标量子问题解的大小,若大于所述个体,则满足更新所述非支配解集的条件。
在本发明的一些实施例中,所述求解单元4032具体用于:
通过基于惩罚的边界交叉法(pbi),基于N个权重向量将多个单目标问题分解为多个标量优化的子问题,其中每一个子问题可以表示为:
mingpbi(x|λ,z*)=d1+θd2,
Subject to x∈Ω,
本发明实施例中,通过上述装置的实施能够更好地构造具有良好排序性能、较小预测误差的软件的缺陷预测模型,提高了模型的应用场景和对缺陷预测的精准度。
上面图4和图5从模块化功能实体的角度对本发明实施例中的动物毛皮显微图像分类装置进行详细描述,下面从硬件处理的角度对本发明实施例中电子设备进行详细描述。
图6是本发明实施例提供了一种电子设备的结构示意图,该电子设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,CPU)610(例如,一个或一个以上处理器)和存储器620,一个或一个以上存储应用程序633或数据632的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器620和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对电子设备600中的一系列指令操作。更进一步地,处理器610可以设置为与存储介质630通信,在电子设备600上执行存储介质630中的一系列指令操作。在实际应用中,该应用程序633可以被分割成提取模块401、预处理模块402、模型构建模块403、采集模块404、预测模块405和扩展模块406(虚拟装置中的模块)的功能。
电子设备600还可以包括一个或一个以上电源640,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口660,和/或,一个或一个以上操作***631,例如:WindowsServe,MacOSX,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图6示出的电子设备结构还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令或计算机程序,当所述指令或计算机程序被运行时,使得计算机执行上述实施例提供的基于改进的MOEA/D算法的软件缺陷预测方法的各个步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***或装置、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-onlymemory,ROM)、随机存取存储器(randomaccessmemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于改进的MOEA/D算法的软件缺陷预测方法,其特征在于,所述软件缺陷预测方法包括:
获取待测软件的前一版本源代码文件,并从所述前一版本源代码文件中提取所述待测软件的所有软件模块的度量元特征以及对应的缺陷信息,生成训练数据;
利用中位数补充法和去重法,对所述训练数据进行预处理,得到模型训练数据;
根据所述模型训练数据,利用预设的线性模型和改进的MOEA/D算法对模型参数进行模型优化训练,求得帕累托解集合,并基于所述帕累托解集合构建缺陷预测模型,其中,所述帕累托解集合为构建模型的参数;
获取所述待测软件的后一版本源代码文件中的所有度量值;
依据应用场景选择对应的缺陷预测模型,将所有所述度量值输入至所述缺陷预测模型中进行缺陷预测,得到后一版本的待测软件的缺陷信息。
2.根据权利要求1所述的基于改进的MOEA/D算法的软件缺陷预测方法,其特征在于,所述从所述前一版本源代码文件中提取所述待测软件的所有软件模块的度量元特征以及对应的缺陷信息,生成训练数据包括:
对所述前一版本源代码文件中的代码进行模块化处理,得到多个软件模块;
利用度量元特征提取工具,提取各软件模块的度量元特征及对应的缺陷信息,其中所述度量元特征至少包括以下特征中的一种:源代码度量、变更熵、源代码度量的变化、源代码度量的熵、过程度量和历史缺陷;
以模块为单位将各度量元特征进行组合并向量化,得到每个软件模块对应的度量元向量,并基于所述软件模块的缺陷信息得到训练数据。
3.根据权利要求1或2所述的基于改进的MOEA/D算法的软件缺陷预测方法,其特征在于,所述根据所述模型训练数据,利用预设的线性模型和改进的MOEA/D算法对模型参数进行模型优化训练,求得帕累托解集合,并基于所述帕累托解集合构建缺陷预测模型包括:
根据所述待测软件的预测需求,确定构建模型的多个性能维度以及各性能维度之间的权重比例,其中所述性能维度包括排序性能、回归性能和模型复杂度;
利用所述改进的MOEA/D算法,使用所述模型训练数据对模型参数进行最优解求解,得到对应的帕累托解集合;
将所述帕累托解集合输入至预设的线性模型中,得到多个缺陷预测模型雏形;
4.根据权利要求3所述的基于改进的MOEA/D算法的软件缺陷预测方法,其特征在于,所述利用所述改进的MOEA/D算法,使用所述模型训练数据对模型参数进行最优解求解,得到对应的帕累托解集合包括:
基于所述模型训练数据中的度量元特征和缺陷信息构建初始种群,其中,所述初始种群包括N个个体向量x1~xN,每个个体向量包括m个参数和初始化理想点向量z,所述z包括m个参数,每个参数为单目标问题理想值;
根据所述初始种群生成均匀分布的N个权重向量,并基于N个权重向量将多个单目标问题构建成N个标量优化子问题,N个个体向量一一对应于N个标量优化子问题的解;
计算N个权重向量中任意两个权重向量之间的欧几里得距离,基于所述欧几里得距离构建每个权重向量的邻居向量集合T;
从当前个体对应的权重向量的邻居向量集合中选择两个邻居个体的序号,根据所述序号从N个个体中选择出两个个体向量进行交叉和变异处理,生成第一新个体;
对所述第一新个体的属性进行随机置零,产生第二新个体;
根据新的个体向量更新所述初始化理想点向量和预设的非支配解集,得到一组所述模型参数对应的帕累托解集合。
5.根据权利要求4所述的基于改进的MOEA/D算法的软件缺陷预测方法,其特征在于,在所述计算N个权重向量中任意两个权重向量之间的欧几里得距离,基于所述欧几里得距离构建每个权重向量的邻居向量集合T之后,还包括:
计算个体的m个目标函数的值,并将其与所述初始化理想点向量z中的值比较,若小于,则确定为满足更新所述初始化理想点向量的条件;
通过遍历邻居权重向量,遍历比较邻居个体集合与所述个体的标量子问题解的大小,若大于所述个体,则满足更新所述非支配解集的条件。
7.一种基于改进的MOEA/D算法的软件缺陷预测装置,其特征在于,所述软件缺陷预测装置包括:
提取模块,用于获取待测软件的前一版本源代码文件,并从所述前一版本源代码文件中提取所述待测软件的所有软件模块的度量元特征以及对应的缺陷信息,生成训练数据;
预处理模块,用于利用中位数补充法和去重法,对所述训练数据进行预处理,得到模型训练数据;
模型构建模块,用于根据所述模型训练数据,利用预设的线性模型和改进的MOEA/D算法对模型参数进行模型优化训练,求得帕累托解集合,并基于所述帕累托解集合构建缺陷预测模型,其中,所述帕累托解集合为构建模型的参数;
采集模块,用于获取所述待测软件的后一版本源代码文件中的所有度量值;
预测模块,用于依据应用场景选择对应的缺陷预测模型,将所有所述度量值输入至所述缺陷预测模型中进行缺陷预测,得到后一版本的待测软件的缺陷信息。
8.根据权利要求7所述的基于改进的MOEA/D算法的软件缺陷预测装置,其特征在于,所述软件缺陷预测装置还包括:扩展模块,其用于:
计算个体的m个目标函数的值,并将其与所述初始化理想点向量z中的值比较,若小于,则确定为满足更新所述初始化理想点向量的条件;
通过遍历邻居权重向量,遍历比较邻居个体集合与所述个体的标量子问题解的大小,若大于所述个体,则满足更新所述非支配解集的条件。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6中任一项所述的基于改进的MOEA/D算法的软件缺陷预测方法中的各个步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的基于改进的MOEA/D算法的软件缺陷预测方法中的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110842722.1A CN113656284A (zh) | 2021-07-26 | 2021-07-26 | 软件缺陷预测方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110842722.1A CN113656284A (zh) | 2021-07-26 | 2021-07-26 | 软件缺陷预测方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113656284A true CN113656284A (zh) | 2021-11-16 |
Family
ID=78490109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110842722.1A Pending CN113656284A (zh) | 2021-07-26 | 2021-07-26 | 软件缺陷预测方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113656284A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105243458A (zh) * | 2015-11-10 | 2016-01-13 | 河海大学 | 一种基于多目标混合蛙跳差分算法的水库调度方法 |
CN107516141A (zh) * | 2017-06-24 | 2017-12-26 | 燕山大学 | 一种基于支持向量机预测策略的动态多目标进化算法 |
CN108563555A (zh) * | 2018-01-10 | 2018-09-21 | 江苏工程职业技术学院 | 基于四目标优化的故障更改代码预测方法 |
CN109947652A (zh) * | 2019-03-26 | 2019-06-28 | 中山大学 | 一种软件缺陷预测的改进排序学习方法 |
CN110163414A (zh) * | 2019-04-18 | 2019-08-23 | 中南大学 | 一种基于分解的多目标状态转移优化方法及*** |
CN110399968A (zh) * | 2019-06-25 | 2019-11-01 | 电子科技大学 | 基于效用函数的***级测试性设计多目标优化方法 |
-
2021
- 2021-07-26 CN CN202110842722.1A patent/CN113656284A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105243458A (zh) * | 2015-11-10 | 2016-01-13 | 河海大学 | 一种基于多目标混合蛙跳差分算法的水库调度方法 |
CN107516141A (zh) * | 2017-06-24 | 2017-12-26 | 燕山大学 | 一种基于支持向量机预测策略的动态多目标进化算法 |
CN108563555A (zh) * | 2018-01-10 | 2018-09-21 | 江苏工程职业技术学院 | 基于四目标优化的故障更改代码预测方法 |
CN109947652A (zh) * | 2019-03-26 | 2019-06-28 | 中山大学 | 一种软件缺陷预测的改进排序学习方法 |
CN110163414A (zh) * | 2019-04-18 | 2019-08-23 | 中南大学 | 一种基于分解的多目标状态转移优化方法及*** |
CN110399968A (zh) * | 2019-06-25 | 2019-11-01 | 电子科技大学 | 基于效用函数的***级测试性设计多目标优化方法 |
Non-Patent Citations (10)
Title |
---|
QIAN XU等: "A Survey of Multiobjective Evolutionary Algorithms Based on Decomposition: Variants, Challenges and Future Directions" * |
QINGFU ZHANG等: "multiobjective evolutionary algorithm based on decomposition" * |
XIAOXING YANG等: "A Multi-Objective Learning Method for Building Sparse Defect Prediction Models" * |
彭伟强: "基于学习排序的即时软件缺陷预测方法研究" * |
杨晓杏: "基于度量元的软件缺陷预测技术" * |
白猛等: "混合分解的多目标粒子群优化算法" * |
赵雅卿: "改进的基于分解的多目标优化算法及其在阵列天线方向图优化中的应用" * |
郑伟: "基于MOEA/D的改进研究" * |
陈晓纪等: "混合个体选择机制的多目标进化算法" * |
马樱等: "偏相关方法在软件缺陷预测中的应用" * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Veličković et al. | The CLRS algorithmic reasoning benchmark | |
CN108563555B (zh) | 基于四目标优化的故障更改代码预测方法 | |
CN110084271B (zh) | 一种图片类别的识别方法和装置 | |
Wen et al. | An optimal algorithm for MoJo distance | |
CN107844414A (zh) | 一种基于缺陷报告分析的跨项目、并行化缺陷定位方法 | |
CN109637580A (zh) | 一种蛋白质氨基酸关联矩阵预测方法 | |
Nagwani et al. | Predicting expert developers for newly reported bugs using frequent terms similarities of bug attributes | |
CN117236278B (zh) | 一种基于数字孪生技术的芯片生产仿真方法及*** | |
CN116932384A (zh) | 一种基于特征融合和特征选择的软件缺陷预测方法 | |
CN112907026A (zh) | 一种基于可编辑网状指标体系的综合评估方法 | |
CN113990405A (zh) | 试剂化合物预测模型的构建方法、化学反应试剂自动预测补全的方法与装置 | |
CN115391561A (zh) | 图网络数据集的处理方法、装置、电子设备、程序及介质 | |
CN116450486A (zh) | 多元异构计算***内节点的建模方法、装置、设备及介质 | |
CN115629998A (zh) | 一种基于KMeans聚类和相似度的测试用例筛选方法 | |
CN111444635A (zh) | 一种基于xml语言的***动力学仿真建模方法及引擎 | |
CN111048145A (zh) | 蛋白质预测模型的生成方法、装置、设备和存储介质 | |
CN113656284A (zh) | 软件缺陷预测方法、装置、电子设备及存储介质 | |
CN115147020B (zh) | 装修数据处理方法、装置、设备及存储介质 | |
Akkouche et al. | Analog/RF test ordering in the early stages of production testing | |
CN113127342B (zh) | 基于电网信息***特征选择的缺陷预测方法及装置 | |
CN111026661B (zh) | 一种软件易用性全面测试方法及*** | |
CN115344386A (zh) | 基于排序学习的云仿真计算资源预测方法、装置和设备 | |
CN114328221A (zh) | 基于特征和实例迁移的跨项目软件缺陷预测方法及*** | |
JP2019003333A (ja) | バグ混入確率計算プログラム及びバグ混入確率計算方法 | |
Zhang et al. | Towards ML-based Performance Estimation of Embedded Software: A RISC-V Case Study |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211116 |
|
RJ01 | Rejection of invention patent application after publication |