CN111240995B - 结合关键点概率与路径相似度的多路径覆盖方法及系统 - Google Patents

结合关键点概率与路径相似度的多路径覆盖方法及系统 Download PDF

Info

Publication number
CN111240995B
CN111240995B CN202010069239.XA CN202010069239A CN111240995B CN 111240995 B CN111240995 B CN 111240995B CN 202010069239 A CN202010069239 A CN 202010069239A CN 111240995 B CN111240995 B CN 111240995B
Authority
CN
China
Prior art keywords
path
coverage
target
paths
probability
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
CN202010069239.XA
Other languages
English (en)
Other versions
CN111240995A (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.)
Jiangxi University of Finance and Economics
Original Assignee
Jiangxi University of Finance and Economics
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 Jiangxi University of Finance and Economics filed Critical Jiangxi University of Finance and Economics
Priority to CN202010069239.XA priority Critical patent/CN111240995B/zh
Publication of CN111240995A publication Critical patent/CN111240995A/zh
Application granted granted Critical
Publication of CN111240995B publication Critical patent/CN111240995B/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/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

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

Abstract

本发明公开了一种结合关键点概率与路径相似度的多路径覆盖方法及系统。首先,将理论路径划分成易覆盖、难覆盖及不可达路径。其次,通过易覆盖路径统计关键点概率,依此概率计算个体对生成测试数据的贡献度,并利用贡献度改进适应度函数,同时根据关键点概率对目标路径进行排序。最后,使用多种群遗传算法生成覆盖目标路径的测试数据,在进化过程中子种群覆盖当前目标路径后,继续尝试覆盖此目标路径的相似路径。根据关键点概率设计适应度函数,保护优秀个体,同时进一步完善个体信息共享策略,既合理利用种群进化过程中的个体资源,又避免在子种群进化过程中浪费过多的时间,从而有效地提高了测试数据进化生成的效率。

Description

