[发明专利]基于路径覆盖软件测试的测试用例自动生成方法有效
申请号: | 201710766422.3 | 申请日: | 2017-08-30 |
公开(公告)号: | CN107590073B | 公开(公告)日: | 2021-03-30 |
发明(设计)人: | 黄翰;刘方青;颜学明 | 申请(专利权)人: | 华南理工大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 广州粤高专利商标代理有限公司 44102 | 代理人: | 何淑珍 |
地址: | 510640 广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 路径 覆盖 软件 测试 自动 生成 方法 | ||
1.基于路径覆盖软件测试的测试用例自动生成方法,其特征在于,包括以下步骤:
(a)对输入的被测测试程序分析功能对应的输入、输出并且通过分析程序中存在的判断、循环分支得到控制流图CFG,并对需要覆盖的路径进行编码;
(b)根据测试问题的实际输入、输出数据的类型和范围确定问题编码;
(c)通过对步骤(a)中得到了控制流图CFG和步骤(b)中根据具体测试问题输入确定的问题编码,以及预设的计算分支距离的方法得到计算一个测试用例评估值的适应值函数;
(d)在测试用例的取值范围内,使用均匀分布的方式随机初始化种群;
(e)以步骤(d)中得到的种群,使用差分进化算法(DE)和收敛速度控制器(CSC)以及步骤(c)中得到的适应值函数更新迭代种群;
选取差分进化算法(DE)来迭代种群,差分进化算法迭代公式为:vi=yi+F*(yj-yk),其中vi是得到的新测试用例,而yi是差分进化前的旧测试用例,yj和yk是从种群所有解决方案中随机选中的两个测试用例;在上述计算完成之后,接下来进行差分进化算法(DE)的交叉操作,生成一个[0,1]之间的随机数rand,如果rand的大小小于预设的交叉概率Pc,那么就保留新的解,如果rand的大小大于预设的交叉概率Pc,那么就舍弃刚刚求得的解,保留以前的解;在差分进化算法进行迭代更新的同时,通过收敛速度控制器(CSC)来控制DE算法的收敛速度,在判断DE算法收敛速度太慢的时候进行相关维度的动态步长搜索操作,加快算法收敛速度,在判断DE算法收敛速度太快的时候进行初始化种群部分维度操作,减缓算法收敛速度;其中动态步长搜索操作方法如下:在一个设定的维度的范围内进行大步长搜索,找到其中适应值最好的位置,并以此位置进行更小范围内的搜索,直到步长小于预设值,此时,在这个小于预设值的范围内进行穷举,找到适应值最高的点;并依据数据新建该维度动态步长搜索后得到的新种群个体;
收敛速度控制器(CSC)的减速算子如下,添加一个区域击中次数统计数据结构,每次在程序运行之前,将程序输入变量的范围进行分区,具体为:测试用例X的第i个维度取值范围是[1,100],将其平均分成10个区域,并统计每一个区域的击中次数,每次进行收敛速度控制器(CSC)的减速操作的时候,选择测试用例的每个维度击中次数最少的区域,并进行初始化;
(f)将步骤(d)、(e)中种群个体里,覆盖被测试程序目前未被覆盖路径的测试用例记录下来;
(g)检测是否满足差分进化算法的迭代终止条件:如果不满足条件,则跳回步骤(e)继续执行;如果满足条件,则输出记录的覆盖对应路径的测试用例集合。
2.根据权利要求1所述基于路径覆盖软件测试的测试用例自动生成方法,其特征在于:步骤(a)中,对输入的被测程序采用单元测试的测试方法,对于各个功能单元分析对应功能单元的输入、输出以及判断、循环分支,画出功能单元的控制流图CFG;并依据控制流图CFG确定所有路径的编码,首先将测试程序汇总所有的判断、循环分支进行编号,设为1~K,设定路径为一个长度为N的字符串,如果路径经过第k个分支判断节点,那么该路径的第k位的值为字符“1”或者字符“0”,字符“1”表示路径走的是No方向,字符“0”表示路径走的是Yes方向,如果未经过第k个分支判断节点,则可使用字符“N”表示,通过这种方式对路径进行编码,所有的路径都能用一个长度为N的字符串表示。
3.根据权利要求1所述基于路径覆盖软件测试的测试用例自动生成方法,其特征在于:步骤(b)中,分析被测试程序的输入、输出数据类型和范围,确定具体问题的编码,具体包括:对于数值型的数据变量,需要确定数据具体是整数还是浮点数,并且设定其取值范围;如果变量的类型是字符型,使用[0,255]范围内的整数表示一个ASCII码符号,而一个长度为m的字符串就可使用m个[0,255]范围内的整数表示;如果变量是枚举类型,其中枚举选择的数量是k,使用[1,k]范围内的整数来表示一个输入的测试用例;对于输入、输出是上述类型的组合的情况,只需要组合上述输入、输出的类型,就可得到一个测试用例。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华南理工大学,未经华南理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710766422.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:入料口结构及反击式破碎机
- 下一篇:一种加球机构及球磨系统