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

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

Info

Publication number
CN111240995A
CN111240995A CN202010069239.XA CN202010069239A CN111240995A CN 111240995 A CN111240995 A CN 111240995A CN 202010069239 A CN202010069239 A CN 202010069239A CN 111240995 A CN111240995 A CN 111240995A
Authority
CN
China
Prior art keywords
path
target
probability
population
coverage
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
CN202010069239.XA
Other languages
English (en)
Other versions
CN111240995B (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

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/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=(l1,l2,…,lm),其中li(1≤i≤m)为一组输入向量,为种群中的个体,得到m条覆盖路径集Pcover={P1,P2,…,Pm},程序中每个分支子关键点Nj(1≤j≤n)被路径覆盖的概率,记为G(Nj);
利用随机生成的测试数据集,及其对应的易覆盖路径,统计易覆盖路径集中的关键点被路径覆盖的情况,如式(1)所示:
Figure BDA0002376881200000023
其中,Pi∈Pcover,再得到覆盖矩阵,记为Cover,如式(2)所示:
Figure BDA0002376881200000021
其中,覆盖矩阵的行表示执行被测程序得到的m条覆盖路径P1,P2,…,Pm,列表示路径中的n个关键点N1,N2,…,Nn
根据覆盖矩阵Cover,得到覆盖关键点Nj的路径数记为Sj,如式(3)所示:
Figure BDA0002376881200000022
被测程序的关键点概率G(Nj),表示如式(4)所示:
Figure BDA0002376881200000031
由式(4)可知,关键点被易覆盖路径覆盖的次数越多,关键点概率越高,表示该关键点越容易被覆盖。
进一步地,步骤二中的所述个体贡献度的计算步骤如下:
个体数为m的种群中的个体li(1≤i≤m),对于进化生成覆盖目标路径集Ptar={P1,P2,P3,…,Pk}的目标路径Pk(1≤k≤n)的测试数据所做出的贡献,即为个体li对应的覆盖路径P(li)与目标路径Pk相同关键点的关键点概率之和,记为Con(li,Pk);
根据关键点概率,将个体的贡献度Con(li,Pk)表达成如式(5)所示:
Figure BDA0002376881200000032
其中,e为自然底数,Nj∈(P(li)∩Pk),G(Nj)为Nj的关键点概率;
在多种群遗传算法进化过程中,一个关键点的关键点概率越高,则该关键点越容易被易覆盖路径覆盖;当个体li对应的覆盖路径P(li)与目标路径Pk相同关键点的关键点概率越高,表示该个体对于生成难覆盖的目标路径所能做出的贡献越低;则关键点概率与个体贡献度之间的关系成反比。
进一步地,步骤三中的所述适应度函数的计算步骤如下:
个体数为m的种群中的个体li(1≤i≤m)的适应度函数由其层接近度、分支距离及个体贡献度组成的,记为F(li);
个体li的层接近度为li对应覆盖路径P(li)与目标路径集Ptar={P1,P2,P3,…,Pn}中的目标路径Pj(1≤j≤n)相同的关键点个数,除以路径Pj的关键点数,记为approach_level(li,Pj);个体li的分支距离参考已有的分支谓词的分支距离计算函数及复合谓词的计算方法,记为branch_distance(li,Pj);为了权衡分支距离与层接近度的大小,并统一为最大化运算,将分支距离规范化表示为
Figure BDA0002376881200000034
个体li对于目标路径Pj的贡献度Con(li,Pj)作为适应度函数的权重;适应度函数F(li)表达成如式(8)所示:
Figure BDA0002376881200000033
对于目标路径集Ptar={P1,P2,…,Pk}中的每条路径Pj(1≤j≤k),对被测程序输入一组测试数据lj=(sj1,sj2,…,sjm)能够覆盖路径Pj时,目标函数fj=F(lj)取得最大值;多路径覆盖问题要求寻找至少k个测试数据,使其能够分别覆盖这k个目标路径,则问题转化成求解f1,f2,…,fk最大值的优化问题,f1,f2,…,fk最大值的优化如式(9)所示:
Figure BDA0002376881200000035
其中,Pj∈Ptar
各个目标函数都对应一条目标路径,目标函数之间相互独立,对于每个目标函数对应于一组测试数据;多路径覆盖问题的最终数学模型表达式如式(10)所示:
Figure BDA0002376881200000041
在式(10)中,最终数学模型由k个函数构成,每个函数对应一个优化问题,每个优化问题对应一个覆盖目标路径的测试数据。
进一步地,步骤三中的所述个体信息共享的具体步骤如下:
对于种群集pop={pop1,pop2,…,popn},第i(1≤i≤n)个子种群popi={li1,li2,…,lim}中的个体lij(1≤j≤m),首先判定个体lij(1≤j≤m)是否为对应适应度函数max(Fi)的最优解,然后判断个体lij(1≤j≤m)是否为其它子种群对应适应度函数max(Fk)(1≤k≤n且k≠i)的最优解,在判断个体lij(1≤j≤m)是否为max(Fk)的最优解时,只需判断个体lij穿越的路径P(lij)是否为目标路径Pk,不需要计算Fk(lij),即个体lij(1≤j≤m)不参与子种群popk的进化过程,个体不在多个子种群间进行迁移,只进行信息共享。
进一步地,步骤三中的所述路径相似度的计算步骤如下:
目标路径集Ptar={P1,P2,P3,…,Pn}中的目标路径Pj(1≤j≤n)与目标路径Pk(1≤k≤n且k≠j)相同的关键点个数,与路径Pj,Pk的最大关键点个数之比,记为Pro(Pj,Pk);
统计目标路径Pj与目标路径Pk关键点异同情况,如式(6)所示:
Figure BDA0002376881200000042
其中,Nji为路径Pj的第i个关键点,Nki是为路径Pk的第i个关键点;
根据路径相同序列长度,可以得到路径相似度Pro(Pj,Pk),如式(7)所示:
Figure BDA0002376881200000043
其中,len(Pj)表示路径Pj的关键点个数,len(Pk)表示路径Pk的关键点个数,max(len(Pj),len(Pk))表示路径Pj及路径Pk较大关键点个数,max(len(Pj),len(Pk))表示路径Pj及路径Pk较小关键点个数。
进一步地,步骤四中的所述多路径覆盖测试数据生成的具体步骤如下:
步骤4-1,对被测程序进行插桩处理,初始化参数,包括子种群数n,子种群中个体数m,终止代数,种群进化需要的选择、交叉和变异概率值等,并采用二进制格式编码个体;
步骤4-2,完成改进的多种群进化;
步骤4-3,若目标路径P被全部覆盖,则表明算法完成任务,终止程序执行,或种群进化代数超出阈值。
进一步地,步骤4-2中的所述改进的多种群进化的具体步骤如下:
步骤4-2-1,对任意属于排序后的目标路径集Ptar={P1,P2,P3,…,Pn}的目标路径Pi,随机生成个体数为m的子种群popi,对第i个种群popi,计算该种群中个体覆盖第i条路径的适应度值的最大值max(Fi(ini))。如果存在个体的适应度值达到最大值,说明该个体覆盖目标路径Pi,将Pi从目标路径集中移除,若不是则对该种群执行选择、交叉、变异等遗传操作;
步骤4-2-2,popi中个体除了判定是否是yi=max(Fi(ini))的最优解,还需要判定是否是yk(k≠i)的最优解,如果popi中个体能够覆盖第k条目标路径,则popk终止;
步骤4-2-3,当i≠n时,popi需要继续对与该子种群对应的目标路径Pi的相似路径尝试覆盖,如果找到覆盖第j(j≠i&j>i)条路径的个体,将popj及路径Pj移除,直到完成尝试对所有相似目标路径覆盖后,终止popi的执行。
以及,一种结合关键点概率与路径相似度的多路径覆盖的系统,其用于实现如上任一项所述的结合关键点概率与路径相似度的多路径覆盖方法,其特征在于,该系统包括:
关键点路径获取模块,用于将理论路径分类为易覆盖路径、难覆盖路径和不可达路径,并根据易覆盖路径的计算路径中的关键点概率;
计算关键点概率和个体对生成覆盖目标路径测试数据贡献度模块,首先利用个体贡献度作为适应度函数权重,调整多种群遗传算法的适应度函数,并根据关键点概率对目标路径进行排序,在此后的模块中,应当优先执行排序后优先级高的目标路径对应的子种群;
生成覆盖目标路径的测试数据模块,用于利用个体信息共享策略,实现各子种群之间的信息交互,并在子种群覆盖其目标路径后,仍继续尝试覆盖与该目标路径相似度高的其它目标路径;
多路径覆盖测试数据生成模块,用于利用改进的多种群遗传算法,对选出的多条目标路径,求解覆盖这些路径的测试数据。
进一步地,所述关键点包括分支关键点、分支子关键点、普通关键点、起始关键点s及终止关键点e,分支关键点对应控制流图中有两个直接后继节点的节点;分支关键点的两个直接后继节点为分支子关键点;普通关键点既是分支关键点,也是其它分支关键点的分支子关键点;所述关键点路径采用被测程序的分支子关键点进行描述:关键点路径P={s,N,e},其中N={N1,N2,…,Nn}为分支子关键点集合,s为起始关键点,e为终止关键点;所述关键点路径表达式是将关键点图中所有关键点用数学运算符连接起来的表达式,其中,兄弟关键点之间表示为相加的“或”关系,普通关键点与其分支子关键点之间表示为相乘的“与”关系。
本方案提出一种通过个体对生成测试数据的贡献度判断其优劣程度,并设计相应的适应度函数,利用多种群遗传算法来实现多路径覆盖测试数据生成的策略,以提升多路径覆盖测试数据生成的效率。实验表明本软件所提出的策略是有效的,其主要贡献包括以下几点:
1)划分理论路径,起到对目标路径预处理的作用。
将路径划分为不可达路径、易覆盖路径及难覆盖路径。检测出被测程序的不可达路径,避免种群进化过程中因尝试覆盖不可达路径而浪费不必要的资源,使资源得到充分利用;对于使用随机法就能轻易覆盖的易覆盖路径,没有必要使用遗传算法进化生成,只有将筛选出的难覆盖路径作为多种群遗传算法需要覆盖的目标路径,才有价值。
2)改进适应度函数,提高测试数据生成效率。
使用随机法生成部分测试数据集,将该测试数据集作为输入,运行被测程序,得到易覆盖路径,统计易覆盖路径中的关键点概率,根据此概率计算个体贡献,将贡献度作为适应度函数的权重,改进适应度函数。这样可以使得贡献度较高的优秀个体具有较好的适应度,提高了遗传算法生成测试数据的效率。使用易覆盖路径求解关键点概率,针对不可达路径及难覆盖路径数量非常多或者非常少的程序,都是非常有利的,既可以避免关键点概率的计算资源消耗过大,也可以解决统计关键点概率可用的有效数据太少问题。
3)优化多种群遗传算法,用以快速生成测试数据。
将多种群遗传算法进行优化,用于求解路径覆盖测试数据生成问题。通过对目标路径进行排序,优先尝试执行能覆盖排序后优先级高的目标路径的子种群,使进化过程中产生的个体信息,启发之后执行的子种群,并且更早地减少子种群数,释放其占用的资源,可使算法变得更高效;同时,改进多种群遗传算法的个体信息共享策略,子种群在覆盖该种群目标路径之后,不立即终止,让其继续尝试覆盖相似目标路径,这可以充分利用种群进化中的个体信息,同时也能减少不必要的尝试带来的时间消耗。
上述结合关键点概率与路径相似度的多路径覆盖方法及系统中,首先,将理论路径划分成易覆盖、难覆盖及不可达路径。其次,通过易覆盖路径统计关键点概率,依此概率计算个体对生成测试数据的贡献度,并利用贡献度改进适应度函数,同时根据关键点概率对目标路径进行排序。然后,使用多种群遗传算法生成覆盖目标路径的测试数据,在进化过程中子种群覆盖当前目标路径后,继续尝试覆盖此目标路径的相似路径。最后,采用改进的多种群遗传算法,对选出的多条目标路径,求解覆盖这些路径的测试数据。本方案提出一种结合关键点概率与路径相似度的多路径覆盖策略,根据关键点概率设计适应度函数,保护优秀个体,同时进一步完善个体信息共享策略,既合理利用种群进化过程中的个体资源,又避免在子种群进化过程中浪费过多的时间,从而有效地提高了测试数据进化生成的效率。
附图说明
图1是本发明实施例的结合关键点概率与路径相似度的多路径覆盖方法及系统的示例程序控制流图。
图2是本发明实施例的结合关键点概率与路径相似度的多路径覆盖方法及系统的示例程序关键点图。
图3是本发明实施例的结合关键点概率与路径相似度的多路径覆盖方法及系统的个体信息共享结构示意图。
图4是本发明实施例的结合关键点概率与路径相似度的多路径覆盖方法及系统的多路径覆盖策略总体框架图。
具体实施方式
本实施例以结合关键点概率与路径相似度的多路径覆盖方法为例,以下将结合具体实施例和附图对本发明进行详细说明。
请参阅图1、图2、图3和图4,示出本发明实施例提供的一种结合关键点概率与路径相似度的多路径覆盖方法及系统。
利用多种群遗传算法解决多路径覆盖问题,是测试数据自动生成领域一个重要的研究方向。为提高多路径覆盖测试数据自动生成的效率,提出一种将关键点概率和路径相似度相结合的多路径覆盖策略。首先,将理论路径划分成易覆盖、难覆盖及不可达路径。然后,通过易覆盖路径统计关键点概率,依此概率计算个体对生成测试数据的贡献度,并利用贡献度改进适应度函数,同时根据关键点概率对目标路径进行排序。最后,使用多种群遗传算法生成覆盖目标路径的测试数据,在进化过程中子种群覆盖当前目标路径后,继续尝试覆盖此目标路径的相似路径。实验结果表明,该方法能有效地提高多路径覆盖测试数据生成的效率。这里具体讲解本软件的结合关键点概率与路径相似度的多路径覆盖系统涉及到的技术细节。
1相关定义
为便于理解,先定义本软件用到的相关概念,包括关键点路径、关键点概率、个体贡献度、路径相似度、个体共享策略等。
1.1关键点路径及其表示
将程序转化成更加直观的图形结构,再用形式化语言对被测程序的路径进行描述,其详细定义如下。
定义1.控制流图.程序结构的一种图形表示形式,可描述为G=(V,L,s,e)。其中,V={v1,v2,…,vn}是节点集合,vi(1≤i≤n)表示图中的节点,对应程序中的语句。L是节点的边集,lij=(vi,vj)∈L表示图中由节点vi到vj(1≤j≤n)的边,对应程序语句的流向。s和e分别是控制流图的起点和终点。
定义2.关键点图.由控制流图转化而来,其转化规则为:控制流图中的分支节点,对应在关键点图中,分支之后一定归结于某一节点;当分支节点的真假分支都有可执行语句,则这两个分支中的节点是关键点,但当真假分支中只有一个分支有可执行语句,则在没有可执行语句的分支中插入一个新的关键点;循环节点分解为若干分支关键点。
一个示例程序的控制流图如图1所示,其对应的关键点图如图2所示。
定义3.关键点.关键点图中的节点,包括分支关键点、分支子关键点、普通关键点、起始关键点s及终止关键点e。分支关键点对应控制流图中有两个直接后继节点的节点;分支关键点的两个直接后继节点为分支子关键点;普通关键点既是分支关键点,也是其它分支关键点的分支子关键点,是一种特殊的分支子关键点。
定义4.关键点路径.为约简路径,关键点路径仅采用被测程序的分支子关键点进行描述:关键点路径P={s,N,e},其中N={N1,N2,…,Nn}为分支子关键点集合,s是起始关键点,e是终止关键点。
定义5.关键点路径表达式.将关键点图中所有关键点用数学运算符连接起来的表达式。其中,兄弟关键点之间表示为相加的“或”关系,普通关键点与其分支子关键点之间表示为相乘的“与”关系。
由于分支子关键点成对出现,关键点路径表示方法有利于快速判断多条路径是否为相似路径,便于求解路径相似度。且对于分支中执行语句特别多的被测程序,关键点路径比基于控制流图描述的路径要简洁的多,有利于加快测试数据生成速度。
1.2关键点概率
对于路径中的关键点,为判断其被覆盖的难易程度,引入关键点概率的概念,关键点概率详细定义如下。
定义6.关键点概率.对被测程序输入m组测试数据in=(l1,l2,…,lm),其中li(1≤i≤m)为一组输入向量,即个体,可以得到m条覆盖路径集Pcover={P1,P2,…,Pm},程序中每个分支子关键点Nj(1≤j≤n)被路径覆盖的概率,记为G(Nj)。
利用随机生成的测试数据集,及其对应的易覆盖路径,统计易覆盖路径集中的关键点被路径覆盖的情况,如式(1)所示。
Figure BDA0002376881200000081
其中,Pi∈Pcover,再得到覆盖矩阵,记为Cover,如式(2)所示。
N1 … Nn
Figure BDA0002376881200000091
其中,覆盖矩阵的行表示执行被测程序得到的m条覆盖路径P1,P2,…,Pm,列表示路径中的n个关键点N1,N2,…,Nn
根据覆盖矩阵Cover,得到覆盖关键点Nj的路径数记为Sj,如式(3)所示。
Figure BDA0002376881200000092
被测程序的关键点概率G(Nj),可以表示成如式(4)所示。
Figure BDA0002376881200000093
由式(4)可知,关键点被易覆盖路径覆盖的次数越多,关键点概率越高,说明该关键点越容易被覆盖。我们首先排除起始关键点和终止关键点,仅计算关键点路径中的分支子关键点被覆盖的概率,这可大幅减少关键点概率的计算量。
1.3个体贡献度
为了对个体的优劣程度进行判定,考虑在算法进化过程中是否需要保留其基因,故需计算个体的贡献度,其详细定义如下。
定义7.个体贡献度.个体数为m的种群中的个体li(1≤i≤m),对于进化生成覆盖目标路径集Ptar={P1,P2,P3,…,Pk}的目标路径Pk(1≤k≤n)的测试数据所做出的贡献,即为个体li对应的覆盖路径P(li)与目标路径Pk相同关键点的关键点概率之和,记为Con(li,Pk)。
根据关键点概率,本软件将个体的贡献度Con(li,Pk)表达成如式(5)所示。
Figure BDA0002376881200000094
其中,e为自然底数,Nj∈(P(li)∩Pk),G(Nj)为Nj的关键点概率(见式(4))。
在多种群遗传算法进化过程中,某关键点概率越高,该关键点越容易被易覆盖路径覆盖。当个体li对应的覆盖路径P(li)与目标路径Pk相同关键点的关键点概率越高,说明该个体对于生成难覆盖的目标路径所能做出的贡献越低。因此,关键点概率与个体贡献度之间的关系成反比。
1.4个体信息共享
在多种群遗传算法进化过程中,子种群进行交互的方式,常见的有子种群迁移、子种群信息共享等,本策略选择个体信息共享作为子种群交互的方式,其详细定义如下。
定义8.个体信息共享.在多种群遗传算法中,每经历一次操作,不仅判断该种群中个体是否为当前种群中最优的,还继续判断它是否是其它种群问题的解。
对于种群集pop={pop1,pop2,…,popn},第i(1≤i≤n)个子种群popi={li1,li2,…,lim}中的个体lij(1≤j≤m),除了需要判定是否是对应适应度函数max(Fi)的最优解,还需要判断个体是否是其它子种群对应适应度函数max(Fk)(1≤k≤n且k≠i)的最优解,但是判断个体lij是否是max(Fk)的最优解,不需要计算Fk(lij),只需判断个体lij穿越的路径P(lij)是否为目标路径Pk。实际上个体lij不参与子种群popk的进化过程,个体不在多个子种群间进行迁移,只进行信息共享,详细示意图如图3所示。
1.5路径相似度
对个体共享策略进行改进,当种群popi覆盖其对应目标路径后,继续尝试覆盖其目标路径的其它相似路径。为此,引入路径相似度的概念,用以判断两条路径是否相似,其详细定义如下。
定义9.路径相似度.目标路径集Ptar={P1,P2,P3,…,Pn}中的目标路径Pj(1≤j≤n)与目标路径Pk(1≤k≤n且k≠j)相同的关键点个数,与路径Pj,Pk的最大关键点个数之比,记为Pro(Pj,Pk)。
统计目标路径Pj与目标路径Pk关键点异同情况,如式(6)所示。
Figure BDA0002376881200000101
其中,Nji为路径Pj的第i个关键点,Nki是为路径Pk的第i个关键点。
根据路径相同序列长度,可以得到路径相似度Pro(Pj,Pk),如式(7)所示。
Figure BDA0002376881200000102
其中,len(Pj)表示路径Pj的关键点数,len(Pk)表示路径Pk的关键点数,max(len(Pj),len(Pk))表示路径Pj及路径Pk较大关键点数,max(len(Pj),len(Pk))表示路径Pj及路径Pk较小关键点数。2关键点概率与路径相似度相结合的多路径覆盖
这里给出一种结合关键点概率与路径相似度的多路径覆盖策略。首先,对理论路径划分,确定目标路径;其次,根据个体贡献度,调整适应度函数,确定多路径覆盖问题的数学模型;然后,根据关键点概率对目标路径进行排序,并求解目标路径之间的相似度;最后,改进个体信息共享策略,利用多种群遗传算法生成测试数据。多路径覆盖策略总体框架如图4所示。
2.1理论路径划分
为提高多路径覆盖测试数据的生成效率,先要对被测程序的理论路径进行划分,划分为不可达路径、易覆盖路径、难覆盖路径,再对不同类型的路径进行不同的处理。检测出被测程序的不可达路径,避免种群进化过程中因尝试覆盖不可达路径而浪费不必要的资源;对于使用随机法生成测试数据就能覆盖的易覆盖路径,没有必要使用遗传算法进化生成,因此多种群遗传算法的目标路径应该选择难覆盖路径。
随机生成测试数据集,结合理论路径,得到测试数据对路径的覆盖情况,被覆盖的路径定义为易覆盖路径,未被覆盖的理论路径先使用不可达路径自动检测模型,检测出不可达路径,剩余路径即可定义为难覆盖路径。具体过程见算法1。
Figure BDA0002376881200000111
根据生成的易覆盖路径,计算路径中关键点的关键点概率,将难覆盖路径作为目标路径,生成覆盖难覆盖路径的测试数据。
2.2适应度函数设计
针对路径覆盖的测试数据进化生成,适应度函数的设计方法主要有3种:分支距离、层接近度以及两者相结合的方法。本软件采用将分支距离与层接近度结合的方法设计适应度函数。
定义10.适应度函数.个体数为m的种群中的个体li(1≤i≤m)的适应度函数由其层接近度、分支距离及个体贡献度组成的,记为F(li)。
个体li的层接近度为,li对应覆盖路径P(li)与目标路径集Ptar={P1,P2,P3,…,Pn}中的目标路径Pj(1≤j≤n)相同的关键点个数,除以路径Pj的关键点数,记为approach_level(li,Pj)。个体li的分支距离参考已有的分支谓词的分支距离计算函数及复合谓词的计算方法,记为branch_distance(li,Pj)。为了权衡分支距离与层接近度的大小,并统一为最大化运算,将分支距离规范化表示为
Figure BDA0002376881200000123
个体li对于目标路径Pj的贡献度Con(li,Pj)(见式(5))作为适应度函数的权重。可将适应度函数F(li)表达成如式(8)所示。
Figure BDA0002376881200000121
对于目标路径集Ptar={P1,P2,…,Pk}中的每条路径Pj(1≤j≤k),对被测程序输入一组测试数据lj=(sj1,sj2,…,sjm)能够覆盖路径Pj时,目标函数fj=F(lj)取得最大值。多路径覆盖问题要求寻找至少k个测试数据,使其能够分别覆盖这k个目标路径,则问题转化成求解f1,f2,…,fk最大值的优化问题,即式(9)。
Figure BDA0002376881200000124
其中,Pj∈Ptar
各个目标函数都对应一条目标路径,目标函数之间相互独立,最终要求对于每个目标函数能够找到其对应的一组测试数据。因此,多路径覆盖问题的最终数学模型可表达成如式(10)所示。
Figure BDA0002376881200000122
在式(10)中,最终模型由k个函数构成,每个函数对应一个优化问题,每个优化问题对应一个覆盖目标路径的测试数据。因为每个子函数都相互独立,所以最终需要求解的问题是,找到对应每个子函数的解,最后形成一个包含多个解的解集合。
2.3目标路径排序
在利用多种群遗传算法生成测试数据之前,先根据关键点概率对目标路径进行排序。
多种群遗传算法中的种群集pop中的种群数量,随着目标路径集中路径被覆盖逐步减少。如,当第i个子种群popi覆盖第k条目标路径Pk时,就将路径Pk对应的子种群popk从种群集pop中移除。对于多种群遗传算法,越早减少子种群及目标路径的数量,使被占用的资源越早得到释放,算法的效率就越高。因此,我们先对目标路径进行排序,让能使目标路径更易覆盖的子种群优先执行。
目标路径的优先级为路径中所有关键点概率(计算方法见式(4))的均值,优先级越大,说明该目标路径相对容易被覆盖,应当优先被执行。目标路径优先级判定的详细过程见算法2。
Figure BDA0002376881200000131
2.4目标路径相似度计算
这里对多种群遗传算法进行了改进,充分利用子种群进化过程中的个体资源,同时节约了进化过程所用的时间。在种群遗传算法进化过程中,当子种群popi覆盖当前目标路径Pi后,并不是立刻终止子种群popi,而是让子种群popi继续尝试覆盖目标路径Pi的相似路径。
接下来,计算目标路径之间的相似度(计算方法见式(7)),当路径相似度Pro(Pj,Pk)大于给定阈值T时,定义目标路径Pj与Pk相似。因基于关键点表达的路径中,分支子关键点都是成对存在的,便于计算路径的相似度,以确定相似路径,具体过程如算法3所述。
Figure BDA0002376881200000141
Figure BDA0002376881200000151
2.5多路径覆盖测试数据进化生成
经过上面几节的处理,最后采用改进的多种群遗传算法,对选出的多条目标路径,求解覆盖这些路径的测试数据。
首先,对被测程序进行插桩处理,初始化参数,包括子种群数(目标路径集中目标路径数)n,子种群中个体数m,终止代数,种群进化需要的选择、交叉和变异概率值等,并采用二进制格式编码个体。
其次,多种群进化过程的具体步骤又包括:①对任意属于排序后的目标路径集Ptar={P1,P2,P3,…,Pn}的目标路径Pi,随机生成个体数为m的子种群popi,对第i个种群popi,计算该种群中个体覆盖第i条路径的适应度值的最大值max(Fi(ini))。如果存在个体的适应度值达到最大值,说明该个体覆盖目标路径Pi,将Pi从目标路径集中移除,若不是则对该种群执行选择、交叉、变异等遗传操作。②popi中个体除了判定是否是yi=max(Fi(ini))的最优解,还需要判定是否是yk(k≠i)的最优解,如果popi中个体能够覆盖第k条目标路径,则popk终止。③当i≠n时,popi需要继续对与该子种群对应的目标路径Pi的相似路径尝试覆盖,如果找到覆盖第j(j≠i&j>i)条路径的个体,将popj及路径Pj移除,直到完成尝试对所有相似目标路径覆盖后,终止popi的执行。
最后,若目标路径P被全部覆盖,则表明算法完成任务,终止程序执行,或种群进化代数超出阈值。
具体过程如算法4所述。
Figure BDA0002376881200000152
Figure BDA0002376881200000161
Figure BDA0002376881200000171
至此,本软件已经对结合关键点概率与路径相似度的多路径覆盖策略进行了详细说明和分析。
以及,一种结合关键点概率与路径相似度的多路径覆盖的系统,其用于实现如上任一项所述的结合关键点概率与路径相似度的多路径覆盖方法,该系统包括:
关键点路径获取模块,用于将理论路径分类为易覆盖路径、难覆盖路径和不可达路径,并根据易覆盖路径的计算路径中的关键点概率;
计算关键点概率和个体对生成覆盖目标路径测试数据贡献度模块,首先利用个体贡献度作为适应度函数权重,调整多种群遗传算法的适应度函数,并根据关键点概率对目标路径进行排序,排序后优先级高的目标路径对应的子种群在测试数据生成过程中优先执行;
生成覆盖目标路径的测试数据模块,用于利用个体信息共享策略,实现各子种群之间的信息交互,并在子种群覆盖其目标路径后,仍继续尝试覆盖与该目标路径相似度高的其它目标路径;
多路径覆盖测试数据生成模块,用于利用改进的多种群遗传算法,对选出的多条目标路径,求解覆盖这些路径的测试数据。
进一步地,所述关键点包括分支关键点、分支子关键点、普通关键点、起始关键点s及终止关键点e,分支关键点对应控制流图中有两个直接后继节点的节点;分支关键点的两个直接后继节点为分支子关键点;普通关键点既是分支关键点,也是其它分支关键点的分支子关键点;所述关键点路径采用被测程序的分支子关键点进行描述:关键点路径P={s,N,e},其中N={N1,N2,…,Nn}为分支子关键点集合,s为起始关键点,e为终止关键点;所述关键点路径表达式是将关键点图中所有关键点用数学运算符连接起来的表达式,其中,兄弟关键点之间表示为相加的“或”关系,普通关键点与其分支子关键点之间表示为相乘的“与”关系。
本方案提出一种通过个体对生成测试数据的贡献度判断其优劣程度,并设计相应的适应度函数,利用多种群遗传算法来实现多路径覆盖测试数据生成的策略,以提升多路径覆盖测试数据生成的效率。实验表明本软件所提出的策略是有效的,其主要贡献包括以下几点:
1)划分理论路径,起到对目标路径预处理的作用。
将路径划分为不可达路径、易覆盖路径及难覆盖路径。检测出被测程序的不可达路径,避免种群进化过程中因尝试覆盖不可达路径而浪费不必要的资源,使资源得到充分利用;对于使用随机法就能轻易覆盖的易覆盖路径,没有必要使用遗传算法进化生成,只有将筛选出的难覆盖路径作为多种群遗传算法需要覆盖的目标路径,才有价值。
2)改进适应度函数,提高测试数据生成效率。
使用随机法生成部分测试数据集,将该测试数据集作为输入,运行被测程序,得到易覆盖路径,统计易覆盖路径中的关键点概率,根据此概率计算个体贡献,将贡献度作为适应度函数的权重,改进适应度函数。这样可以使得贡献度较高的优秀个体具有较好的适应度,提高了遗传算法生成测试数据的效率。使用易覆盖路径求解关键点概率,针对不可达路径及难覆盖路径数量非常多或者非常少的程序,都是非常有利的,既可以避免关键点概率的计算资源消耗过大,也可以解决统计关键点概率可用的有效数据太少问题。
3)优化多种群遗传算法,用以快速生成测试数据。
将多种群遗传算法进行优化,用于求解路径覆盖测试数据生成问题。通过对目标路径进行排序,优先尝试执行能覆盖排序后优先级高的目标路径的子种群,使进化过程中产生的个体信息,启发之后执行的子种群,并且更早地减少子种群数,释放其占用的资源,可使算法变得更高效;同时,改进多种群遗传算法的个体信息共享策略,子种群在覆盖该种群目标路径之后,不立即终止,让其继续尝试覆盖相似目标路径,这可以充分利用种群进化中的个体信息,同时也能减少不必要的尝试带来的时间消耗。
上述结合关键点概率与路径相似度的多路径覆盖方法及系统中,首先,将理论路径划分成易覆盖、难覆盖及不可达路径。其次,通过易覆盖路径统计关键点概率,依此概率计算个体对生成测试数据的贡献度,并利用贡献度改进适应度函数,同时根据关键点概率对目标路径进行排序。然后,使用多种群遗传算法生成覆盖目标路径的测试数据,在进化过程中子种群覆盖当前目标路径后,继续尝试覆盖此目标路径的相似路径。最后,采用改进的多种群遗传算法,对选出的多条目标路径,求解覆盖这些路径的测试数据。本方案提出一种结合关键点概率与路径相似度的多路径覆盖策略,根据关键点概率设计适应度函数,保护优秀个体,同时进一步完善个体信息共享策略,既合理利用种群进化过程中的个体资源,又避免在子种群进化过程中浪费过多的时间,从而有效地提高了测试数据进化生成的效率。
需要说明的是,以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种结合关键点概率与路径相似度的多路径覆盖方法,其特征在于,包括以下步骤:
步骤一,基于关键点路径获取被测程序的理论路径;随机生成测试数据集,运行被测程序,得到该数据集对应的覆盖路径并定义为易覆盖路径;通过不可达路径自动检测模型探测到的路径,定义为不可达路径;将剩余理论路径,定义为难覆盖路径;根据生成的易覆盖路径,计算路径中关键点的关键点概率,将难覆盖路径作为目标路径,生成覆盖难覆盖路径的测试数据;
步骤二,统计易覆盖路径中的关键点被覆盖情况,计算关键点概率以及个体对生成覆盖目标路径测试数据的贡献度;将个体贡献度作为适应度函数权重,调整多种群遗传算法的适应度函数;根据关键点概率对目标路径进行排序,排序后优先级高的目标路径对应的子种群在测试数据生成过程中优先执行;
步骤三,利用多种群遗传算法生成覆盖目标路径的测试数据;采用个体信息共享策略,实现各子种群之间的信息交互,但各子种群的个体不参与其它子种群的进化;子种群覆盖其目标路径后,继续尝试覆盖与该目标路径相似度高的其它目标路径,以提高种群中的个体信息的利用率;
步骤四,多路径覆盖测试数据生成;采用改进的多种群遗传算法,对选出的多条目标路径,求解覆盖这些路径的测试数据。
2.如权利要求1所述的结合关键点概率与路径相似度的多路径覆盖方法,其特征在于,步骤一中的所述关键点概率的计算步骤如下:
对被测程序输入m组测试数据in=(l1,l2,…,lm),其中li(1≤i≤m)为一组输入向量,为种群中的个体,得到m条覆盖路径集Pcover={P1,P2,…,Pm},程序中每个分支子关键点Nj(1≤j≤n)被路径覆盖的概率,记为G(Nj);
利用随机生成的测试数据集,及其对应的易覆盖路径,统计易覆盖路径集中的关键点被路径覆盖的情况,如式(1)所示:
Figure FDA0002376881190000011
其中,Pi∈Pcover,再得到覆盖矩阵,记为Cover,如式(2)所示:
Figure FDA0002376881190000012
其中,覆盖矩阵的行表示执行被测程序得到的m条覆盖路径P1,P2,…,Pm,列表示路径中的n个关键点N1,N2,…,Nn
根据覆盖矩阵Cover,得到覆盖关键点Nj的路径数记为Sj,如式(3)所示:
Figure FDA0002376881190000021
被测程序的关键点概率G(Nj),表示如式(4)所示:
Figure FDA0002376881190000022
由式(4)可知,关键点被易覆盖路径覆盖的次数越多,关键点概率越高,表示该关键点越容易被覆盖。
3.如权利要求2所述的结合关键点概率与路径相似度的多路径覆盖方法,其特征在于,步骤二中的所述个体贡献度的计算步骤如下:
个体数为m的种群中的个体li(1≤i≤m),对于进化生成覆盖目标路径集Ptar={P1,P2,P3,…,Pk}的目标路径Pk(1≤k≤n)的测试数据所做出的贡献,即为个体li对应的覆盖路径P(li)与目标路径Pk相同关键点的关键点概率之和,记为Con(li,Pk);
根据关键点概率,将个体的贡献度Con(li,Pk)表达成如式(5)所示:
Figure FDA0002376881190000023
其中,e为自然底数,Nj∈(P(li)∩Pk),G(Nj)为Nj的关键点概率;
在多种群遗传算法进化过程中,一个关键点的关键点概率越高,则该关键点越容易被易覆盖路径覆盖;当个体li对应的覆盖路径P(li)与目标路径Pk相同关键点的关键点概率越高,表示该个体对于生成难覆盖的目标路径所能做出的贡献越低;则关键点概率与个体贡献度之间的关系成反比。
4.如权利要求3所述的结合关键点概率与路径相似度的多路径覆盖方法,其特征在于,步骤三中的所述适应度函数的计算步骤如下:
个体数为m的种群中的个体li(1≤i≤m)的适应度函数由其层接近度、分支距离及个体贡献度组成的,记为F(li);
个体li的层接近度为li对应覆盖路径P(li)与目标路径集Ptar={P1,P2,P3,…,Pn}中的目标路径Pj(1≤j≤n)相同的关键点个数,除以路径Pj的关键点数,记为approach_level(li,Pj);个体li的分支距离参考已有的分支谓词的分支距离计算函数及复合谓词的计算方法,记为branch_distance(li,Pj);为了权衡分支距离与层接近度的大小,并统一为最大化运算,将分支距离规范化表示为
Figure FDA0002376881190000024
个体li对于目标路径Pj的贡献度Con(li,Pj)作为适应度函数的权重;适应度函数F(li)表达成如式(8)所示:
Figure FDA0002376881190000031
对于目标路径集Ptar={P1,P2,…,Pk}中的每条路径Pj(1≤j≤k),对被测程序输入一组测试数据lj=(sj1,sj2,…,sjm)能够覆盖路径Pj时,目标函数fj=F(lj)取得最大值;多路径覆盖问题要求寻找至少k个测试数据,使其能够分别覆盖这k个目标路径,则问题转化成求解f1,f2,…,fk最大值的优化问题,f1,f2,…,fk最大值的优化如式(9)所示:
Figure FDA0002376881190000032
其中,Pj∈Ptar
各个目标函数都对应一条目标路径,目标函数之间相互独立,对于每个目标函数对应于一组测试数据;多路径覆盖问题的最终数学模型表达式如式(10)所示:
Figure FDA0002376881190000033
在式(10)中,最终数学模型由k个函数构成,每个函数对应一个优化问题,每个优化问题对应一个覆盖目标路径的测试数据。
5.如权利要求4所述的结合关键点概率与路径相似度的多路径覆盖方法,其特征在于,步骤三中的所述个体信息共享的具体步骤如下:
对于种群集pop={pop1,pop2,…,popn},第i(1≤i≤n)个子种群popi={li1,li2,…,lim}中的个体lij(1≤j≤m),首先判定个体lij(1≤j≤m)是否为对应适应度函数max(Fi)的最优解,然后判断个体lij(1≤j≤m)是否为其它子种群对应适应度函数max(Fk)(1≤k≤n且k≠i)的最优解,在判断个体lij(1≤j≤m)是否为max(Fk)的最优解时,只需判断个体lij穿越的路径P(lij)是否为目标路径Pk,不需要计算Fk(lij),即个体lij(1≤j≤m)不参与子种群popk的进化过程,个体不在多个子种群间进行迁移,只进行信息共享。
6.如权利要求1所述的结合关键点概率与路径相似度的多路径覆盖方法,其特征在于,步骤三中的所述路径相似度的计算步骤如下:
目标路径集Ptar={P1,P2,P3,…,Pn}中的目标路径Pj(1≤j≤n)与目标路径Pk(1≤k≤n且k≠j)相同的关键点个数,与路径Pj,Pk的最大关键点个数之比,记为Pro(Pj,Pk);
统计目标路径Pj与目标路径Pk关键点异同情况,如式(6)所示:
Figure FDA0002376881190000034
其中,Nji为路径Pj的第i个关键点,Nki是为路径Pk的第i个关键点;
根据路径相同序列长度,可以得到路径相似度Pro(Pj,Pk),如式(7)所示:
Figure FDA0002376881190000041
其中,len(Pj)表示路径Pj的关键点个数,len(Pk)表示路径Pk的关键点个数,max(len(Pj),len(Pk))表示路径Pj及路径Pk较大关键点个数,max(len(Pj),len(Pk))表示路径Pj及路径Pk较小关键点个数。
7.如权利要求1所述的结合关键点概率与路径相似度的多路径覆盖方法,其特征在于,步骤四中的所述多路径覆盖测试数据生成的具体步骤如下:
步骤4-1,对被测程序进行插桩处理,初始化参数,包括子种群数n,子种群中个体数m,终止代数,种群进化需要的选择、交叉和变异概率值等,并采用二进制格式编码个体;
步骤4-2,完成改进的多种群进化;
步骤4-3,若目标路径P被全部覆盖,则表明算法完成任务,终止程序执行,或种群进化代数超出阈值。
8.如权利要求7所述的结合关键点概率与路径相似度的多路径覆盖方法,其特征在于,步骤4-2中的所述改进的多种群进化的具体步骤如下:
步骤4-2-1,对任意属于排序后的目标路径集Ptar={P1,P2,P3,…,Pn}的目标路径Pi,随机生成个体数为m的子种群popi,对第i个种群popi,计算该种群中个体覆盖第i条路径的适应度值的最大值max(Fi(ini))。如果存在个体的适应度值达到最大值,说明该个体覆盖目标路径Pi,将Pi从目标路径集中移除,若不是则对该种群执行选择、交叉、变异等遗传操作;
步骤4-2-2,popi中个体除了判定是否是yi=max(Fi(ini))的最优解,还需要判定是否是yk(k≠i)的最优解,如果popi中个体能够覆盖第k条目标路径,则popk终止;
步骤4-2-3,当i≠n时,popi需要继续对与该子种群对应的目标路径Pi的相似路径尝试覆盖,如果找到覆盖第j(j≠i&j>i)条路径的个体,将popj及路径Pj移除,直到完成尝试对所有相似目标路径覆盖后,终止popi的执行。
9.一种结合关键点概率与路径相似度的多路径覆盖的系统,其用于实现如权利要求1-8任一项所述的结合关键点概率与路径相似度的多路径覆盖方法,其特征在于,该系统包括:
关键点路径获取模块,用于将理论路径分类为易覆盖路径、难覆盖路径和不可达路径,并根据易覆盖路径的计算路径中的关键点概率;
计算关键点概率和个体对生成覆盖目标路径测试数据贡献度模块,首先利用个体贡献度作为适应度函数权重,调整多种群遗传算法的适应度函数,并根据关键点概率对目标路径进行排序,在此后的模块中,应当优先执行排序后优先级高的目标路径对应的子种群;
生成覆盖目标路径的测试数据模块,用于利用个体信息共享策略,实现各子种群之间的信息交互,并在子种群覆盖其目标路径后,仍继续尝试覆盖与该目标路径相似度高的其它目标路径;
多路径覆盖测试数据生成模块,用于利用改进的多种群遗传算法,对选出的多条目标路径,求解覆盖这些路径的测试数据。
10.如权利要求9所述的结合关键点概率与路径相似度的多路径覆盖的系统,其特征在于,所述关键点包括分支关键点、分支子关键点、普通关键点、起始关键点s及终止关键点e,分支关键点对应控制流图中有两个直接后继节点的节点;分支关键点的两个直接后继节点为分支子关键点;普通关键点既是分支关键点,也是其它分支关键点的分支子关键点;所述关键点路径采用被测程序的分支子关键点进行描述:关键点路径P={s,N,e},其中N={N1,N2,…,Nn}为分支子关键点集合,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 true CN111240995A (zh) 2020-06-05
CN111240995B 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)

