一种基于改进萤火虫算法的测试用例优先级排序方法技术

技术编号:39804634 阅读:9 留言:0更新日期:2023-12-22 02:36
本发明专利技术公开了一种基于改进萤火虫算法的测试用例优先级排序方法,属于软件测试领域,包括如下步骤:步骤

【技术实现步骤摘要】
一种基于改进萤火虫算法的测试用例优先级排序方法


[0001]本专利技术属于软件测试领域,具体涉及一种基于改进萤火虫算法的测试用例优先级排序方法


技术介绍

[0002]测试用例优先级排序是对已有的测试用例进行排序,使优先级高的测试用例先于优先级低的测试用例执行,提高软件故障检测的能力

启发式算法一直是测试用例优先级排序问题研究的热点,例如,
Dario
等人使用改进的遗传算法进行回归测试用例优先级排序;张卫祥等人使用蚁群算法对测试用例进行排序,提出了测试用例吸引度的概念,基于吸引度来定义测试用例之间的距离,具有较好的全局寻优能力;刘音等人使用改进的遗传算法进行回归测试用例优先级排序,在遗传算法中引入禁忌搜索方法,增强排序的局部搜索能力,利用多个目标函数对测试用例进行排序,提高回归测试的效率;
Khatibsyarbini
等人使用萤火虫算法进行排序,目标是在早期最大限度地检测故障
。yang
等人受萤火虫吸引行为的启发,于
2008
年提出萤火虫算法

该算法因控制参数少

计算能力高

易于实现等优势,在旅行商问题

背包问题等领域有广泛应用,在回归测试用例优先级排序中也有应用

[0003]但现有基于萤火虫算法的测试用例优先级排序方法存在目标函数考虑因素单一的问题,仅仅以缺陷检测百分比或者用例执行时间计算,目标单一,实际上,在回归测试中,模块覆盖率

时间成本等均是重要的影响因素,模块检测覆盖率和测试用例次序是正相关的,而时间成本测试用例次序是负相关的,如何合理融合不同目标的因素设计目标函数对萤火虫算法的执行效率至关重要

此外,现有基于萤火虫算法的测试用例优先级排序方法大多采用全吸引模型,缺陷检测效率低,且存在后期收敛速度慢且时间复杂度高的问题


技术实现思路

[0004]为了解决上述问题,本专利技术提出了一种基于改进萤火虫算法的测试用例优先级排序方法,首先设计融合时间成本和执行效率的新的目标函数;其次,在基本萤火虫算法中引入精英策略和遗传机制,设计新的位置更新公式,并采用改进的萤火虫算法解决测试用例优先级排序问题

[0005]本专利技术的技术方案如下:一种基于改进萤火虫算法的测试用例优先级排序方法,包括如下步骤:步骤
1、
获取源代码

测试用例集和回归测试历史结果;步骤
2、
借助
gcov
工具建立用例

模块覆盖矩阵;步骤
3、
使用改进后的萤火虫算法对测试用例集进行排序,最终输出最优的测试用例排序序列

[0006]进一步地,步骤1中,将测试用例集定义为,是测试用例总个数,表示第个测试用例;所述步骤2中,使用
gcov
工具,输入源代码和测试用例集,分析提取每个测试用例
的代码模块覆盖率,建立用例

模块覆盖矩阵:
(1)
;其中,表示第个测试用例对于第个模块的模块覆盖率;表示模块总个数

[0007]进一步地,步骤3的具体过程如下:步骤
3.1、
初始化萤火虫数目

位置维度

最大迭代次数

光强吸收系数;位置维度对应测试用例个数;步骤
3.2、
随机初始化只萤火虫的位置,分别计算每一只萤火虫的绝对亮度;步骤
3.3、
选择最大绝对亮度为标准对所有萤火虫进行排序,将前只萤火虫划为精英种群,剩余萤火虫则归为普通种群;步骤
3.4、
根据精英种群和普通种群的位置更新公式分别更新每只萤火虫的位置,再根据更新的位置计算每只萤火虫的绝对亮度;步骤
3.5、
对两个种群分别执行选择

交叉

变异和逆转操作,更新萤火虫位置,再根据更新的位置计算每只萤火虫的绝对亮度;步骤
3.6、
进行终止条件判断,若达到最大迭代次数,则转到步骤
3.7
;若未达到最大迭代次数,返回步骤
3.3
,迭代次数加一;步骤
3.7、
输出萤火虫绝对亮度值最优的萤火虫位置向量对应的路径,位置向量表示的用例顺序即为最优的测试用例排序序列

[0008]进一步地,步骤
3.2
的具体过程如下:步骤
3.2.1、
对只萤火虫的初始位置进行整数编码,使用
random.shuffle
函数给出每只萤火虫的初始位置,构建只萤火虫的位置矩阵;
(2)
; (3)
;其中,表示第只萤火虫的位置,表示第只萤火虫的位置中第位测试用例的序号;步骤
3.2.2、
融合有效执行时间和平均模块覆盖率设计目标函数: (4)
;其中,为目标函数;和为不同的权重系数,且;为测试用例序列的平均模块覆盖率,使用公式(5)计算;为萤火虫个体表示序列的有效执行时间,即首次达到最大模块覆盖率时执行测试用例所花费的时间,使用公式(6)计算;表示执行第个测试用例时消耗的时间; (5)

其中,表示首个覆盖第个模块的测试用例在该用例排序中所处的次序; (6)
;其中,表示首次达到最大模块覆盖率时执行测试用例的个数;表示首次达到最大模块覆盖率时执行测试用例的序号;表示执行第个测试用例时消耗的时间;步骤
3.2.3、
以目标函数值代表萤火虫的绝对亮度,建立第只萤火虫绝对亮度和目标函数之间的联系,即: (7)
;其中,表示第只萤火虫的绝对亮度;表示第只萤火虫的目标函数

[0009]进一步地,步骤
3.4
的具体过程如下:步骤
3.4.1、
对于精英种群,所有萤火虫均只被最亮萤火虫吸引,使用公式(8)更新萤火虫个体的位置: (8)
;式中,

均表示萤火虫的序号;为精英种群中第只萤火虫第次迭代后的位置;为自适应惯性权重系数,使用公式(9)计算;为精英种群中第只萤火虫第次迭代后的位置;为第只萤火虫对第只萤火虫的吸引度,使用公式(
10
)计算;表示精英种群中第只萤火虫第次迭代后的位置,第只萤火虫为最亮萤火虫;为自适应步长因子,使用公式(
12
)计算;为随机干扰项,; (9)
;其中,为第次迭代后的自适应惯性权重系数;为最大自适应惯性权重系数;为最小自适应惯性权重系数;为最大迭代次数; (10)
;其中,表示第只萤火虫的绝对亮度;为光强吸收系数;为第只萤火虫和第只萤火虫之间的笛卡尔距离,计算公式如下: (11)
;式中,为第只萤火虫位置;为第只萤火虫位置;为位置本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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、
对于精英种群,所有萤火虫均只被最亮萤...

【专利技术属性】
技术研发人员:赵卫东朱琳
申请(专利权)人:山东科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1