结合关键点概率与路径相似度的多路径覆盖方法及系统
技术领域
本发明涉及软件测试系统技术领域,具体涉及一种基于结合关键点概率与路径相似度的多路径覆盖方法及系统。
背景技术
在软件开发过程中,软件测试可看成是对软件需求分析、设计规格说明和编码等的复审,是保证软件质量的重要阶段。可见,软件测试在软件开发的整个生命周期中都起着关键性的作用。而在软件测试过程中,被测程序能够进行测试的先决条件,就是要有合适的测试数据,因此,测试数据生成是软件测试中一项必不可少的工作。
在实际的软件测试中,要生成满足被测程序要求的测试数据,需要专业的测试人员花费大量时间进行实验,这无疑会耗费庞大的时间和人力资源。而利用计算机自动求解生成测试数据,将大幅地提高软件测试的效率,使有限的资源得到更充分合理的利用。
路径覆盖是对已知代码的被测程序,自动生成其测试数据的常用方法。因此,在测试数据自动生成领域中,许多研究者对路径覆盖进行了探讨。有些提出融入神经网络的路径覆盖测试数据进化生成方法,通过改进遗传算法,求解路径覆盖问题。有些提出基于稀有数据扑捉的路径覆盖测试数据进化生成方法,通过保护稀有数据,提高路径覆盖测试数据生成效率。
大多数软件测试数据自动生成问题可以转化成目标路径的覆盖问题,路径覆盖问题可以描述为:给定程序的一条、多条或全部目标路径,在程序的输入空间寻找测试数据,对于任一目标路径,测试数据集中至少存在一个测试数据,使得以该测试数据为输入所穿越的路径为该目标路径。
路径覆盖可分为单路径覆盖及多路径覆盖。多路径覆盖测试数据自动生成的复杂程度远超过单路径覆盖,但是更加贴近实际应用,测试数据的生成也更加高效。在多路径覆盖测试数据自动生成上,多采用经典的遗传算法进行求解,但仍存在多路径覆盖率低、测试数据生成时间长等问题。
发明内容
有鉴于此,有必要提供一种提高多路径覆盖测试数据自动生成的效率的结合关键点概率与路径相似度的多路径覆盖方法及系统。
一种结合关键点概率与路径相似度的多路径覆盖方法,包括以下步骤:
步骤一,基于关键点路径获取被测程序的理论路径;随机生成测试数据集,运行被测程序,得到该数据集对应的覆盖路径并定义为易覆盖路径;通过不可达路径自动检测模型探测到的路径,定义为不可达路径;将剩余理论路径,定义为难覆盖路径;根据生成的易覆盖路径,计算路径中关键点的关键点概率,将难覆盖路径作为目标路径,生成覆盖难覆盖路径的测试数据;
步骤二,统计易覆盖路径中的关键点被覆盖情况,计算关键点概率以及个体对生成覆盖目标路径测试数据的贡献度;将个体贡献度作为适应度函数权重,调整多种群遗传算法的适应度函数;根据关键点概率对目标路径进行排序,排序后优先级高的目标路径对应的子种群在测试数据生成过程中优先执行;
步骤三,利用多种群遗传算法生成覆盖目标路径的测试数据;采用个体信息共享策略,实现各子种群之间的信息交互,但各子种群的个体不参与其它子种群的进化;子种群覆盖其目标路径后,继续尝试覆盖与该目标路径相似度高的其它目标路径,以提高种群中的个体信息的利用率;
步骤四,多路径覆盖测试数据生成;采用改进的多种群遗传算法,对选出的多条目标路径,求解覆盖这些路径的测试数据。
进一步地,步骤一中的所述关键点概率的计算步骤如下:
对被测程序输入m组测试数据in=(l 1,l 2, l m),其中l i(1≤im)为一组输入向量,为种群中的个体,得到m条覆盖路径集P cover={P 1,P 2,…,P m},程序中每个分支子关键点N j(1≤jn)被路径覆盖的概率,记为G(N j);
利用随机生成的测试数据集,及其对应的易覆盖路径,统计易覆盖路径集中的关键点被路径覆盖的情况,如式(1)所示:
(1)
其中,P iP cover,再得到覆盖矩阵,记为Cover,如式(2)所示:
(2)
其中,覆盖矩阵的行表示执行被测程序得到的m条覆盖路径P 1,P 2,…,P m,列表示路径中的n个关键点N 1,N 2,…,N n
根据覆盖矩阵Cover,得到覆盖关键点N j的路径数记为S j,如式(3)所示:
(3)
被测程序的关键点概率G(N j),表示如式(4)所示:
(4)
由式(4)可知,关键点被易覆盖路径覆盖的次数越多,关键点概率越高,表示该关键点越容易被覆盖。
进一步地,步骤二中的所述个体贡献度的计算步骤如下:
个体数为m的种群中的个体l i(1≤im),对于进化生成覆盖目标路径集P tar={P 1,P 2,P 3,…,P n}的目标路径P k(1≤kn)的测试数据所做出的贡献,即为个体l i对应的覆盖路径P(l i)与目标路径P k相同关键点的关键点概率之和,记为Con(l i,P k);
根据关键点概率,将个体的贡献度Con(l i,P k)表达成如式(5)所示:
(5)
其中,e为自然底数,N j∈(P(l i)∩P k),G(N j)为N j的关键点概率;
在多种群遗传算法进化过程中,一个关键点的关键点概率越高,则该关键点越容易被易覆盖路径覆盖;当个体l i对应的覆盖路径P(l i)与目标路径P k相同关键点的关键点概率越高,表示该个体对于生成难覆盖的目标路径所能做出的贡献越低;则关键点概率与个体贡献度之间的关系成反比。
进一步地,步骤三中的所述适应度函数的计算步骤如下:
个体数为m的种群中的个体l i(1≤im)的适应度函数由其层接近度、分支距离及个体贡献度组成的,记为F(l i);
个体l i的层接近度为l i对应覆盖路径P(l i)与目标路径集P tar={P 1,P 2,P 3,…,P n}中的目标路径P j(1≤jn)相同的关键点个数,除以路径P j的关键点数,记为approach_level(l i,P j);个体l i的分支距离参考已有的分支谓词的分支距离计算函数及复合谓词的计算方法,记为branch_distance(l i,P j);为了权衡分支距离与层接近度的大小,并统一为最大化运算,将分支距离规范化表示为;个体l i对于目标路径P j的贡献度Con(l i,P j)作为适应度函数的权重;适应度函数F(l i)表达成如式(8)所示:
(8)
对于目标路径集P tar={P 1,P 2,…,P n}中的每条路径P j(1≤jn),对被测程序输入一组测试数据l j=(s j1,s j2,…,s jm)能够覆盖路径P j时,目标函数f j=F(l j)取得最大值;多路径覆盖问题要求寻找至少k个测试数据,使其能够分别覆盖这k个目标路径,则问题转化成求解f 1,f 2,…,f k最大值的优化问题,f 1,f 2,…,f k最大值的优化如式(9)所示:
(9)
其中,P jP tar
各个目标函数都对应一条目标路径,目标函数之间相互独立,对于每个目标函数对应于一组测试数据;多路径覆盖问题的最终数学模型表达式如式(10)所示:
(10)
在式(10)中,最终数学模型由k个函数构成,每个函数对应一个优化问题,每个优化问题对应一个覆盖目标路径的测试数据。
进一步地,步骤三中的所述个体信息共享的具体步骤如下:
对于种群集pop={pop 1,pop 2,…,pop n},第I(1≤In)个子种群pop I={l I1,l I2,…,l Im}中的个体l IJ(1≤Jm),首先判定个体l IJ(1≤Jm)是否为对应适应度函数max(F I)的最优解,然后判断个体l IJ(1≤Jm)是否为其它子种群对应适应度函数max(F k)(1≤knkI)的最优解,在判断个体l IJ(1≤Jm)是否为max(F k)的最优解时,只需判断个体l IJ穿越的路径P(l IJ)是否为目标路径P k,不需要计算F k(l IJ),即个体l IJ(1≤Jm)不参与子种群pop k的进化过程,个体不在多个子种群间进行迁移,只进行信息共享。
进一步地,步骤三中的所述路径相似度的计算步骤如下:
目标路径集P tar={P 1,P 2,P 3,…,P n}中的目标路径P j(1≤jn)与目标路径P k(1≤knkj)相同的关键点个数,与路径P jP k的最大关键点个数之比,记为Pro(P j,P k);
统计目标路径P j与目标路径P k关键点异同情况,如式(6)所示:
(6)
其中,N ji为路径P j的第i个关键点,N ki是为路径P k的第i个关键点;
根据路径相同序列长度,可以得到路径相似度Pro(P j,P k),如式(7)所示:
(7)
其中,len(P j)表示路径P j的关键点个数,len(P k)表示路径P k的关键点个数,max(len(P j),len(P k))表示路径P j及路径P k较大关键点个数,max(len(P j)。
进一步地,步骤四中的所述多路径覆盖测试数据生成的具体步骤如下:
步骤4-1,对被测程序进行插桩处理,初始化参数,包括子种群数n,子种群中个体数m,终止代数,种群进化需要的选择、交叉和变异概率值,并采用二进制格式编码个体;
步骤4-2,完成改进的多种群进化;
步骤4-3,若目标路径P被全部覆盖,则表明算法完成任务,终止程序执行,或种群进化代数超出阈值。
进一步地,步骤4-2中的所述改进的多种群进化的具体步骤如下:
步骤4-2-1,对任意属于排序后的目标路径集P tar={P 1,P 2,P 3,…,P n}的目标路径P i,随机生成个体数为m的子种群pop i,对第i个种群pop i,计算该种群中个体覆盖第i条路径的适应度值的最大值max(F i(in i)),如果存在个体的适应度值达到最大值,说明该个体覆盖目标路径P i,将P i从目标路径集中移除,若不是则对该种群执行选择、交叉、变异遗传操作;
步骤4-2-2,pop i中个体除了判定是否是y i=max(F i(in i))的最优解,还需要判定是否是y k(ki)的最优解,如果pop i中个体能够覆盖第k条目标路径,则pop k终止;
步骤4-2-3,当in时,pop i需要继续对与该子种群对应的目标路径Pi的相似路径尝试覆盖,如果找到覆盖第j(ji&j>i)条路径的个体,将pop j及路径P j移除,直到完成尝试对所有相似目标路径覆盖后,终止pop i的执行。
以及,一种结合关键点概率与路径相似度的多路径覆盖的系统,其用于实现如上任一项所述的结合关键点概率与路径相似度的多路径覆盖方法,其特征在于,该系统包括:
关键点路径获取模块,用于将理论路径分类为易覆盖路径、难覆盖路径和不可达路径,并根据易覆盖路径的计算路径中的关键点概率;
计算关键点概率和个体对生成覆盖目标路径测试数据贡献度模块,首先利用个体贡献度作为适应度函数权重,调整多种群遗传算法的适应度函数,并根据关键点概率对目标路径进行排序,在此后的模块中,应当优先执行排序后优先级高的目标路径对应的子种群;
生成覆盖目标路径的测试数据模块,用于利用个体信息共享策略,实现各子种群之间的信息交互,并在子种群覆盖其目标路径后,仍继续尝试覆盖与该目标路径相似度高的其它目标路径;
多路径覆盖测试数据生成模块,用于利用改进的多种群遗传算法,对选出的多条目标路径,求解覆盖这些路径的测试数据。
进一步地,所述关键点包括分支关键点、分支子关键点、普通关键点、起始关键点s及终止关键点e,分支关键点对应控制流图中有两个直接后继节点的节点;分支关键点的两个直接后继节点为分支子关键点;普通关键点既是分支关键点,也是其它分支关键点的分支子关键点;所述关键点路径采用被测程序的分支子关键点进行描述:关键点路径P={s,N,e},其中N={N 1,N 2,…,N n}为分支子关键点集合,s为起始关键点,e为终止关键点;所述关键点路径表达式是将关键点图中所有关键点用数学运算符连接起来的表达式,其中,兄弟关键点之间表示为相加的“或”关系,普通关键点与其分支子关键点之间表示为相乘的“与”关系。
本方案提出一种通过个体对生成测试数据的贡献度判断其优劣程度,并设计相应的适应度函数,利用多种群遗传算法来实现多路径覆盖测试数据生成的策略,以提升多路径覆盖测试数据生成的效率。实验表明本软件所提出的策略是有效的,其主要贡献包括以下几点:
1)划分理论路径,起到对目标路径预处理的作用。
将路径划分为不可达路径、易覆盖路径及难覆盖路径。检测出被测程序的不可达路径,避免种群进化过程中因尝试覆盖不可达路径而浪费不必要的资源,使资源得到充分利用;对于使用随机法就能轻易覆盖的易覆盖路径,没有必要使用遗传算法进化生成,只有将筛选出的难覆盖路径作为多种群遗传算法需要覆盖的目标路径,才有价值。
2)改进适应度函数,提高测试数据生成效率。
使用随机法生成部分测试数据集,将该测试数据集作为输入,运行被测程序,得到易覆盖路径,统计易覆盖路径中的关键点概率,根据此概率计算个体贡献,将贡献度作为适应度函数的权重,改进适应度函数。这样可以使得贡献度较高的优秀个体具有较好的适应度,提高了遗传算法生成测试数据的效率。使用易覆盖路径求解关键点概率,针对不可达路径及难覆盖路径数量非常多或者非常少的程序,都是非常有利的,既可以避免关键点概率的计算资源消耗过大,也可以解决统计关键点概率可用的有效数据太少问题。
3)优化多种群遗传算法,用以快速生成测试数据。
将多种群遗传算法进行优化,用于求解路径覆盖测试数据生成问题。通过对目标路径进行排序,优先尝试执行能覆盖排序后优先级高的目标路径的子种群,使进化过程中产生的个体信息,启发之后执行的子种群,并且更早地减少子种群数,释放其占用的资源,可使算法变得更高效;同时,改进多种群遗传算法的个体信息共享策略,子种群在覆盖该种群目标路径之后,不立即终止,让其继续尝试覆盖相似目标路径,这可以充分利用种群进化中的个体信息,同时也能减少不必要的尝试带来的时间消耗。
上述结合关键点概率与路径相似度的多路径覆盖方法及系统中,首先,将理论路径划分成易覆盖、难覆盖及不可达路径。其次,通过易覆盖路径统计关键点概率,依此概率计算个体对生成测试数据的贡献度,并利用贡献度改进适应度函数,同时根据关键点概率对目标路径进行排序。然后,使用多种群遗传算法生成覆盖目标路径的测试数据,在进化过程中子种群覆盖当前目标路径后,继续尝试覆盖此目标路径的相似路径。最后,采用改进的多种群遗传算法,对选出的多条目标路径,求解覆盖这些路径的测试数据。本方案提出一种结合关键点概率与路径相似度的多路径覆盖策略,根据关键点概率设计适应度函数,保护优秀个体,同时进一步完善个体信息共享策略,既合理利用种群进化过程中的个体资源,又避免在子种群进化过程中浪费过多的时间,从而有效地提高了测试数据进化生成的效率。
附图说明
图1是本发明实施例的结合关键点概率与路径相似度的多路径覆盖方法及系统的示例程序控制流图。
图2是本发明实施例的结合关键点概率与路径相似度的多路径覆盖方法及系统的示例程序关键点图。
图3是本发明实施例的结合关键点概率与路径相似度的多路径覆盖方法及系统的个体信息共享结构示意图。
图4是本发明实施例的结合关键点概率与路径相似度的多路径覆盖方法及系统的多路径覆盖策略总体框架图。
具体实施方式
本实施例以结合关键点概率与路径相似度的多路径覆盖方法为例,以下将结合具体实施例和附图对本发明进行详细说明。
请参阅图1、图2、图3和图4,示出本发明实施例提供的一种结合关键点概率与路径相似度的多路径覆盖方法及系统。
利用多种群遗传算法解决多路径覆盖问题,是测试数据自动生成领域一个重要的研究方向。为提高多路径覆盖测试数据自动生成的效率,提出一种将关键点概率和路径相似度相结合的多路径覆盖策略。首先,将理论路径划分成易覆盖、难覆盖及不可达路径。然后,通过易覆盖路径统计关键点概率,依此概率计算个体对生成测试数据的贡献度,并利用贡献度改进适应度函数,同时根据关键点概率对目标路径进行排序。最后,使用多种群遗传算法生成覆盖目标路径的测试数据,在进化过程中子种群覆盖当前目标路径后,继续尝试覆盖此目标路径的相似路径。实验结果表明,该方法能有效地提高多路径覆盖测试数据生成的效率。这里具体讲解本软件的结合关键点概率与路径相似度的多路径覆盖系统涉及到的技术细节。
1 相关定义
为便于理解,先定义本软件用到的相关概念,包括关键点路径、关键点概率、个体贡献度、路径相似度、个体共享策略等。
1.1关键点路径及其表示
将程序转化成更加直观的图形结构,再用形式化语言对被测程序的路径进行描述,其详细定义如下。
定义1. 控制流图.程序结构的一种图形表示形式,可描述为G=(V,L,s,e)。其中,V={v 1,v 2,…,v n}是节点集合,v i(1≤in)表示图中的节点,对应程序中的语句。L是节点的边集,l ij=(v i,v j)∈L表示图中由节点v iv j(1≤jn)的边,对应程序语句的流向。se分别是控制流图的起点和终点。
定义2.关键点图.由控制流图转化而来,其转化规则为:控制流图中的分支节点,对应在关键点图中,分支之后一定归结于某一节点;当分支节点的真假分支都有可执行语句,则这两个分支中的节点是关键点,但当真假分支中只有一个分支有可执行语句,则在没有可执行语句的分支中插入一个新的关键点;循环节点分解为若干分支关键点。
一个示例程序的控制流图如图1所示,其对应的关键点图如图2所示。
定义3. 关键点.关键点图中的节点,包括分支关键点、分支子关键点、普通关键点、起始关键点s及终止关键点e。分支关键点对应控制流图中有两个直接后继节点的节点;分支关键点的两个直接后继节点为分支子关键点;普通关键点既是分支关键点,也是其它分支关键点的分支子关键点,是一种特殊的分支子关键点。
定义4.关键点路径.为约简路径,关键点路径仅采用被测程序的分支子关键点进行描述:关键点路径P={s,N,e},其中N={N 1,N 2,…,N n}为分支子关键点集合,s是起始关键点,e是终止关键点。
定义5.关键点路径表达式.将关键点图中所有关键点用数学运算符连接起来的表达式。其中,兄弟关键点之间表示为相加的“或”关系,普通关键点与其分支子关键点之间表示为相乘的“与”关系。
由于分支子关键点成对出现,关键点路径表示方法有利于快速判断多条路径是否为相似路径,便于求解路径相似度。且对于分支中执行语句特别多的被测程序,关键点路径比基于控制流图描述的路径要简洁的多,有利于加快测试数据生成速度。
1.2 关键点概率
对于路径中的关键点,为判断其被覆盖的难易程度,引入关键点概率的概念,关键点概率详细定义如下。
定义6.关键点概率.对被测程序输入m组测试数据in=(l 1,l 2, l m),其中l i(1≤im)为一组输入向量,即个体,可以得到m条覆盖路径集P cover={P 1,P 2,…,P m},程序中每个分支子关键点N j(1≤jn)被路径覆盖的概率,记为G(N j)。
利用随机生成的测试数据集,及其对应的易覆盖路径,统计易覆盖路径集中的关键点被路径覆盖的情况,如式(1)所示。
(1)
其中,P iP cover,再得到覆盖矩阵,记为Cover,如式(2)所示。
(2)
其中,覆盖矩阵的行表示执行被测程序得到的m条覆盖路径P 1,P 2,…,P m,列表示路径中的n个关键点N 1,N 2,…,N n
根据覆盖矩阵Cover,得到覆盖关键点N j的路径数记为S j,如式(3)所示。
(3)
被测程序的关键点概率G(N j),可以表示成如式(4)所示。
(4)
由式(4)可知,关键点被易覆盖路径覆盖的次数越多,关键点概率越高,说明该关键点越容易被覆盖。我们首先排除起始关键点和终止关键点,仅计算关键点路径中的分支子关键点被覆盖的概率,这可大幅减少关键点概率的计算量。
1.3个体贡献度
为了对个体的优劣程度进行判定,考虑在算法进化过程中是否需要保留其基因,故需计算个体的贡献度,其详细定义如下。
定义7.个体贡献度.个体数为m的种群中的个体l i(1≤im),对于进化生成覆盖目标路径集P tar={P 1,P 2,P 3,…,P k}的目标路径P k(1≤kn)的测试数据所做出的贡献,即为个体l i对应的覆盖路径P(l i)与目标路径P k相同关键点的关键点概率之和,记为Con(l i,P k)。
根据关键点概率,本软件将个体的贡献度Con(l i,P k)表达成如式(5)所示。
(5)
其中,e为自然底数,N j∈(P(l i)∩P k),G(N j)为N j的关键点概率(见式(4))。
在多种群遗传算法进化过程中,某关键点概率越高,该关键点越容易被易覆盖路径覆盖。当个体l i对应的覆盖路径P(l i)与目标路径P k相同关键点的关键点概率越高,说明该个体对于生成难覆盖的目标路径所能做出的贡献越低。因此,关键点概率与个体贡献度之间的关系成反比。
1.4 个体信息共享
在多种群遗传算法进化过程中,子种群进行交互的方式,常见的有子种群迁移、子种群信息共享等,本策略选择个体信息共享作为子种群交互的方式,其详细定义如下。
定义8. 个体信息共享.在多种群遗传算法中,每经历一次操作,不仅判断该种群中个体是否为当前种群中最优的,还继续判断它是否是其它种群问题的解。
对于种群集pop={pop 1,pop 2,…,pop n},第i(1≤in)个子种群pop i={l i1,l i2,…,l im}中的个体l ij(1≤jm),除了需要判定是否是对应适应度函数max(F i)的最优解,还需要判断个体是否是其它子种群对应适应度函数max(F k)(1≤knki)的最优解,但是判断个体l ij是否是max(F k)的最优解,不需要计算F k(l ij),只需判断个体l ij穿越的路径P(l ij)是否为目标路径P k。实际上个体l ij不参与子种群pop k的进化过程,个体不在多个子种群间进行迁移,只进行信息共享,详细示意图如图3所示。
1.5 路径相似度
对个体共享策略进行改进,当种群pop i覆盖其对应目标路径后,继续尝试覆盖其目标路径的其它相似路径。为此,引入路径相似度的概念,用以判断两条路径是否相似,其详细定义如下。
定义9.路径相似度. 目标路径集P tar={P 1,P 2,P 3,…,P n}中的目标路径P j(1jn)与目标路径P k(1≤knkj)相同的关键点个数,与路径P jP k的最大关键点个数之比,记为Pro(P j,P k)
统计目标路径P j与目标路径P k关键点异同情况,如式(6)所示。
(6)
其中,N ji为路径P j的第i个关键点,N ki是为路径P k的第i个关键点。
根据路径相同序列长度,可以得到路径相似度Pro(P j,P k),如式(7)所示。
(7)
其中,len(P j)表示路径P j的关键点数,len(P k)表示路径P k的关键点数,max(len(P j),len(P k))表示路径P j及路径P k较大关键点数,max(len(P j),len(P k))表示路径P j及路径P k较小关键点数。
2 关键点概率与路径相似度相结合的多路径覆盖
这里给出一种结合关键点概率与路径相似度的多路径覆盖策略。首先,对理论路径划分,确定目标路径;其次,根据个体贡献度,调整适应度函数,确定多路径覆盖问题的数学模型;然后,根据关键点概率对目标路径进行排序,并求解目标路径之间的相似度;最后,改进个体信息共享策略,利用多种群遗传算法生成测试数据。多路径覆盖策略总体框架如图4所示。
2.1 理论路径划分
为提高多路径覆盖测试数据的生成效率,先要对被测程序的理论路径进行划分,划分为不可达路径、易覆盖路径、难覆盖路径,再对不同类型的路径进行不同的处理。检测出被测程序的不可达路径,避免种群进化过程中因尝试覆盖不可达路径而浪费不必要的资源;对于使用随机法生成测试数据就能覆盖的易覆盖路径,没有必要使用遗传算法进化生成,因此多种群遗传算法的目标路径应该选择难覆盖路径。
随机生成测试数据集,结合理论路径,得到测试数据对路径的覆盖情况,被覆盖的路径定义为易覆盖路径,未被覆盖的理论路径先使用不可达路径自动检测模型,检测出不可达路径,剩余路径即可定义为难覆盖路径。具体过程见算法1。
根据生成的易覆盖路径,计算路径中关键点的关键点概率,将难覆盖路径作为目标路径,生成覆盖难覆盖路径的测试数据。
2.2适应度函数设计
针对路径覆盖的测试数据进化生成,适应度函数的设计方法主要有3种:分支距离、层接近度以及两者相结合的方法。本软件采用将分支距离与层接近度结合的方法设计适应度函数。
定义10.适应度函数.个体数为m的种群中的个体l i(1≤im)的适应度函数由其层接近度、分支距离及个体贡献度组成的,记为F(l i)。
个体l i的层接近度为,l i对应覆盖路径P(l i)与目标路径集P tar={P 1,P 2,P 3,…,P n}中的目标路径P j(1jn)相同的关键点个数,除以路径P j的关键点数,记为approach_ level(l i,P j)。个体l i的分支距离参考已有的分支谓词的分支距离计算函数及复合谓词的计算方法,记为branch_distance(l i,P j)。为了权衡分支距离与层接近度的大小,并统一为最大化运算,将分支距离规范化表示为。个体l i对于目标路径P j的贡献度Con(l i,P j)(见式(5))作为适应度函数的权重。可将适应度函数F(l i)表达成如式(8)所示。
(8)
对于目标路径集P tar={P 1,P 2,…,P k}中的每条路径P j(1≤jk),对被测程序输入一组测试数据l j=(s j1,s j2,…,s jm)能够覆盖路径P j时,目标函数f j=F(l j)取得最大值。多路径覆盖问题要求寻找至少k个测试数据,使其能够分别覆盖这k个目标路径,则问题转化成求解f 1,f 2,…,f k最大值的优化问题,即式(9)。
(9)
其中,P jP tar
各个目标函数都对应一条目标路径,目标函数之间相互独立,最终要求对于每个目标函数能够找到其对应的一组测试数据。因此,多路径覆盖问题的最终数学模型可表达成如式(10)所示。
(10)
在式(10)中,最终模型由k个函数构成,每个函数对应一个优化问题,每个优化问题对应一个覆盖目标路径的测试数据。因为每个子函数都相互独立,所以最终需要求解的问题是,找到对应每个子函数的解,最后形成一个包含多个解的解集合。
2.3 目标路径排序
在利用多种群遗传算法生成测试数据之前,先根据关键点概率对目标路径进行排序。
多种群遗传算法中的种群集pop中的种群数量,随着目标路径集中路径被覆盖逐步减少。如,当第i个子种群pop i覆盖第k条目标路径P k时,就将路径P k对应的子种群pop k从种群集pop中移除。对于多种群遗传算法,越早减少子种群及目标路径的数量,使被占用的资源越早得到释放,算法的效率就越高。因此,我们先对目标路径进行排序,让能使目标路径更易覆盖的子种群优先执行。
目标路径的优先级为路径中所有关键点概率(计算方法见式(4))的均值,优先级越大,说明该目标路径相对容易被覆盖,应当优先被执行。目标路径优先级判定的详细过程见算法2。
2.4目标路径相似度计算
这里对多种群遗传算法进行了改进,充分利用子种群进化过程中的个体资源,同时节约了进化过程所用的时间。在种群遗传算法进化过程中,当子种群pop i覆盖当前目标路径P i后,并不是立刻终止子种群pop i,而是让子种群pop i继续尝试覆盖目标路径P i的相似路径。
接下来,计算目标路径之间的相似度(计算方法见式(7)),当路径相似度Pro(P j , P k)大于给定阈值T时,定义目标路径P jP k相似。因基于关键点表达的路径中,分支子关键点都是成对存在的,便于计算路径的相似度,以确定相似路径,具体过程如算法3所述。
2.5多路径覆盖测试数据进化生成
经过上面几节的处理,最后采用改进的多种群遗传算法,对选出的多条目标路径,求解覆盖这些路径的测试数据。
首先,对被测程序进行插桩处理,初始化参数,包括子种群数(目标路径集中目标路径数)n,子种群中个体数m,终止代数,种群进化需要的选择、交叉和变异概率值等,并采用二进制格式编码个体。
其次,多种群进化过程的具体步骤又包括:① 对任意属于排序后的目标路径集P tar={P 1,P 2,P 3,…,P n}的目标路径P i,随机生成个体数为m的子种群pop i,对第i个种群pop i,计算该种群中个体覆盖第i条路径的适应度值的最大值max(F i(in i))。如果存在个体的适应度值达到最大值,说明该个体覆盖目标路径P i,将P i从目标路径集中移除,若不是则对该种群执行选择、交叉、变异等遗传操作。②pop i中个体除了判定是否是y i=max(F i(in i))的最优解,还需要判定是否是y k(ki)的最优解,如果pop i中个体能够覆盖第k条目标路径,则pop k终止。③ 当in时,pop i需要继续对与该子种群对应的目标路径Pi的相似路径尝试覆盖,如果找到覆盖第j(ji&j>i)条路径的个体,将pop j及路径P j移除,直到完成尝试对所有相似目标路径覆盖后,终止pop i的执行。
最后,若目标路径P被全部覆盖,则表明算法完成任务,终止程序执行,或种群进化代数超出阈值。
具体过程如算法4所述。
/>
/>
至此,本软件已经对结合关键点概率与路径相似度的多路径覆盖策略进行了详细说明和分析。
以及,一种结合关键点概率与路径相似度的多路径覆盖的系统,其用于实现如上任一项所述的结合关键点概率与路径相似度的多路径覆盖方法,该系统包括:
关键点路径获取模块,用于将理论路径分类为易覆盖路径、难覆盖路径和不可达路径,并根据易覆盖路径的计算路径中的关键点概率;
计算关键点概率和个体对生成覆盖目标路径测试数据贡献度模块,首先利用个体贡献度作为适应度函数权重,调整多种群遗传算法的适应度函数,并根据关键点概率对目标路径进行排序,排序后优先级高的目标路径对应的子种群在测试数据生成过程中优先执行;
生成覆盖目标路径的测试数据模块,用于利用个体信息共享策略,实现各子种群之间的信息交互,并在子种群覆盖其目标路径后,仍继续尝试覆盖与该目标路径相似度高的其它目标路径;
多路径覆盖测试数据生成模块,用于利用改进的多种群遗传算法,对选出的多条目标路径,求解覆盖这些路径的测试数据。
进一步地,所述关键点包括分支关键点、分支子关键点、普通关键点、起始关键点s及终止关键点e,分支关键点对应控制流图中有两个直接后继节点的节点;分支关键点的两个直接后继节点为分支子关键点;普通关键点既是分支关键点,也是其它分支关键点的分支子关键点;所述关键点路径采用被测程序的分支子关键点进行描述:关键点路径P={s,N,e},其中N={N 1,N 2,…,N n}为分支子关键点集合,s为起始关键点,e为终止关键点;所述关键点路径表达式是将关键点图中所有关键点用数学运算符连接起来的表达式,其中,兄弟关键点之间表示为相加的“或”关系,普通关键点与其分支子关键点之间表示为相乘的“与”关系。
本方案提出一种通过个体对生成测试数据的贡献度判断其优劣程度,并设计相应的适应度函数,利用多种群遗传算法来实现多路径覆盖测试数据生成的策略,以提升多路径覆盖测试数据生成的效率。实验表明本软件所提出的策略是有效的,其主要贡献包括以下几点:
1)划分理论路径,起到对目标路径预处理的作用。
将路径划分为不可达路径、易覆盖路径及难覆盖路径。检测出被测程序的不可达路径,避免种群进化过程中因尝试覆盖不可达路径而浪费不必要的资源,使资源得到充分利用;对于使用随机法就能轻易覆盖的易覆盖路径,没有必要使用遗传算法进化生成,只有将筛选出的难覆盖路径作为多种群遗传算法需要覆盖的目标路径,才有价值。
2)改进适应度函数,提高测试数据生成效率。
使用随机法生成部分测试数据集,将该测试数据集作为输入,运行被测程序,得到易覆盖路径,统计易覆盖路径中的关键点概率,根据此概率计算个体贡献,将贡献度作为适应度函数的权重,改进适应度函数。这样可以使得贡献度较高的优秀个体具有较好的适应度,提高了遗传算法生成测试数据的效率。使用易覆盖路径求解关键点概率,针对不可达路径及难覆盖路径数量非常多或者非常少的程序,都是非常有利的,既可以避免关键点概率的计算资源消耗过大,也可以解决统计关键点概率可用的有效数据太少问题。
3)优化多种群遗传算法,用以快速生成测试数据。
将多种群遗传算法进行优化,用于求解路径覆盖测试数据生成问题。通过对目标路径进行排序,优先尝试执行能覆盖排序后优先级高的目标路径的子种群,使进化过程中产生的个体信息,启发之后执行的子种群,并且更早地减少子种群数,释放其占用的资源,可使算法变得更高效;同时,改进多种群遗传算法的个体信息共享策略,子种群在覆盖该种群目标路径之后,不立即终止,让其继续尝试覆盖相似目标路径,这可以充分利用种群进化中的个体信息,同时也能减少不必要的尝试带来的时间消耗。
上述结合关键点概率与路径相似度的多路径覆盖方法及系统中,首先,将理论路径划分成易覆盖、难覆盖及不可达路径。其次,通过易覆盖路径统计关键点概率,依此概率计算个体对生成测试数据的贡献度,并利用贡献度改进适应度函数,同时根据关键点概率对目标路径进行排序。然后,使用多种群遗传算法生成覆盖目标路径的测试数据,在进化过程中子种群覆盖当前目标路径后,继续尝试覆盖此目标路径的相似路径。最后,采用改进的多种群遗传算法,对选出的多条目标路径,求解覆盖这些路径的测试数据。本方案提出一种结合关键点概率与路径相似度的多路径覆盖策略,根据关键点概率设计适应度函数,保护优秀个体,同时进一步完善个体信息共享策略,既合理利用种群进化过程中的个体资源,又避免在子种群进化过程中浪费过多的时间,从而有效地提高了测试数据进化生成的效率。
需要说明的是,以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种结合关键点概率与路径相似度的多路径覆盖方法,其特征在于,包括以下步骤:
步骤一,基于关键点路径获取被测程序的理论路径;随机生成测试数据集,运行被测程序,得到该数据集对应的覆盖路径并定义为易覆盖路径;通过不可达路径自动检测模型探测到的路径,定义为不可达路径;将剩余理论路径,定义为难覆盖路径;根据生成的易覆盖路径,计算路径中关键点的关键点概率,将难覆盖路径作为目标路径,生成覆盖难覆盖路径的测试数据;
步骤二,统计易覆盖路径中的关键点被覆盖情况,计算关键点概率以及个体对生成覆盖目标路径测试数据的贡献度;将个体贡献度作为适应度函数权重,调整多种群遗传算法的适应度函数;根据关键点概率对目标路径进行排序,排序后优先级高的目标路径对应的子种群在测试数据生成过程中优先执行;
步骤三,利用多种群遗传算法生成覆盖目标路径的测试数据;采用个体信息共享策略,实现各子种群之间的信息交互,但各子种群的个体不参与其它子种群的进化;子种群覆盖其目标路径后,继续尝试覆盖与该目标路径相似度高的其它目标路径,以提高种群中的个体信息的利用率;
步骤四,多路径覆盖测试数据生成;采用改进的多种群遗传算法,对选出的多条目标路径,求解覆盖这些路径的测试数据;
其中,步骤一中的所述关键点概率的计算步骤如下:
对被测程序输入m组测试数据in=(l 1,l 2, l m),其中l i,1≤im为一组输入向量,为种群中的个体,得到m条覆盖路径集P cover={P 1,P 2,…,P m},程序中每个分支子关键点N j1jn被路径覆盖的概率,记为G(N j);
利用随机生成的测试数据集,及其对应的易覆盖路径,统计易覆盖路径集中的关键点被路径覆盖的情况,如式(1)所示:
(1)
其中,P iP cover,再得到覆盖矩阵,记为Cover,如式(2)所示:
(2)
其中,覆盖矩阵的行表示执行被测程序得到的m条覆盖路径P 1,P 2,…,P m,列表示路径中的n个关键点N 1,N 2,…,N n
根据覆盖矩阵Cover,得到覆盖关键点N j的路径数记为S j,如式(3)所示:
(3)
被测程序的关键点概率G(N j),表示如式(4)所示:
(4)
由式(4)可知,关键点被易覆盖路径覆盖的次数越多,关键点概率越高,表示该关键点越容易被覆盖;
步骤二中的所述个体贡献度的计算步骤如下:
个体数为m的种群中的个体l i1im,对于进化生成覆盖目标路径集P tar={P 1,P 2,P 3,…,P n}的目标路径P k1kn的测试数据所做出的贡献,即为个体l i对应的覆盖路径P(l i)与目标路径P k相同关键点的关键点概率之和,记为Con (l i,P k);
根据关键点概率,将个体的贡献度Con (l i,P k)表达成如式(5)所示:
(5)
其中,e为自然底数,N j∈(P(l i)∩P k),G(N j)为N j的关键点概率;
在多种群遗传算法进化过程中,一个关键点的关键点概率越高,则该关键点越容易被易覆盖路径覆盖;当个体l i对应的覆盖路径P(l i)与目标路径P k相同关键点的关键点概率越高,表示该个体对于生成难覆盖的目标路径所能做出的贡献越低;则关键点概率与个体贡献度之间的关系成反比;
步骤三中的所述适应度函数的计算步骤如下:
个体数为m的种群中的个体l i1im的适应度函数由其层接近度、分支距离及个体贡献度组成的,记为F(l i);
个体l i的层接近度为l i对应覆盖路径P(l i)与目标路径集P tar={P 1,P 2,P 3,…,P n}中的目标路径P j,1≤jn相同的关键点个数,除以路径P j的关键点数,记为approach_level(l i,P j);个体l i的分支距离参考已有的分支谓词的分支距离计算函数及复合谓词的计算方法,记为branch_distance(l i,P j);为了权衡分支距离与层接近度的大小,并统一为最大化运算,将分支距离规范化表示为;个体l i对于目标路径P j的贡献度Con(l i,P j)作为适应度函数的权重;适应度函数F(l i)表达成如式(8)所示:
(8)
对于目标路径集P tar={P 1,P 2,…,P n}中的每条路径P j,1≤jn,对被测程序输入一组测试数据l j=(s j1,s j2,…,s jm)能够覆盖路径P j时,目标函数f j= F(l j)取得最大值;多路径覆盖问题要求寻找至少k个测试数据,使其能够分别覆盖这k个目标路径,则问题转化成求解f 1,f 2,…,f k最大值的优化问题,f 1,f 2,…,f k最大值的优化如式(9)所示:
(9)
其中,P jP tar
各个目标函数都对应一条目标路径,目标函数之间相互独立,对于每个目标函数对应于一组测试数据;多路径覆盖问题的最终数学模型表达式如式(10)所示:
(10)
在式(10)中,最终数学模型由k个函数构成,每个函数对应一个优化问题,每个优化问题对应一个覆盖目标路径的测试数据;
步骤三中的所述个体信息共享的具体步骤如下:
对于种群集pop={pop 1,pop 2,…,pop n},第I,1≤In个子种群pop I={l I1,l I2,…,l Im}中的个体l IJ,1≤Jm,首先判定个体l IJ,1≤Jm是否为对应适应度函数max(F I)的最优解,然后判断个体l IJ,1≤Jm是否为其它子种群对应适应度函数max(F k),1≤knkI的最优解,在判断个体l IJ,1≤Jm是否为max(F k)的最优解时,只需判断个体l IJ穿越的路径P(l IJ)是否为目标路径P k,不需要计算F k(l IJ),即个体l IJ,1≤Jm不参与子种群pop k的进化过程,个体不在多个子种群间进行迁移,只进行信息共享;
步骤三中的所述路径相似度的计算步骤如下:
目标路径集P tar={P 1,P 2,P 3,…,P n}中的目标路径P j,1≤jn与目标路径P k,1≤knkj相同的关键点个数,与路径P jP k的最大关键点个数之比,记为Pro(P j,P k);
统计目标路径P j与目标路径P k关键点异同情况,如式(6)所示:
(6)
其中,N ji为路径P j的第i个关键点,N ki是为路径P k的第i个关键点;
根据路径相同序列长度,可以得到路径相似度Pro(P j,P k),如式(7)所示:
(7)
其中,len(P j)表示路径P j的关键点个数,len(P k)表示路径P k的关键点个数,max(len(P j),len(P k))表示路径P j及路径P k较大关键点个数。
2.如权利要求1所述的结合关键点概率与路径相似度的多路径覆盖方法,其特征在于,步骤四中的所述多路径覆盖测试数据生成的具体步骤如下:
步骤4-1,对被测程序进行插桩处理,初始化参数,包括子种群数n,子种群中个体数m,终止代数,种群进化需要的选择、交叉和变异概率值,并采用二进制格式编码个体;
步骤4-2,完成改进的多种群进化;
步骤4-3,若目标路径P被全部覆盖,则表明算法完成任务,终止程序执行,或种群进化代数超出阈值。
3.如权利要求2所述的结合关键点概率与路径相似度的多路径覆盖方法,其特征在于,步骤4-2中的所述改进的多种群进化的具体步骤如下:
步骤4-2-1,对任意属于排序后的目标路径集P tar={P 1,P 2,P 3,…,P n}的目标路径P i,随机生成个体数为m的子种群pop i,对第i个种群pop i,计算该种群中个体覆盖第i条路径的适应度值的最大值max(F i(in i)),如果存在个体的适应度值达到最大值,说明该个体覆盖目标路径P i,将P i从目标路径集中移除,若不是则对该种群执行选择、交叉、变异遗传操作;
步骤4-2-2,pop i中个体除了判定是否是y i=max(F i(in i))的最优解,还需要判定是否是y k ki的最优解,如果pop i中个体能够覆盖第k条目标路径,则pop k终止;
步骤4-2-3,当in时,pop i需要继续对与该子种群对应的目标路径Pi的相似路径尝试覆盖,如果找到覆盖第jji& j>i条路径的个体,将pop j及路径P j移除,直到完成尝试对所有相似目标路径覆盖后,终止pop i的执行。
4.一种结合关键点概率与路径相似度的多路径覆盖的系统,其用于实现如权利要求1-3任一项所述的结合关键点概率与路径相似度的多路径覆盖方法,其特征在于,该系统包括:
关键点路径获取模块,用于将理论路径分类为易覆盖路径、难覆盖路径和不可达路径,并根据易覆盖路径的计算路径中的关键点概率;
计算关键点概率和个体对生成覆盖目标路径测试数据贡献度模块,首先利用个体贡献度作为适应度函数权重,调整多种群遗传算法的适应度函数,并根据关键点概率对目标路径进行排序,在此后的模块中,应当优先执行排序后优先级高的目标路径对应的子种群;
生成覆盖目标路径的测试数据模块,用于利用个体信息共享策略,实现各子种群之间的信息交互,并在子种群覆盖其目标路径后,仍继续尝试覆盖与该目标路径相似度高的其它目标路径;
多路径覆盖测试数据生成模块,用于利用改进的多种群遗传算法,对选出的多条目标路径,求解覆盖这些路径的测试数据。
5.如权利要求4所述的结合关键点概率与路径相似度的多路径覆盖的系统,其特征在于,所述关键点包括分支关键点、分支子关键点、普通关键点、起始关键点s及终止关键点e,分支关键点对应控制流图中有两个直接后继节点的节点;分支关键点的两个直接后继节点为分支子关键点;普通关键点既是分支关键点,也是其它分支关键点的分支子关键点;所述关键点路径采用被测程序的分支子关键点进行描述:关键点路径P={s,N,e},其中N={N 1,N 2,…,N n}为分支子关键点集合,s为起始关键点,e为终止关键点;所述关键点路径表达式是将关键点图中所有关键点用数学运算符连接起来的表达式,其中,兄弟关键点之间表示为相加的“或”关系,普通关键点与其分支子关键点之间表示为相乘的“与”关系。
CN202010069239.XA 2020-01-21 2020-01-21 结合关键点概率与路径相似度的多路径覆盖方法及系统 Active CN111240995B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010069239.XA CN111240995B (zh) 2020-01-21 2020-01-21 结合关键点概率与路径相似度的多路径覆盖方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010069239.XA CN111240995B (zh) 2020-01-21 2020-01-21 结合关键点概率与路径相似度的多路径覆盖方法及系统

