1.一种基于二分搜索迭代的测试用例生成方法,其特征在于,包括:a、对被测程序进行静态分析,提取所述被测程序的目标路径集和静态结构信息;
b、基于所提取的静态结构信息,执行二分搜索迭代算法产生新的测试用例;
c、将生成的新的测试用例驱动被测程序运行,记录并更新路径覆盖信息;
d、判断二分迭代算法是否达到了算法终止条件,在不满足迭代终止的情况下,从当前迭代产生的测试用例和上一次迭代保留下来的测试用例中选取适应度最优的一个测试用例进行下一轮的迭代;
e、重复执行b~d,直到迭代算法满足终止条件,生成覆盖被测程序所有目标路径的所有测试用例。
2.根据权利要求1所述的方法,其特征在于,所述目标路径集为被测程序中所有需要被覆盖的路径的集合,所述静态结构信息包括被测程序的测试数据的范围和测试数据的类型。
3.根据权利要求2所述的方法,其特征在于,所述基于所提取的静态结构信息,执行二分搜索迭代算法产生新的测试用例包括:根据所述静态结构信息,确定二分搜索迭代算法的搜索空间大小和算法终止条件,所述算法终止条件为路径全覆盖或者达到规定的运行时间;
在第一次迭代中,随机生成测试用例x,测试用例x通过如下方式随机生成:xj=Lowj+rand(0,1)·(Upj-Lowj),j=1,2,…,D其中,D是测试用例的维数,Upj、Lowj分别是测试用例x的第j维的上界和下界,rand(0,
1)表示由均匀分布在[0,1]范围内产生的随机数。
根据测试用例x的一个维度生成两个候选测试用例u1和u2包括:uk=x;
其中,k=1,2;基于二分查找的思想,sj会从(Upj-Lowj)·0.5迭代性减少到预设阈值,在测试用例x的第j维探索中,一共迭代t次,在第t次迭代中,sj=(Upj-Lowj)·0.5t;uk和x除了第j维外,其他维度均相同。
4.根据权利要求3所述的方法,其特征在于,所述将生成的测试用例驱动被测程序运行,记录并更新路径覆盖信息包括:将生成测试用例作为被测程序的测试输入数据,记录检测输出结果,更新路径覆盖信息。
5.根据权利要求4所述的方法,其特征在于,所述判断二分迭代算法是否达到了算法终止条件,在不满足迭代终止的情况下,从当代迭代产生的测试用例和上一次迭代保留下来的测试用例中选取适应度最优的一个测试用例进行下一轮的迭代包括:若未达到算法终止条件,则基于测试用例的适应度函数值,从测试用例x、测试用例u1和u2中选取最优的测试用例替换测试用例x进行下一次的迭代;
所述初始化测试用例x的更新过程为:
其中, BD(px,pt)是测试用例x所覆盖的路径px
和目标路径pt的分支距离,AL(px,pt)是测试用例x所覆盖的路径px和目标路径pt之间不匹配的分支谓词的数量,所述目标路径pt选择是基于最新被覆盖的路径。
6.一种基于二分搜索迭代的测试用例生成系统,其特征在于,包括:提取模块,用于对被测程序进行静态分析,提取所述被测程序的目标路径集和静态结构信息;
生成模块,用于基于所提取的静态结构信息,执行二分搜索迭代算法生成新的测试用例;
更新模块,用于将生成的新的测试用例驱动被测程序运行,记录并更新路径覆盖信息;
迭代模块,用于判断二分迭代算法是否达到了算法终止条件,在不满足迭代终止的情况下,从当前迭代产生的测试用例和上一次迭代保留下来的测试用例中选取适应度最优的一个测试用例进行下一轮的迭代;重复调用所述生成模块、所述更新模块和所述迭代模块,直到迭代算法满足终止条件,生成被测程序的所有目标路径的所有测试用例。
7.一种电子设备,其特征在于,包括存储器、处理器,所述处理器用于执行存储器中存储的计算机管理类程序时实现如权利要求1-5任一项所述的基于二分搜索迭代的测试用例生成方法的步骤。
8.一种计算机可读存储介质,其特征在于,其上存储有计算机管理类程序,所述计算机管理类程序被处理器执行时实现如权利要求1-5任一项所述的基于二分搜索迭代的测试用例生成方法的步骤。