基于Markov链的双精英族群演化软测试用例自动生成方法
- 国知局
- 2024-07-31 23:02:10
本发明属于软件测试领域,具体涉及一种基于markov链的双精英族群演化软测试用例自动生成方法。
背景技术:
1、软件测试用例自动化生成是软件测试自动化的核心,随着软件系统的不断演化和更新,测试用例也需要不断更新和维护。测试用例的维护需要花费大量的时间和精力,如果测试用例不能及时更新,将会影响测试效果和自动化测试的效率,从而影响软件运行效率进而引发一系列系统问题。如何提高软件系统稳定性,提高软件运行可靠性已经成为软件领域的重要目标,软件测试是确保软件质量的重要手段之一,是提升系统可靠性、稳定性重要途径。
2、利用数字化模型对软件系统进行数字化表征的方式在自动生成测试领域得到广泛应用,效率方面也有很大的提升,遗传算法等其他优化算法也逐渐在测试用例生成上逐渐取得一定成果,但目前数字化模型以及优化算法在测试用例自动生成存在以下问题:首先,传统数字化模型通常需要大量的计算和存储资源,特别是在处理大规模数据时,计算复杂度和存储需求可能会非常高;其次,算法通常需要进行多次迭代才能得到满意的解,收敛速度相对梯度下降等方法较慢,可能需要更多的计算时间和资源,测试用例生成效率及适应度差强人意。针对收敛速度及适应度,如何高效生成适应度高的测试用例是需要解决的难题。
技术实现思路
1、本发明要解决的技术问题是:现有的测试用例自动生成方法,难以在保证在提高收敛速度的前提下生成适应度高的测试用例。
2、为此,本发明提供一种基于markov链的双精英族群演化软测试用例自动生成方法。
3、本发明解决其技术问题所采用的技术方案是:
4、一种基于markov链的双精英族群演化软测试用例自动生成方法,包括以下步骤,
5、步骤一,根据被测试软件的状态集合和状态转移序列,构建markov链模型,生成被测系统初始族群;
6、步骤二,基于被测试软件的功能需求和测试目标设计适应度函数,以评估测试用例好坏程度;
7、步骤三,对生成的测试通过锦标赛选择法对初始族群进行筛选形成新的精英族群中,以形成两个精英族群;
8、步骤四,对两个族群进行交叉、变异操作生成新的测试用例。
9、进一步地,在步骤二中,适应度函数应该考虑到测试用例的覆盖率和多样性,适应度函数fit(x)=w1*f1(x)+w2*f2(x),其中x表示一个测试用例,f1(x)表示测试用例的覆盖率,f2(x)表示测试用例的多样性,w1和w2是权重系数,用于平衡覆盖率和多样性。
10、进一步地,假设被测试软件的代码包含n个代码行或分支,执行测试用例x后,覆盖了m个代码行或分支,计算测试用例x的覆盖率
11、进一步地,假设相似性度量方法为d(x1,x2),其中x1和x2分别表示两个测试用例,测试用例x的多样性其中,x'表示测试用例族群中的其他测试用例,sum表示对所有测试用例之间的相似性求和。
12、进一步地,在步骤三中,从种群中随机选择m组个体,每组包括n个个体;对于每个组内的个体,按照适应度进行比较,选择适应度最好的个体k作为该组的胜者,从所有组的胜者中选择一个作为下一代个体;重复随机选择m组个体,直到选择足够数量的个体作为下一代。对于选择后的测试用例个体,形成两个精英族群。
13、进一步地,所述步骤四具体包括以下步骤:
14、s4.1通过选择操作将适应度较高的测试用例保留下来;
15、s4.2将两个测试用例通过交叉操作进行组合,生成新的测试用例;
16、s4.3对测试用例通过变异操作进行修改,生成新的测试用例,变异操作可以包括插入、删除、修改等操作;
17、s4.4对于步骤三每次迭代产生的结果,计算其保留概率,要求收敛到最低适应度,后代适应度为y,父代适应度为x,有δ=y-x,若δ<0证明子代比父代更好,则注入测试用例集,反之,证明子代不如父代好,以一定概率注入测试用例集。
18、进一步地,在s4.1中,x'=select(x),其中x'表示选择操作后保留的测试用例族群,对于族群中每一个测试用例其被选择概率为其中,p(x)表示选择某个个体x的概率,fit(x)表示个体x的适应度值,∑fit(i)表示种群中所有个体的适应度值之和。
19、进一步地,在步骤s4.2中,y=cross(x1,x2),其中x1和x2分别表示两个测试用例,y表示生成的新测试用例,选择的个体通过交叉操作生成新的后代,如果交叉点为k,并且考虑两个个体xi和xj,后代为xnew=(xi1,xi2,…,xik,xj(k+1),…,xjn)。
20、进一步地,在步骤4.3中,y=mutate(x)其中x表示一个测试用例,y表示生成的新测试用例,根据种群中个体优劣的不同,通过公式生成相应的子群,式中:ci表示第i个解产生的个体数目大小;μ是控制n个解产生个体总数的常量参数;ymax是解集中目标函数的最大值;ε表示最小值常量,用来避免除0错误。
21、进一步地,在步骤四中,动态调整每个选择、交叉、变异操作概率或权重的公式,通过公式w=w0*e(-k*t)计算各算子权重,其中,w0是初始权重,k是衰减系数,t是当前进化代数。
22、本发明的有益效果是,本发明在markov链建模基础上引入遗传算法,针对收敛速度及适应度问题,使用双精英族群策略,提高生成的测试用例适应度,降低族群迭代规模,提高算法收敛度,从而本发明能保证算法的全局覆盖能力,同时算法的召回率得到显著提升,以提高软件测试用例生成的效率和准确性。
技术特征:1.一种基于markov链的双精英族群演化软测试用例自动生成方法,其特征在于,包括以下步骤,
2.根据权利要求1所述的基于markov链的双精英族群演化软测试用例自动生成方法,其特征在于,在步骤二中,适应度函数应该考虑到测试用例的覆盖率和多样性,适应度函数fit(x)=w1*f1(x)+w2*f2(x),其中x表示一个测试用例,f1(x)表示测试用例的覆盖率,f2(x)表示测试用例的多样性,w1和w2是权重系数,用于平衡覆盖率和多样性。
3.根据权利要求2所述的基于markov链的双精英族群演化软测试用例自动生成方法,其特征在于,假设被测试软件的代码包含n个代码行或分支,执行测试用例x后,覆盖了m个代码行或分支,计算测试用例x的覆盖率
4.根据权利要求2所述的基于markov链的双精英族群演化软测试用例自动生成方法,其特征在于,假设相似性度量方法为d(x1,x2),其中x1和x2分别表示两个测试用例,测试用例x的多样性其中,x'表示测试用例族群中的其他测试用例,sum表示对所有测试用例之间的相似性求和。
5.根据权利要求1所述的基于markov链的双精英族群演化软测试用例自动生成方法,其特征在于,在步骤三中,从种群中随机选择m组个体,每组包括n个个体;对于每个组内的个体,按照适应度进行比较,选择适应度最好的个体k作为该组的胜者,从所有组的胜者中选择一个作为下一代个体;重复随机选择m组个体,直到选择足够数量的个体作为下一代。对于选择后的测试用例个体,形成两个精英族群。
6.根据权利要求1所述的基于markov链的双精英族群演化软测试用例自动生成方法,其特征在于,所述步骤四具体包括以下步骤:
7.根据权利要求6中任一项所述的基于markov链的双精英族群演化软测试用例自动生成方法,其特征在于,在s4.1中,x'=select(x),其中x'表示选择操作后保留的测试用例族群,对于族群中每一个测试用例其被选择概率为其中,p(x)表示选择某个个体x的概率,fit(x)表示个体x的适应度值,∑fit(i)表示种群中所有个体的适应度值之和。
8.根据权利要求6所述的基于markov链的双精英族群演化软测试用例自动生成方法,其特征在于,在步骤s4.2中,y=cross(x1,x2),其中x1和x2分别表示两个测试用例,y表示生成的新测试用例,选择的个体通过交叉操作生成新的后代,如果交叉点为k,并且考虑两个个体xi和xj,后代为xnew=(xi1,xi2,…,xik,xj(k+1),…,xjn)。
9.根据权利要求6所述的基于markov链的双精英族群演化软测试用例自动生成方法,其特征在于,在步骤4.3中,y=mutate(x)其中x表示一个测试用例,y表示生成的新测试用例,根据种群中个体优劣的不同,通过公式生成相应的子群,式中:ci表示第i个解产生的个体数目大小;μ是控制n个解产生个体总数的常量参数;ymax是解集中目标函数的最大值;ε表示最小值常量,用来避免除0错误。
10.根据权利要求6所述的基于markov链的双精英族群演化软测试用例自动生成方法,其特征在于,在步骤四中,动态调整每个选择、交叉、变异操作概率或权重的公式,通过公式w=w0*e(-k*t)计算各算子权重,其中,w0是初始权重,k是衰减系数,t是当前进化代数。
技术总结本发明属于软件测试领域,具体涉及一种基于Markov链的双精英族群演化软测试用例自动生成方法,包括:根据被测试软件的状态集合和状态转移序列,构建Markov链模型,生成被测系统初始族群;基于被测试软件的功能需求和测试目标设计适应度函数,以评估测试用例好坏程度;对生成的测试通过锦标赛选择法对初始族群进行筛选形成新的精英族群中,以形成两个精英族群;对两个族群进行交叉、变异操作生成新的测试用例。本发明在Markov链建模基础上引入遗传算法,针对收敛速度及适应度问题,使用双精英族群策略,提高生成的测试用例适应度,降低族群迭代规模,提高算法收敛度,提升测试用例生成效率。技术研发人员:李一芒,李承儒受保护的技术使用者:常州大学技术研发日:技术公布日:2024/7/29本文地址:https://www.jishuxx.com/zhuanli/20240730/195711.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表