【技术实现步骤摘要】
一种基于改进萤火虫算法的测试用例优先级排序方法
[0001]本专利技术属于软件测试领域,具体涉及一种基于改进萤火虫算法的测试用例优先级排序方法
。
技术介绍
[0002]测试用例优先级排序是对已有的测试用例进行排序,使优先级高的测试用例先于优先级低的测试用例执行,提高软件故障检测的能力
。
启发式算法一直是测试用例优先级排序问题研究的热点,例如,
Dario
等人使用改进的遗传算法进行回归测试用例优先级排序;张卫祥等人使用蚁群算法对测试用例进行排序,提出了测试用例吸引度的概念,基于吸引度来定义测试用例之间的距离,具有较好的全局寻优能力;刘音等人使用改进的遗传算法进行回归测试用例优先级排序,在遗传算法中引入禁忌搜索方法,增强排序的局部搜索能力,利用多个目标函数对测试用例进行排序,提高回归测试的效率;
Khatibsyarbini
等人使用萤火虫算法进行排序,目标是在早期最大限度地检测故障
。yang
等人受萤火虫吸引行为的启发,于
2008
年提出萤火虫算法
。
该算法因控制参数少
、
计算能力高
、
易于实现等优势,在旅行商问题
、
背包问题等领域有广泛应用,在回归测试用例优先级排序中也有应用
。
[0003]但现有基于萤火虫算法的测试用例优先级排序方法存在目标函数考虑因素单一的问题,仅仅以缺陷检测百分比或者用例执行时间计算,目标单一,实际上,在回归测 ...
【技术保护点】
【技术特征摘要】
1.
一种基于改进萤火虫算法的测试用例优先级排序方法,其特征在于,包括如下步骤:步骤
1、
获取源代码
、
测试用例集和回归测试历史结果;步骤
2、
借助
gcov
工具建立用例
‑
模块覆盖矩阵;步骤
3、
使用改进后的萤火虫算法对测试用例集进行排序,最终输出最优的测试用例排序序列
。2.
根据权利要求1所述基于改进萤火虫算法的测试用例优先级排序方法,其特征在于,所述步骤1中,将测试用例集定义为,是测试用例总个数,表示第个测试用例;所述步骤2中,使用
gcov
工具,输入源代码和测试用例集,分析提取每个测试用例的代码模块覆盖率,建立用例
‑
模块覆盖矩阵:
(1)
;其中,表示第个测试用例对于第个模块的模块覆盖率;表示模块总个数
。3.
根据权利要求2所述基于改进萤火虫算法的测试用例优先级排序方法,其特征在于,所述步骤3的具体过程如下:步骤
3.1、
初始化萤火虫数目
、
位置维度
、
最大迭代次数
、
光强吸收系数;位置维度对应测试用例个数;步骤
3.2、
随机初始化只萤火虫的位置,分别计算每一只萤火虫的绝对亮度;步骤
3.3、
选择最大绝对亮度为标准对所有萤火虫进行排序,将前只萤火虫划为精英种群,剩余萤火虫则归为普通种群;步骤
3.4、
根据精英种群和普通种群的位置更新公式分别更新每只萤火虫的位置,再根据更新的位置计算每只萤火虫的绝对亮度;步骤
3.5、
对两个种群分别执行选择
、
交叉
、
变异和逆转操作,更新萤火虫位置,再根据更新的位置计算每只萤火虫的绝对亮度;步骤
3.6、
进行终止条件判断,若达到最大迭代次数,则转到步骤
3.7
;若未达到最大迭代次数,返回步骤
3.3
,迭代次数加一;步骤
3.7、
输出萤火虫绝对亮度值最优的萤火虫位置向量对应的路径,位置向量表示的用例顺序即为最优的测试用例排序序列
。4.
根据权利要求3所述基于改进萤火虫算法的测试用例优先级排序方法,其特征在于,所述步骤
3.2
的具体过程如下:步骤
3.2.1、
对只萤火虫的初始位置进行整数编码,使用
random.shuffle
函数给出每只萤火虫的初始位置,构建只萤火虫的位置矩阵;
(2)
; (3)
;
其中,表示第只萤火虫的位置,表示第只萤火虫的位置中第位测试用例的序号;步骤
3.2.2、
融合有效执行时间和平均模块覆盖率设计目标函数: (4)
;其中,为目标函数;和为不同的权重系数,且;为测试用例序列的平均模块覆盖率,使用公式(5)计算;为萤火虫个体表示序列的有效执行时间,即首次达到最大模块覆盖率时执行测试用例所花费的时间,使用公式(6)计算;表示执行第个测试用例时消耗的时间; (5)
;其中,表示首个覆盖第个模块的测试用例在该用例排序中所处的次序; (6)
;其中,表示首次达到最大模块覆盖率时执行测试用例的个数;表示首次达到最大模块覆盖率时执行测试用例的序号;表示执行第个测试用例时消耗的时间;步骤
3.2.3、
以目标函数值代表萤火虫的绝对亮度,建立第只萤火虫绝对亮度和目标函数之间的联系,即: (7)
;其中,表示第只萤火虫的绝对亮度;表示第只萤火虫的目标函数
。5.
根据权利要求4所述基于改进萤火虫算法的测试用例优先级排序方法,其特征在于,所述步骤
3.4
的具体过程如下:步骤
3.4.1、
对于精英种群,所有萤火虫均只被最亮萤...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。