Publications (2)

Publication Number Publication Date
CN111240995A CN111240995A (zh) 2020-06-05
CN111240995B true CN111240995B (zh) 2023-07-25

Family

ID=70870452

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010069239.XA Active CN111240995B (zh) 2020-01-21 2020-01-21 结合关键点概率与路径相似度的多路径覆盖方法及系统

Country Status (1)

Country Link
CN (1) CN111240995B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114780439B (zh) * 2022-06-13 2022-09-27 江西财经大学 一种面向参数路径流图的相似程序间测试用例的重用方法
CN114968824B (zh) * 2022-07-28 2022-09-30 江西财经大学 一种基于链式多路径覆盖的测试方法与系统
CN115576848B (zh) * 2022-11-10 2023-04-07 江西财经大学 结合关键边概率与路径层接近度的多路径覆盖测试方法
CN115794658B (zh) * 2023-01-09 2023-05-30 国网区块链科技(北京)有限公司 一种区块链的模糊测试方法及系统
CN116089317B (zh) * 2023-04-10 2023-06-27 江西财经大学 基于路径相似表与个体迁移的多路径测试方法与系统
CN116303094B (zh) * 2023-05-10 2023-07-21 江西财经大学 基于rbf神经网络与个体迁移的多路径覆盖测试方法
CN117632770B (zh) * 2024-01-25 2024-04-19 江西财经大学 一种多路径覆盖测试用例生成方法和系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110083531A (zh) * 2019-04-12 2019-08-02 江西财经大学 改进个体信息共享的多目标路径覆盖测试方法及实现系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8051352B2 (en) * 2006-04-27 2011-11-01 Mentor Graphics Corporation Timing-aware test generation and fault simulation
CN103810104B (zh) * 2014-03-04 2017-08-25 中国人民解放军63863部队 一种软件测试用例优化方法及系统
CN106843211B (zh) * 2017-02-07 2019-11-08 东华大学 一种基于改进遗传算法的移动机器人路径规划方法
CN108509335B (zh) * 2018-01-31 2021-03-19 浙江理工大学 基于遗传算法优化的软件测试数据生成方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110083531A (zh) * 2019-04-12 2019-08-02 江西财经大学 改进个体信息共享的多目标路径覆盖测试方法及实现系统

