基于多目标差异演化算法的软件测试资源动态分配方法_2

文档序号:8922470阅读:来源:国知局
迭代次数、交叉概率、变异概率、模 块可靠性阈值等进行设置;
[0077] 在本发明的一个实施实例中,种群规模N= 20,迭代次数G= 200,缩放系数F= 0. 5,交叉概率CR= 0. 5,模块可靠性阈值0 = 0. 99。
[0078] 步骤S4中涉及种群初始化设计:种群初始化是按照不同测试阶段采用不同的方 法进行。
[0079] (1)对于第i= 1个测试阶段(TeOJJ,由于系统各个模块的可靠性都较低,采 用随机的方法初始化每个子系统中每个模块的测试资源。
[0081] 其中,rand(Ul,u2)函数表示在区间(Ul,u2)内随机取整数,tjk表示模块Mjk所分配 到的测试资源。
[0082] 在本发明的一个实施实例中,如图5,第i= 1个测试阶段〇;= 0,TJ的种群初 始化过程为:对于模块Mn,在〇;= 0,TJ之间随机生成测试资源数tn;对于子系统S2,分 别对模块M21、M22、M23和M24在剩余的资源区间(0,Trk)内分别生成随机资源数t21、t22、t23 和t24;对于子系统S3,分别对模块M31和M32在剩余的资源区间
内分别 生成随机资源数t31和132;依次类推,为每一个模块生成一个测试资源。
[0083] (2)对于第i个(i多2)测试阶段(Th,TJ,种群初始化的方法是根据模块已达到 的可靠性rjk分配测试资源。
[0085] 其中,0是用户希望达到的模块可靠性阈值rjk是模块Mjk已经达到的可靠性值。
[0086] 步骤S5中涉及变异操作设计:本发明采用的变异操作为
[0088] 其中,F为缩放因子,FG[0,2] 是变异后的个体;乂^^^^肩随机整数, 表示个体在种群中的序号;是当代最优个体。
[0089] 步骤S6中涉及交叉操作设计:交叉操作是对原来个体t 和变异 后的个体毛?為,…,进行的,本发明采用的交叉操作是位交叉。设交叉后的个体

[0092] 其中CR是交叉因子,CRG[0, 1],控制个体间交叉的程度;rand(0, 1)函数表示在 区间(〇,1)内取得随机数。
[0093] 步骤S7中涉及选择操作设计:本发明采用的是非支配排序机制进行的选择操作, 步骤为:根据目标函数采用快速非支配排序对种群进行分层,并通过计算个体拥挤度的方 式衡量个体在每层的优劣,根据个体的分层和拥挤度的大小选取相应的个体组成新的种 群。
[0094] 本发明采用的目标函数为
[0098] s.t.
[0099] Tia^T
[0100] 0 < tiJk< T「Th
[0101] 其中,表示模块11A在第i个测试阶段所分配到的测试资源,r$表示模块Mjk 在第i个测试阶段的可靠性值,且rijk=rjk (x/tijk),氏(xATi-Tg))、(;和Tia分别表示软件 系统在第i个测试阶段的总体可靠性、总体测试代价和系统实际消耗的总测试资源,hk(X/ tijk)和qk(i^k)分别表示模块M#在第i个测试阶段的可靠性和测试代价,均为测试资源的 函数,表示为:
[0104] 其中,15、13』15、1』15、7』 15和2』15是是固定的参数。
[0105] 本发明采用的快速非支配排序算法步骤为:
[0106] (1)计算每个个体的np值和sp值,记录np= 0的所有个体为Pareto第一级,其 中np为支配个数,表示在可行解空间中,可以支配解p的所有解的数量,sp为被支配个体 的集合,表示在可行解空间中,被解P所支配的解的集合。
[0107] (2)按顺序访问第一级的sp集合中的所有个体,对其np值执行减一操作,如果得 到np为0,则该个体为Pareto第二级;
[0108] (3)按顺序访问第二级的sp集合中的所有个体,对其np值执行减一操作,如果得 到np为0,则该个体为Pareto第三级;
[0109] (4)重复以上操作,直到将种群中的所有个体分配到Pareto级别。
[0110] 本发明采用的拥挤度计算方法为:
[0111] (1)对于种群中的任意一个个体i,初始化拥挤度的值为〇,即
[0112] (2)对于每个目标函数,根据第t个目标函数值对种群中的所有个体按照升序排 序。
[0113] (3)记录第一个个体和最有一个个体的拥挤度为无穷大,即
第y个个体的拥挤度为第y+1和第y个体的所有目标函数值之差的和,,
[0114] 其中,表示种群中第y个个体的拥挤度,表示种群中第y个个体的第 T个目标函数值的大小,
分别表示种群中第t个目标函数的最大值和最小值。
[0115] 步骤S9中涉及个体解码设计:包括计算每个模块的可靠性hk、每个模块的测试代 价C#和系统的实际测试时间Tia。
[0116] 步骤S11中涉及下一测试阶段测试资源的更新操作设计:下一个测试阶段的测试 资源更新按照:
[0118] 图6为本发明的一个实施实例中本发明技术与现有技术结果的对比。从图6可以 看出,本发明能够在节省测试资源的前提下获得较高的测试代价。
[0119] 本发明为了解决现有技术中软件测试资源分配方案因不考虑各模块可靠性随着 测试进程发生变化的情况而导致测试资源浪费、测试效果差的问题,提供了一种基于多目 标差异演化算法的软件测试资源动态分配方法,该方法可应用于串并行软件系统的模块测 试中。
【主权项】
1. 基于多目标差异演化算法的软件测试资源动态分配方法,其特征在于:包括以下步 骤: (1) 、对所求问题进行分析,为可行解设计编码方法; (2) 、对整个测试环节进行划分,划分为若干个测试阶段; (3) 、对差异演化算法中的种群规模、迭代次数、交叉概率、变异概率等控制参数进行设 置; (4) 、对种群进行初始化操作; (5) 、对种群中的个体进行变异操作; (6) 、对变异生成的个体与原种群中的个体进行交叉操作; (7) 、采用非支配排序机制进行选择操作; (8) 、判断是否达到最大迭代次数,若否,则跳到步骤(5),继续进化操作;若是,则跳到 步骤(9); (9) 、对pareto解进行解码; (10) 、判断是否还存在未进行的测试阶段,若存在,跳到步骤(11);若否,则结束求解 过程; (11) 、更新下一测试阶段的测试资源,跳到步骤(4),进入下一测试阶段。2. 根据权利要求1所述的基于多目标差异演化算法的软件测试资源动态分配方法,其 特征在于:步骤(1)中为可行解进行一维整数向量编码;且若软件系统包含m个串联子系 统,每个子系统I (j = 1,2,…,m)由r^_个并联模块组成,则每个个体包含m 个整数向量1\,···,Γ,··,rm,每个向量包含η』个元素 Gi,…,…,〇?;,tjk表示模块Mjk所 分配到的测试资源。3. 根据权利要求1所述的基于多目标差异演化算法的软件测试资源动态分配方法,其 特征在于:步骤(2)中,将测试资源T分为p个测试阶段: (T0= 0, T J,…,(Th, Ti],…Tp= T] 〇4. 根据权利要求1所述的基于多目标差异演化算法的软件测试资源动态分配方法,其 特征在于:步骤(3)中,对差异演化算法中的种群规模、迭代次数、交叉概率、变异概率这些 控制参数进行设置。5. 根据权利要求1所述的基于多目标差异演化算法的软件测试资源动态分配方法,其 特征在于:步骤(4)中,对种群进行初始化操作,按照不同测试阶段采用不同的种群初始化 方法; 在步骤(4)中,对于第i = 1个测试阶段(Ttl= 0, T1],由于系统各个模块的可靠性都 较低,采用随机的方法初始化每个子系统中每个模块的测试资源:其中,rand(U1, U2)函数表示在区间(UpU2)内随机取整数; 在步骤⑷中,对于第i个(i》2)测试阶段OV1, Ti],种群初始化的方法是根据模块 已达到的可靠性rjk分配测试资源:其中,Θ是用户希望达到的模块可靠性阈值,rjk是模块Mjk已经达到的可靠性值。6. 根据权利要求1所述的基于多目标差异演化算法的软件测试资源动态分配方法,其 特征在于:步骤(5)中,对种群中的个体进行变异操作,采用方法是DE/best/2/bin模式。7. 根据权利要求1所述的基于多目标差异演化算法的软件测试资源动态分配方法,其 特征在于:步骤(6)中,对变异生成的个体与原种群中的个体进行位交叉操作,生成2个不 同的个体。8. 根据权利要求1所述的基于多目标差异演化算法的软件测试资源动态分配方法,其 特征在于:步骤(7)中,采用非支配排序机制进行选择操作,选择的对象集合包括原种群个 体、变异后的个体以及交叉产生的个体; 步骤(7)中,非支配排序机制是指对种群按照优化目标函数进行分层,并计算个体拥 挤度来衡量个体在每层的优劣,然后根据个体的分层和拥挤度的大小选取较优的个体组成 新的种群; 步骤(7)中,优化目标函数为:s. t. Tia^ T ,-Ti^1 〇 < T 其中,tiA表示模块M Λ在第i个测试阶段所分配到的测试资源,r $表示模块M Λ在第i 个测试阶段的可靠性值,且i^_k= r Λ(X/t$),Ri (V(Ti-IV1))、(;和T ia分别表示软件系统在 第i个测试阶段的总体可靠性、总体测试代价和系统实际消耗的总测试资源,rA(x/tiA)和 Cjk (rijk)分别表示模块Mjk在第i个测试阶段的可靠性和测试代价,均为测试资源的函数。9. 根据权利要求1所述的基于多目标差异演化算法的软件测试资源动态分配方法,其 特征在于:步骤(9)中,对pareto解进行解码,具体操作包括:计算每个模块的可靠性rjk, 计算每个模块的测试代价,计算软件系统的实际测试时间Ti'10. 根据权利要求1所述的基于多目标差异演化算法的软件测试资源动态分配方法, 其特征在于:步骤(11)中,更新下一测试阶段的测试资源,方法为: T广 HTh-T,)。
【专利摘要】本发明公开了一种基于多目标差异演化算法的软件测试资源动态分配方法,可应用于串并联软件系统的模块化测试。它是针对目前测试资源分配方法不考虑随着测试进程发生变化而导致资源浪费的情况。该方法包括步骤:S1,为可行解编码;S2,测试阶段划分;S3,控制参数设置;S4,初始化种群;S5,变异操作;S6,交叉操作;S7,基于非支配排序的选择操作;S8,判断是否达到最大迭代次数,若否,则跳到S5;若是,则跳到S9;S9,为pareto解解码;S10,判断是否还存在未进行的测试阶段,若否,则结束求解过程;若存在,跳到S11;S11,更新下一测试阶段的测试资源,跳到S4,进入下一测试阶段。
【IPC分类】G06F9/50, G06F11/36
【公开号】CN104899101
【申请号】CN201510320713
【发明人】张国富, 苏兆品, 岳峰, 齐美彬, 蒋建国, 王永奇
【申请人】合肥工业大学
【公开日】2015年9月9日
【申请日】2015年6月10日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1