CN109271320B - 一种上位多目标测试用例优先级排序方法 - Google Patents

一种上位多目标测试用例优先级排序方法 Download PDF

Info

Publication number
CN109271320B
CN109271320B CN201811092217.4A CN201811092217A CN109271320B CN 109271320 B CN109271320 B CN 109271320B CN 201811092217 A CN201811092217 A CN 201811092217A CN 109271320 B CN109271320 B CN 109271320B
Authority
CN
China
Prior art keywords
test case
particle
individuals
individual
test
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
CN201811092217.4A
Other languages
English (en)
Other versions
CN109271320A (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.)
Xian University of Posts and Telecommunications
Original Assignee
Xian University of Posts and Telecommunications
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 Xian University of Posts and Telecommunications filed Critical Xian University of Posts and Telecommunications
Publication of CN109271320A publication Critical patent/CN109271320A/zh
Application granted granted Critical
Publication of CN109271320B publication Critical patent/CN109271320B/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
    • 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/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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

针对回归测试中的多目标测试用例优先级排序问题,本发明公开了一种上位多目标测试用例优先级排序方法。该方法首先以测试用例编号有序序列作为粒子编码,测试用例编号序列的集合作为粒子群,随机生成初始种群;以测试用例序列对待测程序的平均分支覆盖率和有效执行时间作为适应度评价函数;然后采用上位交叉的方法产生新个体,使用非支配解集中的粒子作为全局最优粒子;最后,当迭代次数达到最大迭代次数时,非支配解集中的个体就是最优多目标排序结果。与已有的方法相比,本发明提供一种非支配解集分布范围广、适应值更高的多目标测试用例优先级排序方法,本方法有助于在回归测试过程中尽早发现软件缺陷,降低测试成本。

Description