Cited By (7)

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

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070288822A1 (en) * 2006-04-27 2007-12-13 Xijiang Lin Timing-aware test generation and fault simulation
CN103810104A (zh) * 2014-03-04 2014-05-21 中国人民解放军63863部队 一种软件测试用例优化方法及系统
CN106843211A (zh) * 2017-02-07 2017-06-13 东华大学 一种基于改进遗传算法的移动机器人路径规划方法
CN108509335A (zh) * 2018-01-31 2018-09-07 浙江理工大学 基于遗传算法优化的软件测试数据生成方法
CN110083531A (zh) * 2019-04-12 2019-08-02 江西财经大学 改进个体信息共享的多目标路径覆盖测试方法及实现系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070288822A1 (en) * 2006-04-27 2007-12-13 Xijiang Lin Timing-aware test generation and fault simulation
CN103810104A (zh) * 2014-03-04 2014-05-21 中国人民解放军63863部队 一种软件测试用例优化方法及系统
CN106843211A (zh) * 2017-02-07 2017-06-13 东华大学 一种基于改进遗传算法的移动机器人路径规划方法
CN108509335A (zh) * 2018-01-31 2018-09-07 浙江理工大学 基于遗传算法优化的软件测试数据生成方法
CN110083531A (zh) * 2019-04-12 2019-08-02 江西财经大学 改进个体信息共享的多目标路径覆盖测试方法及实现系统