Also Published As

Publication number Publication date
CN111240995A (zh) 2020-06-05

Similar Documents

Publication Publication Date Title
CN111240995B (zh) 结合关键点概率与路径相似度的多路径覆盖方法及系统
CN110083531B (zh) 改进个体信息共享的多目标路径覆盖测试方法及实现系统
CN112069061B (zh) 深度学习梯度指导变异的软件安全漏洞检测方法及系统
Martinez-Munoz et al. An analysis of ensemble pruning techniques based on ordered aggregation
Wang et al. An enhanced estimation of distribution algorithm for solving hybrid flow-shop scheduling problem with identical parallel machines
CN112699054B (zh) 一种软件测试用例有序生成方法
CN112201300B (zh) 基于深度图像特征和阈值学习策略的蛋白质亚细胞定位的方法
CN106991295B (zh) 一种基于多目标优化的蛋白质网络模块挖掘方法
CN113434685A (zh) 一种资讯分类处理的方法及系统
Sandin et al. Aggressive and effective feature selection using genetic programming
CN115309628A (zh) 一种基于强化学习的智能模糊测试方法、装置及系统
CN113641906A (zh) 基于资金交易关系数据实现相似目标人员识别处理的系统、方法、装置、处理器及其介质
CN114897085A (zh) 一种基于封闭子图链路预测的聚类方法及计算机设备
CN114048816A (zh) 一种图神经网络数据采样方法、装置、设备及存储介质
McKibben et al. Applying machine learning to classify the origins of gene duplications
González Calabozo et al. Gene Expression Array Exploration Using-Formal Concept Analysis
Suresh et al. Evolutionary algorithms for object-oriented test data generation
D’Agostino et al. A fine-grained CUDA implementation of the multi-objective evolutionary approach NSGA-II: potential impact for computational and systems biology applications
CN113627464A (zh) 图像处理方法、装置、设备和存储介质
Li et al. Parameters optimization of back propagation neural network based on memetic algorithm coupled with genetic algorithm
LaPierre et al. CAMIL: Clustering and Assembly with Multiple Instance Learning for phenotype prediction
Cai et al. Application and research progress of machine learning in Bioinformatics
von Lücken et al. Clustering based parallel many-objective evolutionary algorithms using the shape of the objective vectors
Kahn et al. Selective background Monte Carlo simulation at Belle II
CN112465009B (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