一种上位多目标测试用例优先级排序方法
技术领域
本发明属于软件测试技术领域,尤其是软件回归测试技术领域,具体涉及一种上位多目标测试用例优先级排序方法。
背景技术
在软件演化过程中,测试用例优先级(Test Case Prioritization,TCP)技术作为一种高效实用的回归测试技术,通过将测试用例按照某种测试目标进行排序来获得更高的测试效率,对于提高缺陷的早期检测速率和降低测试成本有重要的意义。随着工业测试要求的不断提高,只针对单一测试目标对测试用例序列进行优化已不能够满足工业测试需求,因为实际测试过程中需考虑多种因素对软件质量的影响,例如测试成本、时间和代码修改等因素,多目标测试用例优先排序问题(Multi-Objective Test CasesPrioritization,MOTCP)是目前回归测试中急需解决的一个重要问题。
多目标测试用例优先级排序问题是目前软件回归测试领域中的一个研究热点,由于在多目标测试用例优先排序中多个目标一般存在冲突关系,为了搜索到多个目标的最优解集,普遍采用的工程方法是将多目标测试用例优先排序问题转化为组合优化问题采用启发式方法解决。Deb Kalyanmoy等提出带精英策略的快速非支配排序遗传算法(Non-dominated Sorting Genetic Algorithm II,NSGA-II)解决多目标优化问题,虽然NSGA-II运行速度快,解集的收敛性较好,但是遗传算法中选择、交叉、变异等操作相对复杂,算法性能不理想。Tyagi Manika等用于求解多目标优化问题的粒子群算法(Multi-ObjectiveParticle Swarm Optimization,MOPSO)解决测试用例优先排序,但MOPSO收敛性不好。陈云飞等为提高粒子在迭代过程中的多样性,参照遗传算法中的交叉操作提出了一种基于PSO的测试用例预优化方法,采用顺序交叉和单点交叉的方法对粒子进行更新。由于测试用例序列中存在上位基因段,上位基因段能表达解的原本性状,对适应值的影响起到决定性作用,本发明针对多目标的测试用例优先排序问题,利用上位交叉方法对粒子群优化算法中速度及位置的更新方式进行重新定义,提出了一种基于上位性的多目标测试用例优先排序方法,提高回归测试效率,有助于尽早发现软件缺陷。
发明内容
在进行软件回归测试时,由于测试成本、时间等多因素的影响,通常有多个测试目标需要被满足,因此一个测试用例排序结果的优劣需要从多个指标来进行评价。在多目标测试用例优先排序中,普遍情况下求得使多个评价指标均达到单目标时的最优化是难以做到的,需要求解问题的非支配解集,但传统的方法得到的非支配解集分布不够广泛,适应值欠佳,因此需要发掘测试用例序列的特性寻找新的高效的多目标测试用例优先级方法。
本发明的技术方案为:一种上位多目标测试用例优先级排序方法,具体包括以下几个步骤:
步骤一:记录回归测试中的各个测试用例的分支覆盖情况和有效执行时间得到测试用例分支覆盖矩阵A和有效执行时间向量V;假设某待测程序有m个分支,用n个测试用例进行测试,若测试用例集用Φ表示,Φ={T1,T2,…,Ti,…,Tn},其中Ti(1≤i≤n)为测试用例集中的第i个测试用例,构造的分支覆盖矩阵A的大小为n×m,有效执行时间向量V的大小为n,待测程序中分支编号的范围是1到m,测试用例编号的范围是1到n,第i个测试用例的有效执行时间为ETi,若第i个测试用例执行中覆盖了第j个分支,则Aij=1,否则Aij=0;
步骤二:编码;针对给定的待测程序和测试用例集,给每一个测试用例一个1到n的编号,测试用例执行优先排序序列就是测试用例编号的一个全排列,个体被编码为一个测试用例编号全排列串,编码的长度为测试用例的个数n;
步骤三:构造适应度函数;选择用平均分支覆盖率(Average Percentage ofBranch Coverage,APBC)和有效执行时间(Effective Execution Time,EET)两个目标作为适应度函数来衡量一个测试用例优先排序序列的优劣;针对任一个体,TBj表示首个覆盖程序中第j个分支的测试用例在该测试用例优先排序序列中所处的位置;执行完序列上的前m'个测试用例时,能够覆盖被测程序中的所有分支,ETr表示执行测试用例优先排序序列中第r个测试用例花费的时间;由此可以构造适应度函数APBC和EET,
Figure GDA0003042040450000031
Figure GDA0003042040450000032
其中TBj可以用分支覆盖矩阵A进行计算,针对被覆盖的第j个分支,在A中查找第一个覆盖到该分支的测试用例在该测试用例序列中所处的次序,那么这个次序就是TBj的数值;
步骤四:随机初始化种群;设定种群规模为N,即种群中包含N个个体,随机初始化各个粒子为测试用例编号的全排列,并作为该粒子的历史最优,随机初始各个粒子的初始速度为一个测试用例编号的全排列,计算各个个体的适应值,根据种群中所有个体之间帕托累关系计算初始种群的非支配解集ARCHIVE,从种群的ARCHIVE中随机取一个粒子作为全局最优粒子,设置最大迭代次数MAX;令迭代次数W=1,开始迭代:
步骤五:采用上位交叉的方法产生新的子个体,选择两个本次没有更新的个体作为父代个体,针对父代个体1和父代个体2,其子代个体1和子代个体2的具体产生过程如下:
1)随机产生两个整数k1、k2作为交叉点,k1,k2∈[0,n-1],其中n为测试用例集中测试用例的数目;
2)将父代个体1上两个交叉点之间的基因直接复制到其对应的子代个体1中,作为该子代个体对应位置上的基因;
3)遍历父代个体2,剔除与父代个体1上两个交叉点之间相同的基因,记剩余基因形成的序列为s1
4)以子代个体1上第一个没有基因的位置作为起始位置,用s1中的基因依次填充子代个体1上没有基因的位置,形成完整的子代个体1;
5)将父代个体2上两个交叉点之间的基因直接复制到其对应的子代个体2中,作为该子代个体对应位置上的基因;
6)遍历父代个体1,剔除与父代个体2上两个交叉点之间的基因相同的基因,记剩余基因形成的序列为s2
7)以子代个体2上第一个没有基因的位置作为起始位置,用s2中的基因依次填充子代个体2上没有基因的位置,形成完整的子代个体2;
步骤六:使用步骤五的上位交叉方法对粒子进行更新,针对上位交叉后产生的两个子代个体,如果两个子个体是帕累托支配关系,则选择支配的子个体作为交叉结果,如果是帕累托非支配关系,则任选一个子个体作为交叉结果;针对第u个粒子,首先对迭代完成后的个体历史最优解pu(k)与全局最优解pg(k)进行上位交叉得到一个表示粒子速度的增量vu'(k+1);然后vu'(k+1)与粒子当前的速度vu(k)进行上位交叉得到粒子更新后的速度vu(k+1);最后,对粒子当前位置xu(k)和更新后的速度vu(k+1)进行上位交叉得到粒子更新后的位置xu(k+1);
步骤七:对于第u个粒子,若当前粒子能支配比该粒子局部最优位置,则将粒子的当前位置作为该粒子的历史最优解;
步骤八:更新当前种群的非支配解集ARCHIVE,将当前粒子和非支配解集ARCHIVE中各个个体进行帕累托支配关系计算,如果当前粒子支配ARCHIVE中某些个体,则用当前粒子替换其支配的ARCHIVE集中支配的个体,如果和当前ARCHIVE中所有个体是非支配关系,则加入ARCHIVE集;
步骤九:全局最优粒子是从非支配解集ARCHIVE随机选择一个粒子作为全局最优粒子;
步骤十:如果当前的迭代次数达到最大迭代次数MAX,则ARCHIVE集中所对应的粒子代表测试用例排序方案就是帕累托最优解集,结束循环;否则,W=W+1,返回步骤五。
本发明有益效果
发明中提出一种上位多目标测试用例优先级排序方法,采用上位交叉进行多目标测试用例优先级排序,上位交叉使得新粒子可以更多得继承当前粒子上的优良性状(序列),提高了求解质量;本方法生成的多目标测试用例优先级排序解集分布范围广、适应值更高,有助于在回归测试过程中尽早发现软件缺陷,降低测试成本。
附图说明
附图1为一种上位多目标测试用例优先级排序方法的流程图。
附图2为多目标测试用例优先级排序不同方法的适应值分布图。
具体实施方式
以JavaScript单元测试框架Jasmine的测试用例优先级排序为例,结合附图1对本发明提出的一种用于回归测试的上位多目标测试用例优先级排序方法的具体实施方式进行说明。
步骤一:针对一个待测程序Jasmine,使用回归测试中已经设计好的24个测试用例作为测试用例集进行测试,Jasmine的源程序有95个分支,将测试用例对待测程序的分支覆盖情况进行记录,得到测试用例对待测程序的分支覆盖信息矩阵A;若测试用例集用Φ表示,Φ={T1,T2,…,Ti,…,Tn},其中Ti(1≤i≤n)为测试用例集中的第i个测试用例,构造的分支覆盖信息矩阵A的大小为24×95,待测程序中分支编号的范围是1到95,测试用例编号的范围是1到24,第i个测试用例的有效执行时间为毫秒单位的时间,例如524ms。若第i个测试用例执行中覆盖了第j个分支,则Aij=1,否则Aij=0;
步骤二:编码;针对给定的待测程序和测试用例集,个体表示一个测试用例优先级排序序列,测试用例优先级排序序列就是测试用例编号所组成的有序序列,即每一个个体被编码为一个有序测试用例编号串,编码的长度为测试用例的个数24,因此编码中包含1至24这24个不重复的自然数,例如,个体可以编码为(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24);
步骤三:构造适应度函数;针对任意一个体,TBi为首个可以覆盖到待测程序中第i个分支Bi的测试用例在该测试用例执行序列中所处的次序。假如执行完序列上的前5个测试用例时,能够覆盖被测程序中的所有分支。由此可以构造适应度函数APBC和EET,
Figure GDA0003042040450000061
其中TBi(1≤i≤95)可以使用分支覆盖信息矩阵A进行计算,针对被覆盖的分支Bi,在A中查找第一个覆盖到该分支的测试用例在该测试用例序列中所处的次序,那么这个次序就是TBi的数值,例如,针对程序中的第二个分支,第一个覆盖到该分支的测试用例在该测试用例序列中所处的次序为5,那么TB2=5;EET表示测试用例优先排序序列首次达到分支全覆盖时执行测试用例的时间总和,例如,某测试用例优先排序序列首次达到分支全覆盖时执行了该序列上前5个测试用例,其执行时间分别为504ms,527ms,517ms,521ms,497ms,那么EET=504+527+517+521+497=2566(ms);
步骤四:随机初始化种群;设定种群规模为150,即种群中包含150个粒子,某次实验中随机初始化的种群中的粒子为(篇幅限制这里只列举了前五个和后五粒子的编码)
(6,1,23,14,15,20,18,19,9,7,16,21,10,4,3,8,13,5,22,17,2,12,11,24),(4,11,5,23,13,2,3,14,7,8,9,10,22,16,12,17,1,15,6,21,18,19,20,24),(20,14,4,8,13,16,18,12,11,5,2,23,10,7,22,1,9,21,19,3,6,15,17,24),(4,12,16,14,23,21,1,3,11,5,10,9,20,22,8,2,7,18,17,13,6,15,19,24),(2,11,16,12,4,10,22,21,7,18,17,23,5,8,9,6,3,13,1,19,14,20,15,24),
…………………
…………………
(11,14,19,5,8,9,12,15,20,13,16,18,6,10,4,23,3,21,7,2,1,22,17,24),(4,3,11,14,1,10,20,5,13,21,18,19,23,22,15,6,12,7,8,17,16,2,9,24),(12,23,19,2,4,6,5,7,9,22,10,17,3,14,8,11,20,13,18,15,1,16,21,24),(13,9,22,8,17,20,7,15,18,10,11,16,6,4,5,21,23,3,2,19,14,12,1,24),(6,7,8,23,16,11,20,14,21,18,15,1,5,3,17,10,4,2,12,9,19,22,13,24),分别计算种群中150个个体的APBC和EET,计算结果为(篇幅限制这里只列举了前五个粒子的计算结果)
<0.7861842105263158,9964>,<0.7949561403508772,10561>,
<0.8081140350877193,10808>,<0.8019736842105264,12182>,
<0.7975877192982457,11643>……,根据种群中所有个体之间帕托累关系,计算得到的初始种群的非支配解集ARCHIVE中包含3个解,分别为
(4,16,10,5,18,15,21,23,14,22,11,1,9,20,8,13,19,7,3,6,12,17,2,24),(19,8,10,13,15,1,21,18,23,6,11,4,7,9,22,20,14,17,16,2,12,3,5,24),(7,2,9,20,19,14,13,4,11,22,18,21,1,12,23,16,5,3,17,15,6,10,8,24),它们对应的APBC和EET计算结果分别为<0.8879385964912281,7167>,
<0.8883771929824562,10132>,<0.8304824561403509,6678>,从种群的ARCHIVE中随机取一个粒子作为全局最优粒子,这里选取
(7,2,9,20,19,14,13,4,11,22,18,21,1,12,23,16,5,3,17,15,6,10,8,24);设置最大迭代次数MAX=100;令迭代次数k=1,开始迭代;
步骤五:采用上位交叉(记作
Figure GDA0003042040450000081
)的方法产生新的子个体,选择两个本次没有更新的个体作为父代个体,针对父代个体1和父代个体2,其子代个体1和子代个体2的具体产生过程如下:假如本次进行更新的两个父代个体分别为(13,9,22,8,17,20,7,15,18,10,11,16,6,4,5,21,23,3,2,19,14,12,1,24),(6,7,8,23,16,11,20,14,21,18,15,1,5,3,17,10,4,2,12,9,19,22,13,24),随机产生两个整数k1、k2作为交叉点,k1,k2∈[0,23],比如产生两个整数分别为1和7,则生成的两个子个体为
(6,9,22,8,17,20,7,23,16,11,14,21,18,15,1,5,3,10,4,2,12,19,13,24),(13,7,8,23,16,11,20,9,22,17,15,18,10,6,4,5,21,3,2,19,14,12,1,24)
步骤六:使用步骤五的上位交叉方法对粒子进行更新,针对上位交叉后产生的两个子代个体,如果两个子个体是帕累托支配关系,则选择支配的子个体作为交叉结果,如果是帕累托非支配关系,则任选一个子个体作为交叉结果。这里计算步骤五中两个子个体的适应值分别为<0.7440789473684211,9653>和<0.7756578947368421,12182>,互为帕累托非支配关系,随机选择第一个子个体作为交叉结果;假如在某次迭代过程中,针对当前种群中某一粒子,其历史最优解pi(k)为
(3,1,13,15,12,17,9,18,8,22,23,2,21,11,16,14,6,5,4,20,7,10,19,24),上次迭代完成后得到的全局最优解pg(k)是
(9,7,8,4,20,21,17,13,11,5,2,1,3,19,6,12,14,23,18,10,16,22,15,24),对pi(k)与pg(k)进行步骤五中的上位交叉操作得到一个表示粒子速度的增量vi'(k+1),为
(9,7,13,8,4,20,21,17,11,5,2,1,3,19,6,12,14,23,18,10,16,22,15,24);然后,该粒子当前的速度vi(k)
(9,12,2,22,16,17,1,11,3,21,8,19,18,20,5,10,23,7,14,6,4,13,15,24),与vi'(k+1)进行步骤五中的上位交叉操作得到粒子更新后的速度vi(k+1),为
(9,12,2,17,1,11,3,21,8,19,20,5,7,6,4,13,14,23,18,10,16,22,15,24);最后,对粒子当前位置xi(k)
(9,12,22,13,17,1,11,2,3,16,21,8,19,18,20,5,10,23,7,14,6,4,15,24),和更新后的速度
(9,12,2,17,1,11,3,21,8,19,20,5,7,6,4,13,14,23,18,10,16,22,15,24)进行上位交叉得到粒子更新后的位置xi(k+1),为
(9,12,17,1,19,20,11,2,3,16,21,8,5,7,6,4,13,14,23,18,10,22,15,24),该粒子适应值为<0.8081140350877193,10724>;
步骤七:对于第i个粒子,若当前粒子能支配该粒子的历史最优位置,则将粒子的当前位置作为该粒子的历史最优位置;步骤六中粒子的历史最优位置是<0.8028508771929824,10956>,被该粒子的新位置支配,因此将粒子的当前位置(9,12,17,1,19,20,11,2,3,16,21,8,5,7,6,4,13,14,23,18,10,22,15,24)作为该粒子的历史最优位置;
步骤八:更新当前种群的非支配解集ARCHIVE,将当前每一个粒子和非支配解集ARCHIVE中各个个体进行帕累托支配关系计算,如果当前粒子支配ARCHIVE中某些个体,则用当前粒子替换其支配的ARCHIVE集中支配的个体,如果和当前ARCHIVE中所有个体是非支配关系,则加入ARCHIVE集;例如,某次迭代后ARCHIVE中包含的4个个体的适应值为
<0.8760964912280702,5935>,
<0.9028508771929825,7448>,
<0.8796052631578948,6068>,
<0.9067982456140351,9258>,当前迭代过程中一通过上位交叉更新后的粒子的适应值为<0.9073489539854868,8472>,该粒子支配原ARCHIVE中适应值为
<0.9067982456140351,9258>的个体,并且它与原ARCHIVE中适应值为
<0.8760964912280702,5935>,
<0.9028508771929825,7448>,
<0.8796052631578948,6068>,
的个体互为非支配解,因此使用该粒子替换<0.9067982456140351,9258>对应的粒子,此时ARCHIVE中个体的适应值更新为
<0.8760964912280702,5935>,
<0.9028508771929825,7448>,
<0.8796052631578948,6068>,
<0.9073489539854868,8472>;接着,当前迭代过程中一通过上位交叉更新后的粒子适应值为<0.9111842105263158,12157>粒子,由于该粒子与上述更新后ARCHIVE中的所有个体互为非支配解,因此将该粒子直接加入ARCHIVE集;
步骤八:全局最优粒子是从非支配解集ARCHIVE随机选择一个粒子作为全局最优粒子;
步骤九:如果当前的迭代次数达到最大迭代次数100,则ARCHIVE集中所对应的粒子代表测试用例排序方案就是帕累托最优解集,结束循环,例如,某次实验中算法迭代100次后,ARCHIVE中的个体为(4,15,21,19,9,13,14,11,8,7,2,16,22,3,17,18,20,10,1,12,5,6,23,24),(21,4,11,8,9,2,19,13,23,17,7,18,16,15,22,14,6,12,3,20,5,1,10,24),(4,21,9,19,13,15,11,8,2,16,18,1,23,10,22,3,17,20,7,12,5,6,14,24),(15,21,19,9,13,4,11,2,16,3,17,20,10,18,14,8,7,22,1,12,5,6,23,24),
对应的适应值分别是
<0.9287280701754387,4850>,
<0.905921052631579,4204>,
<0.9256578947368421,4392>,
<0.9291666666666667,8718>。
通过以上过程可以实现一种用于回归测试的上位多目标测试用例优先级排序方法,针对Jasmine程序的分支覆盖信息,分别将基于单点交叉的多目标测试用例优先级排序方法、基于顺序交叉的多目标测试用例优先级排序方法以及本发明中的方法各执行30次。图2是针对是三种方法,在30次实验中,取每次实验中100次迭代后ARCHIVE中的解集绘制的解的散点图。从图2可以看出,一方面,在有效执行时间相同的前提下,本方法能够普遍得到更高APBC值的排序方案,因此在求解多目标的测试用例优先排序问题时本方法更有效;另一方面,使用本方法得到的排序方案的分布范围较广,给软件测试工程师提供更多的测试方案选择。
实例分析表明,本发明提出的一种用于回归测试的上位多目标测试用例优先级排序方法与基于单点交叉的多目标测试用例优先级排序方法、基于顺序交叉的多目标测试用例优先级排序方法相比,本方法所得排序方案质量好,生成的非支配解集分布范围广,是一种有效的用于回归测试的测试用例优先级排序方法。

