【技术实现步骤摘要】
基于蚁群算法进行测试用例优先级排序的回归测试方法
本专利技术涉及软件测试和智能计算两大领域,主要涉及一种基于蚁群算法进行测试用例优先级排序的回归测试方法。
技术介绍
回归测试是软件工程领域中的一种特殊的软件测试方法。该测试是指每当程序员修改软件源代码后,都重新进行测试以确保原先已写好且良好运作的代码没有引入新的程序错误,同时在本次修改中新添加的代码能够正确执行。回归测试作为软件生命周期的一个组成部分,贯穿于软件开发的各个阶段,软件每一个新版本的发布都需要事先经过多次回归测试的检查,以确保软件新功能和原有功能的正确性。回归测试的成本往往非常之高。这是由于在每一次回归测试中,软件测试工程师都会针对新代码添加新的测试用例,同时为确保前期代码的正确性,所有测试用例都会被保存起来,以便在未来的回归测试中重复使用。这就导致了软件测试池和测试套规模的不断膨胀。选择合适、正确的策略降低回归测试的开销是有必要的,其中一种技术是测试用例优先级排序技术。该技术通过优化测试套中的测试用例执行顺序以优化回归测试的时间安排。具体而言,回归测试优先级排序依照某种标准给每一个测试用例评定优先级, ...
【技术保护点】
1.一种基于蚁群算法进行测试用例优先级排序的回归测试方法,其特征在于,包括步骤:(1)把一个包含n个测试用例、对应包含m条语句的被测程序的测试套转化为图G,计算第一条历史最优解
【技术特征摘要】
1.一种基于蚁群算法进行测试用例优先级排序的回归测试方法,其特征在于,包括步骤:(1)把一个包含n个测试用例、对应包含m条语句的被测程序的测试套转化为图G,计算第一条历史最优解并把其适应度作为图G的信息素起始浓度τ0,实例化所有人工蚂蚁;(2)人工蚂蚁开始周游图G以构造问题的解,在每一次蚂蚁状态转移之前,人工蚂蚁计算所有候选节点的启发式信息,并根据伪随机比例规则挑选出下一个将要转移的目标节点;在完成一次转移之后,局部信息素更新规则将作用于发生转移的边以降低其信息素含量;之后,蚂蚁判断是否覆盖所有语句,若否,则继续转移;若是,则停止周游,转至步骤(3);(3)当所有人工蚂蚁都完成构造解的工作之后,基于排序的局部搜索方法应用于微调所有生成的解;这之后,所有解的适应度将被算出,并从中选出迭代最优解用以与历史最优解比较,并更新全局最优路径树;最后,通过全局信息素更新规则将用以更新图G中所有边的信息素含量;(4)如果算法达到结束条件则终止,得到排序后的测试套,否则返回步骤(2);(5)将排序后的测试套作为测试用例依次对软件进行回归测试的检测,确保软件新功能和原有功能的正确性。2.根据权利要求1所述的基于蚁群算法进行测试用例优先级排序的回归测试方法,其特征在于,步骤(1)中,所述把一个包含n个测试用例、对应包含m条语句的被测程序的测试套转化为图G具体包括:将一个包含n个测试用例、对应包含m条语句的被测程序的测试套将被转化为图G={V,E},其中,V={v-1,v1,v2,...,vn}是图G的节点集,其包含n个实节点v1,v2,...,vn,分别对应n个测试用例,以及一个虚节点v-1作为所有人工蚂蚁的搜索起点,E={Ev,Er}是图G的边集,其中Ev={e(-1,1),e(-1,2),...,e(-1,n)}包含所有从虚节点指向实节点的边,Er包含所有实节点之间的实边;图G中的每个实节点vi(i=1,2,...,n)有其对应的覆盖语句表j为vi的总覆盖语句数,sik,(1≤k≤j)是vi覆盖的第k条语句在被测程序中的行号。3.根据权利要求1所述的基于蚁群算法进行测试用例优先级排序的回归测试方法,其特征在于,步骤(1)中,所述计算第一条历史最优解并把其适应度作为图G的信息素起始浓度τ0,实例化所有人工蚂蚁具体包括:1)对所有不属于构造解的测试用例计算其额外语句覆盖数;2)从所有额外语句覆盖数大于0的测试用例中随机选择一个用例,加入构造解的末尾;3)计算构造解的总覆盖语句数,若小于被测程序总语句数,则返回步骤1),否则结束计算,得到第一条历史最优解4)根据所述一条历史最优解计算G的信息素起始浓度4.根据权利要求1所述的基于蚁群算法进行测试用例优先级排序的回归测试方法,其特征在于,步骤(2)中,所述人工蚂蚁计算所有候选节点的启发式信息时,每一只人工蚂蚁k都设置其自身的覆盖语句集以记录其在周游的过程中已经覆盖的被测程序语句,并不断根据加入到构造解中的新测试用例对其进行更新,更新方式如下所示:其中,表示被加入到构造解中的新测试用例vs,\计算的是与的差集;基于人工蚂蚁的自身覆盖语句集额外语句覆盖的启发式函数计算如下:其中,S是被测程序的所有语句集,||·||计算输入集合中的元素个数,ηk(s)用于衡量的是蚂蚁k转移到节点s的代价,ηk(s)的大小决定蚂蚁k是否值得转移到节点;根据上述启发式规则,图G中任意一条边e(r,s)的代价度量(即距离)可通过下式计算:其中,边e(r,s)的距离δk(r,s)并不是一个固定的值,而是根据所爬行蚂蚁的不同而不同。5.根据权利要求1所述的基于蚁群算法进行测试用例优先级排序的回归测试方法,其特征在于,步骤(2)中,所述根据伪随机比例规则挑选出下一个将要转移的目标节点定义如下:其中,r是蚂蚁当前所在的节点,τ(r,t)是节点r到t的路径上的信息素含...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。