Non-Patent Citations (12)

* Cited by examiner, † Cited by third party
Title
M ZICCARDI 等: "EPC:Extended Path Coverage for Measurement-Based Probabilistic Timing Analysis", 《HTTPS://IEEEXPLORE.IEEE.ORG/ABSTRACT/DOCUMENT/7383590/》 *
M ZICCARDI 等: "EPC:Extended Path Coverage for Measurement-Based Probabilistic Timing Analysis", 《HTTPS://IEEEXPLORE.IEEE.ORG/ABSTRACT/DOCUMENT/7383590/》, 1 November 2015 (2015-11-01), pages 1 - 12 *
MOHAMMAD ALISAADATJOO等: "Test-data generation directed by program path coverage through imperialist competitive algorithm", 《HTTPS://DOI.ORG/10.1016/J.SCICO.2019.102304》 *
MOHAMMAD ALISAADATJOO等: "Test-data generation directed by program path coverage through imperialist competitive algorithm", 《HTTPS://DOI.ORG/10.1016/J.SCICO.2019.102304》, 1 October 2019 (2019-10-01), pages 1 - 19 *
丁蕊等: "基于关键点路径的快速测试用例自动生成方法", 《软件学报》 *
丁蕊等: "基于关键点路径的快速测试用例自动生成方法", 《软件学报》, no. 04, 14 January 2016 (2016-01-14), pages 814 - 827 *
张岩: "路径覆盖测试数据进化生成理论与方法", 《中国博士学位论文全文数据库 信息科技辑》 *
张岩: "路径覆盖测试数据进化生成理论与方法", 《中国博士学位论文全文数据库 信息科技辑》, 15 May 2015 (2015-05-15), pages 138 - 21 *
张岩等: "基于稀有数据扑捉的路径覆盖测试数据进化生成方法", 《计算机学报》 *
张岩等: "基于稀有数据扑捉的路径覆盖测试数据进化生成方法", 《计算机学报》, 15 December 2013 (2013-12-15), pages 2429 - 2440 *
郭紫梦等: "基于果蝇算法的路径覆盖测试用例生成方法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
郭紫梦等: "基于果蝇算法的路径覆盖测试用例生成方法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, 15 August 2018 (2018-08-15), pages 138 - 194 *