Claims (1)

1.一种上位多目标测试用例优先级排序方法,其特征在于包括以下步骤:
步骤一:记录回归测试中的各个测试用例的分支覆盖情况和有效执行时间得到测试用例分支覆盖矩阵A和有效执行时间向量V;假设某待测程序有m个分支,用n个测试用例进行测试,若测试用例集用Φ表示,Φ={T1,T2,…,Ti,…,Tn},其中Ti(1≤i≤n)为测试用例集中的第i个测试用例,构造的分支覆盖矩阵A的大小为n×m,有效执行时间向量V的大小为n,待测程序中分支编号的范围是1到m,测试用例编号的范围是1到n,第i个测试用例的有效执行时间为ETi,若第i个测试用例执行中覆盖了第j个分支,则Aij=1,否则Aij=0;
步骤二:编码;针对给定的待测程序和测试用例集,给每一个测试用例一个1到n的编号,测试用例执行优先排序序列就是测试用例编号的一个全排列,个体被编码为一个测试用例编号全排列串,编码的长度为测试用例的个数n;
步骤三:构造适应度函数;选择用平均分支覆盖率(Average Percentage of BranchCoverage,APBC)和有效执行时间(Effective Execution Time,EET)两个目标作为适应度函数来衡量一个测试用例优先排序序列的优劣;针对任一个体,TBj表示首个覆盖程序中第j个分支的测试用例在该测试用例优先排序序列中所处的位置;执行完序列上的前m'个测试用例时,能够覆盖被测程序中的所有分支,ETr表示执行测试用例优先排序序列中第r个测试用例花费的时间;由此可以构造适应度函数APBC和EET,
Figure FDA0003042040440000011
Figure FDA0003042040440000012
其中TBj可以用分支覆盖矩阵A进行计算,针对被覆盖的第j个分支,在A中查找第一个覆盖到该分支的测试用例在该测试用例序列中所处的次序,那么这个次序就是TBj的数值;
步骤四:随机初始化种群;设定种群规模为N,即种群中包含N个个体,随机初始化各个粒子为测试用例编号的全排列,并作为该粒子的历史最优,随机初始各个粒子的初始速度为一个测试用例编号的全排列,计算各个个体的适应值,根据种群中所有个体之间帕托累关系计算初始种群的非支配解集ARCHIVE,从种群的ARCHIVE中随机取一个粒子作为全局最优粒子,设置最大迭代次数MAX;令迭代次数W=1,开始迭代:
步骤五:采用上位交叉的方法产生新的子个体,选择两个本次没有更新的个体作为父代个体,针对父代个体1和父代个体2,其子代个体1和子代个体2的具体产生过程如下:
1)随机产生两个整数k1、k2作为交叉点,k1,k2∈[0,n-1],其中n为测试用例集中测试用例的数目;
2)将父代个体1上两个交叉点之间的基因直接复制到其对应的子代个体1中,作为该子代个体对应位置上的基因;
3)遍历父代个体2,剔除与父代个体1上两个交叉点之间相同的基因,记剩余基因形成的序列为s1
4)以子代个体1上第一个没有基因的位置作为起始位置,用s1中的基因依次填充子代个体1上没有基因的位置,形成完整的子代个体1;
5)将父代个体2上两个交叉点之间的基因直接复制到其对应的子代个体2中,作为该子代个体对应位置上的基因;
6)遍历父代个体1,剔除与父代个体2上两个交叉点之间的基因相同的基因,记剩余基因形成的序列为s2
7)以子代个体2上第一个没有基因的位置作为起始位置,用s2中的基因依次填充子代个体2上没有基因的位置,形成完整的子代个体2;
步骤六:使用步骤五的上位交叉方法对粒子进行更新,针对上位交叉后产生的两个子代个体,如果两个子个体是帕累托支配关系,则选择支配的子个体作为交叉结果,如果是帕累托非支配关系,则任选一个子个体作为交叉结果;针对第u个粒子,首先对迭代完成后的个体历史最优解pu(k)与全局最优解pg(k)进行上位交叉得到一个表示粒子速度的增量vu'(k+1);然后vu'(k+1)与粒子当前的速度vu(k)进行上位交叉得到粒子更新后的速度vu(k+1);最后,对粒子当前位置xu(k)和更新后的速度vu(k+1)进行上位交叉得到粒子更新后的位置xu(k+1);
步骤七:对于第u个粒子,若当前粒子能支配比该粒子局部最优位置,则将粒子的当前位置作为该粒子的历史最优解;
步骤八:更新当前种群的非支配解集ARCHIVE,将当前粒子和非支配解集ARCHIVE中各个个体进行帕累托支配关系计算,如果当前粒子支配ARCHIVE中某些个体,则用当前粒子替换其支配的ARCHIVE集中支配的个体,如果和当前ARCHIVE中所有个体是非支配关系,则加入ARCHIVE集;
步骤九:全局最优粒子是从非支配解集ARCHIVE随机选择一个粒子作为全局最优粒子;
步骤十:如果当前的迭代次数达到最大迭代次数MAX,则ARCHIVE集中所对应的粒子代表测试用例排序方案就是帕累托最优解集,结束循环;否则,W=W+1,返回步骤五。
CN201811092217.4A 2017-11-07 2018-09-19 一种上位多目标测试用例优先级排序方法 Active CN109271320B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2017110862643 2017-11-07
CN201711086264 2017-11-07

