时间:2016-06-24 10:08 文章来源:http://www.lunwenbuluo.com 作者:马竹根 点击次数:
⑼
智能水滴在遇到多条可选路径时,会更倾向于选择泥土量较少的路径。对于智能水滴可能选择的多个下一位置,每个位置以一定的概率被选择。以p(i,j)代表智能水滴在位置i时选择j作为下一位置的概率,它与路径当中的泥土量成反比。
⑽
在位置i与位置j之间的路径上泥土量越少,则位置j越有可能被在位置i的智能水滴选择作为下一步移动的位置。一种可能的计算下一步位置概率的表达式如下:
⑾
其中
ε是很小的正数,用来防止函数f的分母为0。函数g用来确保将位置i与位置j之间的路径泥土量转换为正数,其表达式为:
⑿
函数min表示当前位置与所有可能选择的下一个位置之间泥土量的最小值。
3智能水滴算法测试用例生成方法
许多软件测试问题可归结为基本路径测试数据生成问题,可描述为[13]:给定程序的一条目标路径,在程序的输入空间中寻找测试数据,使得以该数据为输入,所经过的路径为目标路径。测试数据的生成过程就是根据一定的规则,对被测试程序的输入空间进行抽样的过程。因此可以把测试数据生成问题转化为一个优化问题,利用智能优化算法来求解。智能水滴算法在很多优化问题中得到了应用,本文应用智能水滴算法来生成测试数据。
智能水滴算法生成测试用例的过程可分为二个主要阶段。第一阶段利用分析工具(如LEX和YACC)生成包含控制流图的输出文件。第二个阶段对控制流图进行处理,可分为以下三个步骤。
⑴分析控制流图中每一个结点的圈复杂度。
⑵利用智能水滴算法在控制流图中从开始结点到终端结点遍历得到所有可能的独立路径。
⑶对每一条独立路径生成测试数据。
算法:智能水滴算法获取控制流图中独立路径
初始化:
程序控制流图如图1所示。
表1中简要描述了路径的发现过程。从控制流图顶端结点1(Node-1)开始,它有二条可能的路径,即:结点2(Node-2)或结点7(Node-7),根据算法计算出概率适应度p(1,2)=0.9,p(1,7)=0.1。概率值越大选择这条路径的概率越大,因此选择路径p(1,2)。从Node-1到Node-2速度更新按算法中的第5步计算,Vel(IWD)=200.1,算法中第6步更新时间参数,计算公式为time(1,2)=HUD(2)/Vel(IWD)=90/200.1=0.45,这里HUD(2)=10(控制流图的圈复杂度)*9(Node-2的圈复杂度)=90。算法中第7步按公式计算泥土的变化Δsoil(1,2)=1.469,算法中第8步更新智能水滴从Node-1到Node-2带走的泥土Soil(IWD)=1.469。算法第9步更新Node-1和Node-2之间路径上的泥土:
5结束语
测试用例的生成是软件测试的重要内容,高效的软件测试用例自动生成方法可以简化软件测试过程,减少软件测试时间和资源消耗,提高测试效率和测试质量。本文将面向路径的测试数据生成问题转化成最优化问题,提出了使用智能水滴算法自动发现测试路径的策略,算法的输出包含所有的独立路径。本文着重介绍了应用智能水滴算法解决软件测试数据生成问题的方法和技术,并给出了具体的应用实例。实验结果表明,基于智能水滴算法的测试实例能够在更小的迭代次数之内收敛,并得到最优结果。下一步的研究工作需对测试用例的生成进行优化,算法中可加入一些启发式算法来提高效率。
参考文献(References):
[1]HarmanM,JonesBF.Searchbasedsoftwareengineering[J].InformationandSoftwareTechnology,2001.43(14):833-839
[2]MillerJ,ReformatM,ZhangH.Automatictestdatagenerationusinggeneticalgorithmandprogramdependencegraphs[J].InformationandSoftwareTechnology,2006.48:586-605
[3]姜淑娟,王令赛,薛猛等.基于模式组合的粒子群优化测试用例生成方法[J].软件学报,2016.27(4):1-17
[4]毛澄映,喻新欣,薛云志.基于粒子群优化的测试数据生成及其实证分析[J].计算机研究与发展,2014.51(4):824-837
[5]李云玮,孙忱,范玉顺.基于智能非信息素蜂群优化的软件测试研究[J].计算机应用研究,2014.31(8):2399-2403
[6]李鑫.基于神经网络的路径覆盖测试数据生成[D].中国矿业大学,2014.
[7]傅博.基于蚁群算法的软件测试数据自动生成[J].计算机工程与应用,2007.43(12):97-99
[8]王博,王曙燕.一种新的基于模拟退火的测试用例生成与约简算法[J].计算机应用与软件,2013.30(2):78-81
[9]H.S.Hosseini.Problemsolvingbyintelligentwaterdrops[A].IEEECongressonEvolutionaryComputation[C],Washington,DC,USA:IEEEComputerSociety,2007.3226-3231
[10]陈梦云,高建华.基于圈复杂度的静态测试用例排序方法[J].计算机应用与软件,2016.33(1):1-3
[11]巩敦卫,姚香娟,张岩.测试数据进化生成理论及应用[M].科学出版社,2014.
联系方式
随机阅读
热门排行