Cited By (10)

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

Also Published As

Publication number Publication date
CN111240995B (zh) 2023-07-25

Similar Documents

Publication Publication Date Title
CN111240995A (zh) 结合关键点概率与路径相似度的多路径覆盖方法及系统
CN110083531B (zh) 改进个体信息共享的多目标路径覆盖测试方法及实现系统
CN108509335B (zh) 基于遗传算法优化的软件测试数据生成方法
Martinez-Munoz et al. An analysis of ensemble pruning techniques based on ordered aggregation
CN111401914B (zh) 风险评估模型的训练、风险评估方法及装置
Salama et al. Utilizing multiple pheromones in an ant-based algorithm for continuous-attribute classification rule discovery
CN107908536B (zh) Cpu-gpu异构环境中对gpu应用的性能评估方法及系统
Suri et al. Regression test suite reduction using an hybrid technique based on BCO and genetic algorithm
Zhou et al. Ranking vectors by means of the dominance degree matrix
Bhamidi et al. Change point detection in network models: Preferential attachment and long range dependence
CN112699050A (zh) 一种基于变异体分组的软件测试用例多种群进化生成方法
Xu et al. Graph-based time series edge anomaly detection in smart grid
CN105373424A (zh) 一种基于机器学习的推测多线程划分方法
Santander-Jiménez et al. Multiobjective frog-leaping optimization for the study of ancestral relationships in protein data
US7272583B2 (en) Using supervised classifiers with unsupervised data
Hu et al. An improved genetic algorithm with dynamic neighborhood search for job shop scheduling problem
CN111612164A (zh) 非迭代式大数据半监督学习方法、系统、存储介质及终端
CN116185684A (zh) 一种服务器故障根因分析模型的构建方法及应用
Suresh et al. Evolutionary algorithms for object-oriented test data generation
Barbosa Efficient instantiation techniques in SMT (work in progress)
JP6600858B1 (ja) 貢献度算出システム、貢献度算出装置、貢献度算出方法、貢献度算出プログラム及び貢献度算出プログラムを記憶する記憶媒体
Du et al. OctopusKing: A TCT-aware task scheduling on spark platform
CN113553353A (zh) 一种面向分布式数据挖掘工作流的调度系统
Elomaa et al. Progressive rademacher sampling
Hua A hybrid genetic xk-means++ clustering algorithm with empty cluster reassignment

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