Publications (2)

Publication Number Publication Date
CN109271320A CN109271320A (zh) 2019-01-25
CN109271320B true CN109271320B (zh) 2021-09-24

Family

ID=65197038

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811092217.4A Active CN109271320B (zh) 2017-11-07 2018-09-19 一种上位多目标测试用例优先级排序方法

Country Status (1)

Country Link
CN (1) CN109271320B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109947649B (zh) * 2019-03-20 2021-03-23 北京邮电大学 一种回归测试用例的排序方法及装置
CN110059015B (zh) * 2019-04-28 2022-09-30 西安邮电大学 种群进化多目标测试用例优先级排序方法
CN110502447B (zh) * 2019-08-30 2022-10-25 西安邮电大学 一种基于图的回归测试用例优先排序方法
CN112631907B (zh) * 2020-12-19 2024-04-02 北京化工大学 一种基于利用和探索的超启发框架上层调度方法
CN114448911B (zh) * 2022-01-28 2023-09-22 重庆邮电大学 一种基于多目标的工业通信协议测试用例优先级排序方法
CN114579435B (zh) * 2022-02-23 2024-05-28 南京信息工程大学 一种软件测试用例的生成方法
CN115688605B (zh) * 2022-11-21 2023-09-08 西北工业大学 一种基于多目标优化算法的民机研制需求排序方法
CN117234957B (zh) * 2023-11-16 2024-02-06 山东科技大学 一种基于改进萤火虫算法的测试用例优先级排序方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810104A (zh) * 2014-03-04 2014-05-21 中国人民解放军63863部队 一种软件测试用例优化方法及系统
CN106528433A (zh) * 2016-12-12 2017-03-22 西安邮电大学 一种用于白盒测试的测试用例优先级排序方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10430320B2 (en) * 2015-09-17 2019-10-01 International Business Machines Corporation Prioritization of test cases

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810104A (zh) * 2014-03-04 2014-05-21 中国人民解放军63863部队 一种软件测试用例优化方法及系统
CN106528433A (zh) * 2016-12-12 2017-03-22 西安邮电大学 一种用于白盒测试的测试用例优先级排序方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Epistasis Based ACO for Regression Test;Yi Bian等;《IEEE TRANSACTIONS ON EMERGING TOPICS IN COMPUTATIONAL INTELLIGENCE》;20170529;第1卷(第3期);213-223 *
Epistatic Genetic Algorithm for Test Case;Fang Yuan;《International Symposium on Search Based Software Engineering》;20150728;109-124 *
基于上位效应的多目标测试用例优先排序蚁群算法优化研究;邢行;《中国优秀硕士学位论文全文数据库 信息科技辑》;20170315;I138-2117 *
面向CPU+GPU异构计算的多目标测试用例优先排序;边毅等;《软件学报》;20160114;第27卷(第4期);943-954 *

