CN114461535B - 面向并行变异算子的顽固变异体测试数据生成方法及系统 - Google Patents

面向并行变异算子的顽固变异体测试数据生成方法及系统 Download PDF

Info

Publication number
CN114461535B
CN114461535B CN202210388183.3A CN202210388183A CN114461535B CN 114461535 B CN114461535 B CN 114461535B CN 202210388183 A CN202210388183 A CN 202210388183A CN 114461535 B CN114461535 B CN 114461535B
Authority
CN
China
Prior art keywords
variant
variants
stubborn
test data
statement
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
CN202210388183.3A
Other languages
English (en)
Other versions
CN114461535A (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.)
Shandong Jianzhu University
Original Assignee
Shandong Jianzhu University
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 Shandong Jianzhu University filed Critical Shandong Jianzhu University
Priority to CN202210388183.3A priority Critical patent/CN114461535B/zh
Publication of CN114461535A publication Critical patent/CN114461535A/zh
Application granted granted Critical
Publication of CN114461535B publication Critical patent/CN114461535B/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
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Biology (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Physiology (AREA)
  • Genetics & Genomics (AREA)
  • Quality & Reliability (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及特定计算模型的计算机系统相关技术领域,提出了面向并行变异算子的顽固变异体测试数据生成方法及系统,方法包括如下步骤:确定变异体顽固性的评价指标,对待测试程序的变异体进行顽固性判定,得到顽固变异体;根据变异通信语句之间的占优关系,将得到的顽固变异体进行初次分组;按照变异语句与待测试程序的输入参量的相关性,将初次分组后的顽固变异体进行再分组;根据再分组后的顽固变异体构建测试数据生成模型,基于集合进化,设置与杀死变异体相关的适应值函数,求解测试数据生成模型,生成能够杀死顽固变异体的测试数据。本发明能够对并行变异算子引发的变异体顽固性进行判定,并生成杀死顽固变异体的测试数据,提高测试效率。

Description

面向并行变异算子的顽固变异体测试数据生成方法及系统
技术领域
本发明涉及特定计算模型的计算机系统相关技术领域,具体的说,是涉及面向并行变异算子的顽固变异体测试数据生成方法及系统。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,并不必然构成在先技术。
软件测试是提高软件质量的重要途径。为了对软件进行测试,通常需要准备一定数量的测试数据,称为测试数据集。测试数据集的充分性是提高软件测试可信度的关键前提。评价某测试数据集的充分性,往往通过对被测软件实施变异测试来实现。针对顽固变异体,生成杀死该变异体的测试数据更加困难。顽固变异体增加了变异测试的代价,是影响变异测试效率的重要因素。顽固变异体的有效判定和杀死顽固变异体测试数据的快速生成是提高变异测试效率的关键途径之一。
并行程序指每个流程拥有各自独立的存储器,程序执行过程中,流程之间的交互主要以消息传递的方式实现。通过多流程并行执行和相互通信,并行程序能够实现较高的求解速度和精度,已经广泛应用于科学研究和生产生活中,如天气预报、邮件过滤以及病毒分析等。针对并发程序的并行变异算子,可以揭示并发、通信以及交互等方面的缺陷。为了改进变异测试效率,研究该类变异算子的顽固变异测试理论和方法是十分有意义的。
发明人发现,已有方法的测试对象为传统变异算子,尚缺乏针对揭示并行与通信缺陷的并行变异算子引导的顽固变异体的研究,且传统变异算子相应的判定指标没有考虑并行变异算子对程序造成的影响,因此无法直接用来衡量并行变异算子的顽固性;由于并行程序不确定性,现有的测试数据生成算法中的变异体分组方法不能实现并行程序变异体的分组。
发明内容
本发明为了解决上述问题,提出了面向并行变异算子的顽固变异体测试数据生成方法及系统,能够对并行变异算子引发的变异体顽固性进行判定,并且有针对性的生成杀死顽固变异体的测试数据,降低测试代价,提高测试效率。
为了实现上述目的,本发明采用如下技术方案:
一个或多个实施例提供了面向并行变异算子的顽固变异体测试数据生成方法,包括如下步骤:
确定变异体顽固性的评价指标,对待测试程序的变异体进行顽固性判定,得到顽固变异体;
根据变异通信语句之间的占优关系,将得到的顽固变异体进行初次分组;
按照变异语句与待测试程序的输入参量的相关性,将初次分组后的顽固变异体进行再分组;
根据再分组后的顽固变异体构建测试数据生成模型,基于集合进化,设置与杀死变异体相关的适应值函数,求解测试数据生成模型,生成能够杀死顽固变异体的测试数据。
一个或多个实施例提供了面向并行变异算子的顽固变异体测试数据生成系统,包括:
顽固变异体判定模块:被配置为用于确定变异体顽固性的评价指标,对待测试程序的变异体进行顽固性判定,得到顽固变异体;
第一分组模块:被配置为用于根据变异通信语句之间的占优关系,将得到的顽固变异体进行初次分组;
第二分组模块:被配置为用于根据变异语句与待测试程序的输入参量的相关性,将初次分组后的顽固变异体进行再分组;
测试数据生成模块:被配置为用于根据再分组后的顽固变异体构建测试数据生成模型,基于集合进化,设置与杀死变异体相关的适应值函数,求解测试数据生成模型,生成能够杀死顽固变异体的测试数据。
与现有技术相比,本发明的有益效果为:
本发明给出了新的顽固变异体分组方法,基于变异语句之间的占优关系与输入参量的相关性将变异体进行两次分组,保证同组变异体覆盖相同的变异分支,并存在相同相关输入参量,筛选掉不相关输入变量,降低测试数据生成模型的求解难度,提高测试数据的生成效率。
本发明的优点以及附加方面的优点将在下面的具体实施例中进行详细说明。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的限定。
图1是本发明实施例1的方法流程图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。需要说明的是,在不冲突的情况下,本发明中的各个实施例及实施例中的特征可以相互组合。下面将结合附图对实施例进行详细描述。
技术术语解释:
并行变异算子:对程序并发语句实施变异所依据的规则叫做并行变异算子。
变异体:对原程序实施变异操作后得到的新的程序为变异体。
顽固变异体:在给定测试数据集中,只能被其中极少数的测试数据杀死的变异体为顽固变异体。
变异语句:被测软件程序的一个语句实施变异后生成变异语句,形成的新的程序就是变异体,即变异体内包含变异语句。
变异通信语句:是指对程序中的通信语句进行变异后得到的变异语句。
实施例1
在一个或多个实施方式公开的技术方案中,如图1所示,面向并行变异算子的顽固变异体测试数据生成方法,包括如下步骤:
步骤1、确定变异体顽固性的评价指标,对待测试程序的变异体进行顽固性判定,得到顽固变异体;
步骤2、根据变异通信语句之间的占优关系,将得到的顽固变异体进行初次分组;
步骤3、按照变异语句与待测试程序的输入参量的相关性,将初次分组后的顽固变异体进行再分组;
步骤4、根据再分组后的顽固变异体构建测试数据生成模型,基于集合进化,设置与杀死变异体相关的适应值函数,求解测试数据生成模型,生成能够杀死顽固变异体的测试数据。
所述测试数据生成模型,将变异体被杀死作为目标函数,并对每一组顽固变异体设置一个约束函数,求解后对应每一组顽固变异体生成测试数据。
进一步的技术方案,所述测试数据生成模型,将与每组顽固变异体A的变异语句相关的程序输入变量作为该组顽固变异体A的决策变量。
本实施例中,对应每一组顽固变异体生成测试数据,具体的是指:每一组顽固变异体都有对应的能够杀死该组顽固变异体的测试数据,即顽固变异体与测试数据是一组对一组的关系,针对每组顽固变异体都有对应的测试数据,针对性强可以提高测试数据的准确度。
本实施例给出了新的顽固变异体分组方法,基于变异语句之间的占优关系与输入参量的相关性将变异体进行两次分组,保证同组变异体覆盖相同的变异分支,变异分支即为变异语句所在的分支。并存在相同相关输入参量,筛选掉不相关输入变量,降低测试数据生成模型的求解难度,提高测试数据的生成效率。
在一些实施例中,步骤1中,确定的变异体顽固性的评价指标可以包括:变异语句的可达概率、变异语句的传播概率、变异语句与流程的相关性、变异语句与输入变量的相关性。
在强变异测试准则下,杀死变异体需要满足三个条件:可达性、必要性和充分性。也就是说,测试数据杀死变异体需要具备三步:(1)测试数据能够到达变异语句s;(2)使程序在s处的状态发生改变;(3)该变化导致程序输出不同。由上述条件可知,测试数据到达变异语句的概率越小,测试数据传播到输出的概率越小,杀死变异体的测试用例更难生成。此外,变异语句相关的流程数量和变异语句相关的输入变量数量也会影响变异体的顽固性。一般地,变异语句相关的流程数量越多,被检测出来的可能性越大,变异语句相关的输入数量越多,输入变量的范围越大,则被检测出来的可能性越小。
本实施例中将变异语句的可达概率,变异语句的传播概率,变异语句与流程的相关性,变异语句与输入变量的相关性作为顽固变异体的评价指标。
本实施例中,变异语句s中的所有变量以及数据依赖的变量,记为集合VMS。在VMS集合中,存在通信依赖的变量所在的流程为变异语句相关流程,记为PMS,集合PMS中的元素的数量为mr;变异语句各个相关流程的程序输入的并集为变异语句相关的输入,记为IVMS。
本实施例中,所述流程是指:分布存储的并行程序包含多个流程,多个流程同时执行,采用消息传递或者共享存储交互信息,多个流程共同为整个程序功能起作用。
评价指标的确定能够直接影响变异体顽固度的评价准确性,本实施例中创新性的提出了将变异语句的传播概率作为评价指标,并且改进了变异语句的可达概率的计算方法,下面对评价指标进行详细说明。
1.变异语句可达概率;
该指标反映变异语句的可达性;由于并行程序通信语句的存在,语句的执行不仅受变异语句所在流程执行轨迹的影响,还受其他流程执行轨迹的影响,因此,基于通信语句的类型,将变异语句的可达概率的计算分成两类。
其中,通信语句的类型主要包含:发送语句、接收语句和等待语句等许多语句类型。
本实施例中,根据不同通信语句类型对变异语句可达性的影响,提出新的变异通信语句可达概率的计算方法。
(1)若变异语句s为接收语句,s的可达概率为所在流程的可达概率与对应发送语句可达概率的乘积,可达概率
Figure 671300DEST_PATH_IMAGE001
如公式(1)所示:
Figure 657711DEST_PATH_IMAGE002
(1)
其中,
Figure 557534DEST_PATH_IMAGE003
s在所在流程的可达概率,
Figure 530169DEST_PATH_IMAGE004
为对应发送语句的可达概率。
(2)若变异语句为除接收语句之外的其他语句,变异语句s的可达概率需要考虑从开始流程到变异语句s,穿越变异语句s的所有路径的可达概率。可达概率
Figure 566258DEST_PATH_IMAGE005
如公式(2)所示:
Figure 192412DEST_PATH_IMAGE006
(2)
假设变异语句s的所在流程为
Figure 110689DEST_PATH_IMAGE007
,如果s是可达的,那么,从流程
Figure 214911DEST_PATH_IMAGE008
开始到s,至少存在一条可执行路径。s的可达性与路径上的条件语句密切相关。表1列出条件语句的执行概率,其中ab是变量,
Figure 528343DEST_PATH_IMAGE009
Figure 325398DEST_PATH_IMAGE010
是谓词,q是一个常数,本实施例中设定
Figure 465392DEST_PATH_IMAGE011
表1
Figure 638885DEST_PATH_IMAGE012
假设从流程开始语句到s,存在L条可执行路径。对于路径
Figure 649566DEST_PATH_IMAGE013
,包含的条件语句为
Figure 24047DEST_PATH_IMAGE014
Figure 120179DEST_PATH_IMAGE015
为条件语句的个数,这些条件语句执行的概率分别为:
Figure 97362DEST_PATH_IMAGE016
根据表1,路径
Figure 228129DEST_PATH_IMAGE017
的执行概率为:
Figure 22778DEST_PATH_IMAGE018
(3)
由式(3)可知,
Figure 606206DEST_PATH_IMAGE019
,且
Figure 387081DEST_PATH_IMAGE020
越小,通过
Figure 372354DEST_PATH_IMAGE017
路径越难到达s。综合L条到达s的可执行路径,穿越s所有路径的可达概率为:
Figure 682113DEST_PATH_IMAGE021
(4)
2.变异语句的传播概率;
该指标反映变异算子属性;与传统变异算子相比,并行变异算子生成的变异体除了影响所在流程的执行轨迹与输出结果,还会影响其他流程的执行轨迹与输出结果,因此,相较于传统变异体算子,针对并行变异算子,本实施例增加变异语句的传播概率作为变异体顽固性的判定,进一步提高了识别的准确性。
基于变异语句类型的不同,将变异语句的传播概率的计算方法分为两类。
(1)若变异语句为发送语句,构建变异语句所涉及的变量到程序输出语句的数据依赖路径,以及构建变异语句的接收语句涉及的变量到程序输出语句的数据依赖路径,该变异语句的传播概率为构建的两条路径执行的概率的最小值;
具体的,变异语句除了影响变异语句所在流程的输出结果,还会影响其他流程的输出结果。基于此,首先,构建变异语句所涉及的变量到程序输出语句的数据依赖路径,其次,构建变异语句的接收语句涉及的变量到程序输出语句的数据依赖路径。因此,该变异语句的传播概率为两条路径执行的概率的最小值,如公式(5)所示:
Figure 159362DEST_PATH_IMAGE022
(5)
其中,
Figure 212768DEST_PATH_IMAGE023
为变异语句的传播概率,
Figure 583707DEST_PATH_IMAGE024
为变异语句相对应的接收语句的传播概率。
变异语句所涉及的变量包括:变异语句s的所有变量以及存在数据依赖的变量。
数据依赖路径即为从变异语句节点开始,与变异语句中变量存在数据依赖的节点连接起来的路径。
(2)变异语句为除了发送语句的其他语句类型,如接收语句、等待语句等。
构建变异语句所涉及的变量到程序输出语句的数据依赖路径。该路径的可执行概率则为该变异语句的传播概率。
变异语句所涉及的变量包括:变异语句s中的所有变量以及存在数据依赖的变量。
3.变异语句与流程的相关性;
该指标反映变异语句相关的流程数。一般地,不同的变异语句,相关流程数量是不同的,相关流程越多,变异体被检测出来的可能性越大,因此将变异语句的相关流程PMS数量mr与待测程序中的流程总数的比值作为判断顽固变异体的指标。假设程序流程数量为m,执行路径
Figure 64367DEST_PATH_IMAGE025
,变异语句与流程的相关性pr为:
Figure 511135DEST_PATH_IMAGE026
(6)
穿越变异语句s所有路径的变异语句与流程相关性向量,即为每一个路径(路径1到路径L)的流程相关性的概率集合,如下:
Figure 368233DEST_PATH_IMAGE027
(7)
4.变异语句与输入变量的相关性;
IVMS越多,输入变量的范围越大,变异体被检测出来的可能性越小。因此,变异语句与输入变量的相关性将影响变异体的顽固性。假设在执行
Figure 62519DEST_PATH_IMAGE025
的情况下,IVMS的数目为Ivn,待测程序输入总数为tn,则变异语句与输入变量的相关性
Figure 245239DEST_PATH_IMAGE028
如公式(8)所示。
Figure 290555DEST_PATH_IMAGE029
(8)
考虑所有路径,变异语句与输入变量的相关性为:穿越变异语句s所有路径的变异语句与输入变量相关性向量,即每一个路径(路径1到路径L)的输入变量相关性的概率集合,如公式(9)所示。
Figure 92289DEST_PATH_IMAGE030
(9)
基于确定变异体顽固性的评价指标,对待测试程序的变异体进行顽固性判定,得到顽固变异体的方法,具体的:通过建立顽固性指标实现,在可达概率为1时,所述顽固性指标为不同执行路径下顽固性指标的最小值;可达概率为1即为该变异语句是可达的。
其中,每个执行路径下顽固性指标为:按照该路径执行时的各个评价指标按照设定的权重的加权和,当变异体的顽固性指标大于设定阈值时,则判定该变异体为顽固变异体。
在本实施例中,所述顽固性指标函数的值越大,变异体测试数据生成越难;预先设定一个阈值,所述顽固性指标的值大于设定的阈值,则认为变异体M是顽固的,归为顽固性变异体,具体方法如下:
变异语句s的可达性是变异体顽固性的前提条件,只有s可达,才有可能影响程序输出,若s是可达概率为1,则M顽固性则取决于其他三个指标。执行路径
Figure 641082DEST_PATH_IMAGE031
,若s必被执行,sub(path l )计算方式如(11);反之,采用公式(10)计算;M顽固性Sub(M)如公式(12)所示。
Figure 729124DEST_PATH_IMAGE032
(10)
Figure 527316DEST_PATH_IMAGE033
(11)
Figure 460637DEST_PATH_IMAGE034
(12)
其中,
Figure 785308DEST_PATH_IMAGE035
代表变异语句在
Figure 44251DEST_PATH_IMAGE017
下的可达概率,Q(s)代表变异语句的传播概率,
Figure 533001DEST_PATH_IMAGE036
代表变异语句与输入变量的相关性,
Figure 66750DEST_PATH_IMAGE037
代表变异语句与流程的相关性。
其中,
Figure 590136DEST_PATH_IMAGE038
Figure 160925DEST_PATH_IMAGE039
Q(s)的取值与M的顽固性成反比,M为变异体。在反映M被杀死的难易程度时,通过α、β、γ、κ、
Figure 402551DEST_PATH_IMAGE040
Figure 474412DEST_PATH_IMAGE041
体现不同评价指标分别有不同的重要程度,这些权值的设置是基于多次实验结果。首先,从变异体集合中随机抽取变异体,记为集合Z,执行Z中变异体,筛选出变异得分低的顽固变异体集合
Figure 852304DEST_PATH_IMAGE042
;然后,将权值分别赋予不同值,计算Z中变异体的Sub值,分别选出基于不同权值下的顽固变异体集合;最后,将多个顽固变异体集合分别与Z 1进行对比,从而选择顽固变异体集合差异最小的权值。
因此,
Figure 453049DEST_PATH_IMAGE043
,该值越大,则变异体测试数据的生成越难。基于一个预先设定的阈值fv,如果
Figure 73649DEST_PATH_IMAGE044
,则认为M是顽固的,可选的,在本实施例中fv取值为0.5。
步骤3中,为初分组的步骤,根据变异语句之间的占优关系将顽固变异体进行分组,具体如下:
由顽固变异体判定可知,当到达一定深度的分支,其父节点为顽固变异体,则子节点也是顽固变异体,顽固变异体之间存在占优的关系,如果测试数据覆盖父节点,则一定可以覆盖子节点。
被测程序为G,设程序输入向量为
Figure 418042DEST_PATH_IMAGE045
m是程序变量的数目。输入域D(x)是所有单个输入变量域的叉乘,即
Figure 447178DEST_PATH_IMAGE046
。对G中的一些语句,实施变异后得到变异语句M,所有变异体集合为:
Figure 953246DEST_PATH_IMAGE047
n是变异体的数目。
对于消息传递并行程序的两个分支
Figure 169464DEST_PATH_IMAGE048
Figure 458494DEST_PATH_IMAGE049
,当分支
Figure 810978DEST_PATH_IMAGE050
执行时,分支
Figure 19105DEST_PATH_IMAGE051
必然执行的发送节点执行顺序的个数与总发送节点执行顺序的个数的比值,为分支
Figure 457040DEST_PATH_IMAGE052
Figure 143236DEST_PATH_IMAGE053
的占优度,记为
Figure 6019DEST_PATH_IMAGE054
。基于所有的发送节点执行顺序,分支
Figure 119468DEST_PATH_IMAGE055
执行,
Figure 575857DEST_PATH_IMAGE056
一定执行,则;
Figure 800165DEST_PATH_IMAGE057
,基于所有的发送节点执行顺序,分支
Figure 127241DEST_PATH_IMAGE058
执行,
Figure 818117DEST_PATH_IMAGE059
一定不执行,则
Figure 965064DEST_PATH_IMAGE060
假设发送节点执行顺序的个数为t,有
Figure 524222DEST_PATH_IMAGE061
种发送节点执行顺序,分支
Figure 705804DEST_PATH_IMAGE062
执行,
Figure 315384DEST_PATH_IMAGE056
一定执行,则
Figure 215207DEST_PATH_IMAGE063
步骤2中,根据变异语句之间的占优关系将顽固变异体进行初次分组,具体的:
步骤21、将筛选出的顽固变异体根据顽固度从大到小进行排列;
步骤22、选择最顽固的变异体作为聚类中心;
步骤23、建立聚类中心与其他变异语句的占优度矩阵,选择占优度等于1的变异体作为簇成员;
其中,占优度等于1即为:
Figure 781317DEST_PATH_IMAGE064
循环执行步骤22-23,对未分组的顽固变异体进行分组,直到所有的顽固变异体分组完成。
步骤3中,待测试程序的输入参量包括程序输入变量、发送节点执行顺序。
按照变异语句与待测试程序的输入参数的相关性,将初次分组后的顽固变异体进行再分组为:每个初分组后的组内,在同一发送节点执行顺序下,将具有相同的相关程序输入变量的顽固变异体归为一组,具体如下:
变异语句与输入变量的相关性,即为:如果到达变异分支的每一个节点都与某输入变量无关,则判定该变异分支与该输入变量无关。如果到达变异分支的节点接收了来自其他流程的输入变量,则该变异分支与传递来的输入变量与有关。
不同的发送节点的执行顺序,接收的输入变量有所差异。因此,对于每一组中的每一个变异体,建立与发送节点执行顺序、输入变量的相关矩阵
Figure 348565DEST_PATH_IMAGE065
Figure 974718DEST_PATH_IMAGE066
Figure 502783DEST_PATH_IMAGE065
可知,
Figure 872584DEST_PATH_IMAGE067
的取值为0和1。如果变异分支
Figure 28759DEST_PATH_IMAGE068
与输入变量
Figure 356972DEST_PATH_IMAGE069
相关,则
Figure 965808DEST_PATH_IMAGE070
,反之,如果
Figure 529513DEST_PATH_IMAGE068
Figure 540195DEST_PATH_IMAGE069
不相关,则
Figure 508151DEST_PATH_IMAGE071
Figure 135441DEST_PATH_IMAGE072
为发送节点的执行顺序。
首先,分别考察
Figure 847045DEST_PATH_IMAGE065
Figure 384337DEST_PATH_IMAGE073
的第一行,若
Figure 523194DEST_PATH_IMAGE074
,则
Figure 372202DEST_PATH_IMAGE075
Figure 887496DEST_PATH_IMAGE076
为一组,直到所有
Figure 872770DEST_PATH_IMAGE065
Figure 339786DEST_PATH_IMAGE075
的第一行比较结束。然后,将剩下没有分组的变异体的第一行再进行互相比较,直到所有变异体比较结束,得到基于发送节点执行顺序
Figure 144931DEST_PATH_IMAGE077
的变异语句分组。对于数组的其他行的比较重复上述过程,直到得到所有基于所有发送节点执行顺序的变异分支分组。
经过上述分组,将所有的变异体分为
Figure 729496DEST_PATH_IMAGE078
组,记为
Figure 569276DEST_PATH_IMAGE079
,其中
Figure 49936DEST_PATH_IMAGE080
Figure 14481DEST_PATH_IMAGE081
Figure 605999DEST_PATH_IMAGE082
为组内变异体数目,设
Figure 97023DEST_PATH_IMAGE083
的相关输入为
Figure 748584DEST_PATH_IMAGE084
,其中
Figure 528322DEST_PATH_IMAGE085
,其中,
Figure 579323DEST_PATH_IMAGE086
Figure 393695DEST_PATH_IMAGE087
组的发送节点的执行顺序。
步骤4中,所述测试数据生成模型,将变异体被杀死作为目标函数,针对每一组顽固变异体设定一个约束函数,将与每组变异语句相关的程序输入变量作为每一组的决策变量,固定发送节点执行顺序,删除不相关的输入变量,可以缩小搜索空间。
步骤4中,根据分组后的顽固变异体,建立测试数据生成模型,具体如下:
根据上述分组,
Figure 747316DEST_PATH_IMAGE088
中所有的变异体具有相同的相关程序输入,且组中的变异体存在占优关系,即可以覆盖相同的变异分支,对应的变异分支的集合记为
Figure 14350DEST_PATH_IMAGE089
首先,针对第
Figure 619774DEST_PATH_IMAGE090
个变异分支组的变异体为
Figure 288653DEST_PATH_IMAGE091
,针对每组顽固变异体建立变异测试数据生成数学模型。当决策向量
Figure 282017DEST_PATH_IMAGE092
能杀死
Figure 567505DEST_PATH_IMAGE093
(对应的分支为
Figure 570096DEST_PATH_IMAGE094
),
Figure 247808DEST_PATH_IMAGE095
,令
Figure 412073DEST_PATH_IMAGE096
Figure 653699DEST_PATH_IMAGE097
的充要条件是
Figure 725560DEST_PATH_IMAGE098
可选的,根据输入变量
Figure 103452DEST_PATH_IMAGE092
和变异语句所在变异分支
Figure 110722DEST_PATH_IMAGE094
的层接近度和分支距离,建立相关输入变量
Figure 574065DEST_PATH_IMAGE099
覆盖变异语句所在变异分支
Figure 918458DEST_PATH_IMAGE094
需要满足的约束函数为:
假设
Figure 682015DEST_PATH_IMAGE100
是相关输入变量
Figure 453662DEST_PATH_IMAGE101
对于变异语句所在变异分支
Figure 60093DEST_PATH_IMAGE094
的层接近度,
Figure 942598DEST_PATH_IMAGE102
为分支距离,约束函数
Figure 295082DEST_PATH_IMAGE103
,如式(13)所示。
Figure 768788DEST_PATH_IMAGE104
(13)
由此可见,以
Figure 206723DEST_PATH_IMAGE105
为约束函数,变异测试数据生成问题的数学模型可以表示为:
Figure 299444DEST_PATH_IMAGE106
(14)
分为一组的顽固变异体作为一个顽固变异体集合,对于顽固变异体集合
Figure 506434DEST_PATH_IMAGE107
Figure 151042DEST_PATH_IMAGE108
为第
Figure 76273DEST_PATH_IMAGE107
个变异分组测试输入变量集合,令
Figure 300581DEST_PATH_IMAGE109
为反映测试输入集
Figure 784914DEST_PATH_IMAGE108
杀死
Figure 803686DEST_PATH_IMAGE107
中的变异体,
Figure 747371DEST_PATH_IMAGE110
取得最小值的充要条件是
Figure 775370DEST_PATH_IMAGE111
杀死
Figure 956953DEST_PATH_IMAGE107
中的变异体,即
Figure 818729DEST_PATH_IMAGE112
同时取得最小值。因为
Figure 452973DEST_PATH_IMAGE107
中所有的变异体具有相同的相关程序输入,且该分组中的变异体存在占优关系,因此覆盖的变异分支是相同的。基于此,集合
Figure 550242DEST_PATH_IMAGE107
的变异测试用例生成问题的数学模型可以表示为:
Figure 851910DEST_PATH_IMAGE113
(15)
最后,变异体已经分成
Figure 133856DEST_PATH_IMAGE078
个大组,那么,多变异体的测试数据生成问题,可以转化为
Figure 255396DEST_PATH_IMAGE078
个子问题,建立变异测试数据生成数学模型如下:
Figure 625197DEST_PATH_IMAGE114
(16)
本实施例中,针对每一组顽固变异体分别设定目标函数、约束函数和约束变量,建立测试数据生成模型,进而可以通过求解每一个模型,生成准确杀死变异体的测试数据。
步骤4中,基于集合进化求解测试数据生成模型,生成杀死顽固变异体组的测试数据,具体如下:
针对顽固变异体的测试数据数学模型,采用多种群遗传算法生成测试数据。为了指导个体的进化,选出最优个体,需要计算个体的适应值。
可选的,考虑本实施例模型的目标函数和约束函数,可以采用罚函数方法构造适应值函数
Figure 312530DEST_PATH_IMAGE115
Figure 109585DEST_PATH_IMAGE116
(17)
其中,c取很小的常数,以确保括号里的值大于0。当且仅当
Figure 124946DEST_PATH_IMAGE117
时,
Figure 32859DEST_PATH_IMAGE118
为杀死M的测试数据。
对于变异分支
Figure 574699DEST_PATH_IMAGE119
,因为决策变量是相关输入变量
Figure 542655DEST_PATH_IMAGE120
Figure 638787DEST_PATH_IMAGE121
为已知的。所以,进化个体编码只需要在相关输入变量部分,不需要在程序全部输入变量上实施。对于不相关的输入变量,在其输入域内随机的取一个固定值,在整个集合进化过程中,不相关的输入变量值保持不变。通过这种方式,种群的搜索域缩减了维度。
可选的,决策变量为
Figure 516437DEST_PATH_IMAGE122
Figure 381625DEST_PATH_IMAGE123
可以杀死
Figure 51640DEST_PATH_IMAGE124
的所有变异体,可以表示为:
Figure 635068DEST_PATH_IMAGE125
对上述函数
Figure 556888DEST_PATH_IMAGE126
进行归一化处理,之后的函数则为
Figure 276582DEST_PATH_IMAGE127
,作为
Figure 586341DEST_PATH_IMAGE123
的适应值函数则适应值函数,如下所示:
Figure 188224DEST_PATH_IMAGE128
(18)
遗传算法的遗传操作包括选择,交叉和变异。其中,选择是从当前种群中,使用适当的策略(例如,轮盘赌)来选择最优个体;通过对已有个体实施交叉和变异操作,产生新的个体,其中交叉包含集合内部的交叉与集合外部的交叉。直到生成杀死所有顽固变异体的测试数据或者到达最大迭代次数,算法终止。
本实施例中分组过程中将存在占优关系的顽固变异体作为一组,这样的分组好处为每一组中存在相同的覆盖分支,这样测试数据在计算约束函数的时候,仅需要算一次即可,降低了测试数据执行次数,提高了生成效率。
为说明本实施例方法的效果,采用具体的被测程序进行了实验。
选择程序Common_divisor作为被测程序,基于变异分析,评价所提方法的性能。
Common_divisor程序如下所示:
static void Common_divisor(int pro_id, int input[INPUT_NUM],intsequence[SEQUENCE-LENGTH])
{
int k = 0;
int a, b, c, d, buf[2];
if (pro_id == 0)
{
MPI_Send(input, 2, MPI_INT, 1, 1, MPI_COMM_WORLD);
MPI_Send(input + 2, 2, MPI_INT, 2, 1, MPI_COMM_WORLD);
MPI_Send(input + 4, 2, MPI_INT, 3, 1, MPI_COMM_WORLD);
MPI_Recv(&a, 1, MPI_INT, sequence[0], MPI_ANY_TAG, MPI_COMM_WORLD,MPI_STATUS_IGNORE);
MPI_Recv(&b, 1, MPI_INT, sequence[1], MPI_ANY_TAG, MPI_COMM_WORLD,MPI_STATUS_IGNORE);
MPI_Recv(&c, 1, MPI_INT, sequence[2], MPI_ANY_TAG, MPI_COMM_WORLD,MPI_STATUS_IGNORE);
buf[0] = a; buf[1] = b;
MPI_Send(buf, 2, MPI_INT, 4, 1, MPI_COMM_WORLD);
MPI_Recv(&d, 1, MPI_INT, 4, 2, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
if (c == d)
{
printf(c);
}
else if (c == 1 || d == 1)
{
c = 1;
printf(c);
}
else
{
while (c != d)
{
if (c < d)
{
d = d - c;
}
else
{
c = c - d;
}
}
printf(c);
}
}
if (pro_id == 1 || pro_id == 2 || pro_id == 3 || pro_id == 4)
{
MPI_Recv(buf, 2, MPI_INT, 0, 1, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
if (buf[0] == buf[1])
{
MPI_Send(&buf[0], 1, MPI_INT, 0, 2, MPI_COMM_WORLD);
}
else if (buf[0] == 1 || buf[1] == 1)
{
buf[0] = 1;
MPI_Send(&buf[0], 1, MPI_INT, 0, 2, MPI_COMM_WORLD); }
else
{
while (buf[0] != buf[1])
{
if (buf[0] <buf[1])
{
buf[1] = buf[1] - buf[0];
}
else {
buf[0] = buf[0] - buf[1];
}
}
MPI_Send(&buf[0], 1, MPI_INT, 0, 2, MPI_COMM_WORLD);
}
}
}
(1)验证本实施例顽固变异体的判定方法的有效性。
首先,将所有的通信语句实施变异;其次,根据顽固变异体的判定方法,得出顽固变异体的集合,计算顽固变异体的顽固性指标Sub(M)值;然后,采用生成满足语句覆盖的测试数据集,采用该数据集检测变异体实际被杀死的概率,最后,将Sub(M)值和实际被杀死的概率求均值,比较两者之间的关系。
表2描述了上述实验过程的实验结果,根据本实施例方法得出的顽固变异体集合,采用满足语句覆盖的数据集检测变异体实际被杀死的概率,其实际被杀死的概率低于30%,则证明了判定出来的变异体确实是顽固的,代表本实施例的方法有效。可见实验证明,本实施例的顽固变异体的判定方法是有效的。
表2
Figure 241630DEST_PATH_IMAGE129
(2)验证本实施例生成测试数据的有效性。
为了验证本实施例测试数据生成方法的优越性,设计一组对比方法,分别为本实施例的方法和传统方法,其中,实验次数为10,终止迭代次数是600代。通过比较两种方法生成杀死顽固变异体测试数据的迭代次数与时间消耗,验证本发明方法的有效性。表3显示了平均的迭代次数与时间消耗,表4显示了找到杀死顽固变异体的成功率。
表3
Figure 737203DEST_PATH_IMAGE130
表4
Figure 155546DEST_PATH_IMAGE131
与现有的方法相比较,本实施例的方法将变异体分为两组,采用集合进化的方法生成测试数据,减少了迭代次数和时间消耗;且现有方法每次只能生成杀死一个变异体的测试数据。且本实施例的方法生成杀死顽固变异体的测试数据的成功率高于传统的遗传算法。因此,本实施例的测试数据生成方法比传统的方法效率更高。
实施例2
基于实施例1,本实施例提供面向并行变异算子的顽固变异体测试数据生成系统,包括:
顽固变异体判定模块:被配置为用于确定变异体顽固性的评价指标,对待测试程序的变异体进行顽固性判定,得到顽固变异体;
第一分组模块:被配置为用于根据变异通信语句之间的占优关系,将得到的顽固变异体进行初次分组;
第二分组模块:被配置为用于按照变异语句与待测试程序的输入参量的相关性,将初次分组后的顽固变异体进行再分组;
测试数据生成模块:被配置为用于根据再分组后的顽固变异体构建测试数据生成模型,基于集合进化,设置与杀死变异体相关的适应值函数,求解测试数据生成模型,生成能够杀死顽固变异体的测试数据。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

Claims (8)

1.面向并行变异算子的顽固变异体测试数据生成方法,其特征在于,包括如下步骤:
确定变异体顽固性的评价指标,对待测试程序的变异体进行顽固性判定,得到顽固变异体;
根据变异通信语句之间的占优关系,将得到的顽固变异体进行初次分组;
按照变异语句与待测试程序的输入参量的相关性,将初次分组后的顽固变异体进行再分组;
根据再分组后的顽固变异体构建测试数据生成模型,基于集合进化,设置与杀死变异体相关的适应值函数,求解测试数据生成模型,生成能够杀死顽固变异体的测试数据;
根据变异语句之间的占优关系将顽固变异体进行初次分组,具体的:
步骤21、将筛选出的顽固变异体根据顽固度从大到小进行排列;
步骤22、选择最顽固的变异体作为聚类中心;
步骤23、建立聚类中心与其他变异语句的占优度矩阵,选择占优度等于1变异体作为簇成员;
循环执行步骤22-步骤23,直到所有的变异体分组完成;
按照变异语句与待测试程序的输入参数的相关性,将初次分组后的顽固变异体进行再分组为:每个初分组后的组内,在同一发送节点执行顺序下,将具有相同的相关程序输入变量的顽固变异体归为一组。
2.如权利要求1所述的面向并行变异算子的顽固变异体测试数据生成方法,其特征在于:所述测试数据生成模型,以顽固变异体被杀死作为目标函数,并针对每一组顽固变异体设置一个约束函数,将与每组顽固变异体的变异语句相关的程序输入变量作为该组顽固变异体的决策变量,求解后对应每一组顽固变异体生成测试数据。
3.如权利要求2所述的面向并行变异算子的顽固变异体测试数据生成方法,其特征在于:测试数据生成模型的约束函数,具体的:根据每组顽固变异体的相关输入变量和变异语句所在变异分支的层接近度,以及顽固变异体的相关输入变量和变异语句所在变异分支的分支距离,建立相关输入变量覆盖变异语句所在变异分支需要满足的约束函数。
4.如权利要求1所述的面向并行变异算子的顽固变异体测试数据生成方法,其特征在于:确定的变异体顽固性的评价指标包括:变异语句的可达概率,变异语句的传播概率,变异语句与流程的相关性,以及变异语句与输入变量的相关性。
5.如权利要求4所述的面向并行变异算子的顽固变异体测试数据生成方法,其特征在于:
变异语句可达概率的计算方法为:
若变异语句为接收语句,变异语句的可达概率为:变异语句所在流程的可达概率与相应的发送语句的可达概率的乘积;
若变异语句为除接收语句的其他语句类型,变异语句s的可达概率为:从开始流程到变异语句s,穿越变异语句s的所有路径的可达概率;
或者,变异语句的传播概率的计算方法为:
若变异语句为发送语句,构建变异语句所涉及的变量到程序输出语句的数据依赖路径,以及构建变异语句的接收语句涉及的变量到程序输出语句的数据依赖路径,该变异语句的传播概率为构建的两条路径执行的概率的最小值;
当变异语句为除了发送语句的其他语句类型,构建变异语句所涉及变异的变量到程序输出的函数依赖路径,该路径的可执行概率则为该变异语句的传播概率。
6.如权利要求1所述的面向并行变异算子的顽固变异体测试数据生成方法,其特征在于:对待测试程序的变异体进行顽固性判定的方法,具体的:通过建立顽固性指标实现,在变异语句是可达时,所述顽固性指标为不同执行路径下顽固性指标的最小值;当变异体的顽固性指标大于设定阈值时,则判定该变异体为顽固变异体;
每个执行路径下顽固性指标为:按照该路径执行时,各个变异体顽固性的评价指标按照设定的权重的加权和。
7.如权利要求1所述的面向并行变异算子的顽固变异体测试数据生成方法,其特征在于,求解测试数据生成模型,具体的:基于集合进化求解测试数据生成模型,生成杀死顽固变异体组的测试数据,求解过程中适应值函数采用罚函数。
8.面向并行变异算子的顽固变异体测试数据生成系统,其特征在于,包括:
顽固变异体判定模块:被配置为用于确定变异体顽固性的评价指标,对待测试程序的变异体进行顽固性判定,得到顽固变异体;
第一分组模块:被配置为用于根据变异通信语句之间的占优关系,将得到的顽固变异体进行初次分组;
第二分组模块:被配置为用于根据变异语句与待测试程序的输入参量的相关性,将初次分组后的顽固变异体进行再分组;
测试数据生成模块:被配置为用于根据再分组后的顽固变异体构建测试数据生成模型,基于集合进化,设置与杀死变异体相关的适应值函数,求解测试数据生成模型,生成能够杀死顽固变异体的测试数据;
根据变异语句之间的占优关系将顽固变异体进行初次分组,具体的:
步骤21、将筛选出的顽固变异体根据顽固度从大到小进行排列;
步骤22、选择最顽固的变异体作为聚类中心;
步骤23、建立聚类中心与其他变异语句的占优度矩阵,选择占优度等于1变异体作为簇成员;
循环执行步骤22-步骤23,直到所有的变异体分组完成;
按照变异语句与待测试程序的输入参数的相关性,将初次分组后的顽固变异体进行再分组为:每个初分组后的组内,在同一发送节点执行顺序下,将具有相同的相关程序输入变量的顽固变异体归为一组。
CN202210388183.3A 2022-04-14 2022-04-14 面向并行变异算子的顽固变异体测试数据生成方法及系统 Active CN114461535B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210388183.3A CN114461535B (zh) 2022-04-14 2022-04-14 面向并行变异算子的顽固变异体测试数据生成方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210388183.3A CN114461535B (zh) 2022-04-14 2022-04-14 面向并行变异算子的顽固变异体测试数据生成方法及系统

Publications (2)

Publication Number Publication Date
CN114461535A CN114461535A (zh) 2022-05-10
CN114461535B true CN114461535B (zh) 2022-07-12

Family

ID=81418667

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210388183.3A Active CN114461535B (zh) 2022-04-14 2022-04-14 面向并行变异算子的顽固变异体测试数据生成方法及系统

Country Status (1)

Country Link
CN (1) CN114461535B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2407903A1 (en) * 2002-07-29 2004-01-29 Kirk Vandezande Systems for determining optimal test order for disease diagnosis
CN105473741A (zh) * 2013-06-21 2016-04-06 塞昆纳姆股份有限公司 用于遗传变异的非侵入性评估的方法和过程
CN108334949A (zh) * 2018-02-11 2018-07-27 浙江工业大学 一种优化深度卷积神经网络结构的快速进化方法
WO2020023671A1 (en) * 2018-07-24 2020-01-30 Protocol Intelligence, Inc. Methods and systems for treating cancer and predicting and optimizing treatment outcomes in individual cancer patients
CN111352830A (zh) * 2020-01-06 2020-06-30 中国矿业大学 基于语句占优关系的变异测试数据进化生成方法
CN113590474A (zh) * 2021-07-12 2021-11-02 山东建筑大学 一种并行程序顽固变异体的判定方法及系统
CN114202609A (zh) * 2021-12-16 2022-03-18 重庆大学 一种混合启发式图着色方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112732583B (zh) * 2020-08-03 2022-02-18 徐州工程学院 一种基于聚类和多种群遗传算法的软件测试数据生成方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2407903A1 (en) * 2002-07-29 2004-01-29 Kirk Vandezande Systems for determining optimal test order for disease diagnosis
CN105473741A (zh) * 2013-06-21 2016-04-06 塞昆纳姆股份有限公司 用于遗传变异的非侵入性评估的方法和过程
CN108334949A (zh) * 2018-02-11 2018-07-27 浙江工业大学 一种优化深度卷积神经网络结构的快速进化方法
WO2020023671A1 (en) * 2018-07-24 2020-01-30 Protocol Intelligence, Inc. Methods and systems for treating cancer and predicting and optimizing treatment outcomes in individual cancer patients
CN111352830A (zh) * 2020-01-06 2020-06-30 中国矿业大学 基于语句占优关系的变异测试数据进化生成方法
CN113590474A (zh) * 2021-07-12 2021-11-02 山东建筑大学 一种并行程序顽固变异体的判定方法及系统
CN114202609A (zh) * 2021-12-16 2022-03-18 重庆大学 一种混合启发式图着色方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Enhancement of Mutation Testing via Fuzzy Clustering and Multi-population Genetic Algorithm;Xiangying Dang;《IEEE Transactions on Software Engineering》;20210119;全文 *
FinFuzzer: One Step Further in Fuzzing Fintech Systems;Qingshun Wang;《2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE)》;20220120;全文 *
基于Markov模型的Web服务软件测试用例生成;申等;《电脑知识与技术》;20181005(第28期);全文 *
基于统计分析的弱变异测试可执行路径生成;党向盈;《计算机学报》;20161130;全文 *
基于语句重要度的变异测试对象选择方法;巩敦卫;《电子学报》;20170630;全文 *

Also Published As

Publication number Publication date
CN114461535A (zh) 2022-05-10

Similar Documents

Publication Publication Date Title
CN110008710B (zh) 基于深度强化学习和程序路径插桩的漏洞检测方法
Cai et al. NuMVC: An efficient local search algorithm for minimum vertex cover
Keerativuttitumrong et al. Multi-objective co-operative co-evolutionary genetic algorithm
CN112926990A (zh) 欺诈识别的方法和装置
Abu‐Lebdeh et al. Convergence variability and population sizing in micro‐genetic algorithms
CN114840857B (zh) 基于深度强化学习与多级覆盖策略的智能合约模糊测试方法及系统
CN110533221A (zh) 基于生成式对抗网络的多目标优化方法
CN111352830B (zh) 基于语句占优关系的变异测试数据进化生成方法
CN117896263B (zh) 基于邻域拓扑与投票机制的复杂网络关键节点识别方法
CN114461535B (zh) 面向并行变异算子的顽固变异体测试数据生成方法及系统
CN112270957B (zh) 高阶snp致病组合数据检测方法、系统、计算机设备
Hong et al. Improving performance insensitivity of large-scale multiobjective optimization via monte carlo tree search
Hendel Empirical analysis of solving phases in mixed integer programming
CN117892209A (zh) 一种基于支持向量机和进化计算的过采样方法
CN109840916B (zh) 高频地波雷达舰船目标跟踪算法的测评方法
CN111813669A (zh) 基于多目标群体智能的适应性随机测试用例生成方法
Bara’a et al. A new evolutionary multi-objective community mining algorithm for signed networks
CN113472515B (zh) 一种用于检验用户防御侧信道攻击能力的方法
CN115062759A (zh) 一种基于改进型长短记忆神经网络的故障诊断方法
Abadi et al. A comprehensive soft security model for Cognitive Internet of Things
CN108764570A (zh) 一种基于蚁群算法与Lin-Kernighan算法解决旅行商问题的杂交算法
Kuviatkovski et al. Evaluating machine learning algorithms in representing decision makers in search-based PLA
CN113642226A (zh) 基于多目标进化算法的公平机器学习模型的训练方法
Ji et al. A multiagent evolutionary method for detecting communities in complex networks
Alyasiri et al. Applying Cartesian Genetic Programming to Evolve Rules for Intrusion Detection System.

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