Also Published As

Publication number Publication date
CN109271320A (zh) 2019-01-25

Similar Documents

Publication Publication Date Title
CN109271320B (zh) 一种上位多目标测试用例优先级排序方法
CN110059015B (zh) 种群进化多目标测试用例优先级排序方法
CN109544998B (zh) 一种基于分布估计算法的航班时隙分配多目标优化方法
CN105929690B (zh) 一种基于分解多目标进化算法的柔性车间鲁棒调度方法
Su et al. Multi-objective optimization of buffer allocation for remanufacturing system based on TS-NSGAII hybrid algorithm
CN104914835A (zh) 一种柔性作业车间调度多目标的方法
CN106610867B (zh) 一种片上网络任务调度方法及装置
CN108038538A (zh) 基于强化学习的多目标进化算法
Gu et al. A discrete particle swarm optimization algorithm with adaptive inertia weight for solving multiobjective flexible job-shop scheduling problem
CN117313554B (zh) 炼焦生产多工段联合多目标优化方法、系统、设备及介质
CN109298930A (zh) 一种基于多目标优化的云工作流调度方法及装置
CN115130789A (zh) 一种基于改进灰狼优化算法的分布式制造智能调度方法
CN114819316B (zh) 一种面向多智能体任务规划的复杂优化方法
Patil et al. Time-cost trade-off optimization model for retrofitting planning projects using MOGA
JP7137074B2 (ja) 最適化計算方法、最適化計算装置及び最適化計算プログラム
CN108108554B (zh) 一种多材料车身装配顺序规划优化方法
Han et al. Cooperative hybrid evolutionary algorithm for large scale multi-stage multi-product batch plants scheduling problem
CN113220437B (zh) 一种工作流多目标调度方法及装置
CN109885401B (zh) 基于lpt局部优化的结构化网格负载平衡方法
CN110689320A (zh) 一种基于协同进化算法的大规模多目标项目调度方法
CN114117917B (zh) 一种多目标优化的舰船磁偶极子阵列建模方法
Dawood et al. Priority-based decision support system (PBDSS) by genetic algorithm as a tool for network problem
Coelho Multicriteria optimization with expert rules for mechanical design
CN108921354A (zh) 一种基于粒子群优化的蚁群算法求解tsp问题的方法
CN114565242A (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