1.一种结合关键边概率与路径层接近度的多路径覆盖测试方法,其特征在于,所述方法包括如下步骤:步骤一、获取目标路径:
根据被测程序生成随机的测试数据,以根据所述随机的测试数据得到被测程序对应的节点覆盖信息,根据所述节点覆盖信息计算得到节点被穿越的概率;其中,所述节点被穿越的概率表示节点被所述随机的测试数据穿越的概率;
设定概率阈值,当判断到所述节点被穿越的概率低于所述概率阈值,则判定对应的节点为难覆盖节点;
当任一路径中的其中一条边所属的两节点均为难覆盖节点,则判定对应的边为关键边,并通过所述关键边构成所述目标路径;
步骤二、设计适应度函数:
在被测程序中以所述随机的测试数据计算关键边概率,并根据所述关键边概率计算得到个体贡献度,并根据所述被测程序的路径层图计算得到路径层接近度,利用所述个体贡献度以及所述路径层接近度设计得到适应度函数;其中所述关键边概率为所述随机的测试数据穿越关键边的概率;
步骤三、生成覆盖目标路径的测试数据:
根据所述适应度函数计算得到个体适应度,当判断到所述个体适应度大于适应度阈值,则计算得到路径相似度;
根据所述路径相似度判断是否存在相似路径,若存在,则子种群覆盖其它相似路径,以发挥个体信息在测试数据进化生成中的作用。
2.根据权利要求1所述的结合关键边概率与路径层接近度的多路径覆盖测试方法,其特征在于,在所述步骤一中,根据被测程序生成随机的测试数据,以根据所述随机的测试数据得到被测程序对应的节点覆盖信息的公式表示为: (1)
其中, 表示第 条测试路径 穿越第 个穿越节点 的状态。
3.根据权利要求2所述的结合关键边概率与路径层接近度的多路径覆盖测试方法,其特征在于,在所述步骤一中,所述方法包括:输入m组随机的测试数据到被测程序中,以得到由m条穿越路径组成的集合;
根据节点覆盖信息以及由m条穿越路径组成的集合计算得到穿越矩阵,穿越矩阵表示为;
(2)
其中, 表示穿越矩阵, 表示穿越路径中的第1个穿越节点至第n个穿越节点, 表示执行被测程序时得到的m条穿越路径, 表示第m个穿越路径 穿越第个穿越节点 的状态,m表示穿越路径的数量且等于随机的测试数据的组数,n表示穿越节点的数量。
4.根据权利要求3所述的结合关键边概率与路径层接近度的多路径覆盖测试方法,其特征在于,根据穿越矩阵,计算得到穿越节点 的路径数,对应的路径数的计算公式表示为: (3)
其中, 表示穿越节点 的路径数;
穿越节点 被穿越的概率 表示为:
(4)
关键边概率表示为:
(5)
其中, 表示关键边概率, 表示穿越节点 被穿越的概率, 表示穿越节点 与穿越节点 组成的关键边。
5.根据权利要求4所述的结合关键边概率与路径层接近度的多路径覆盖测试方法,其特征在于,在所述步骤二中,所述个体贡献度的计算公式表示为: (6)
其中,表示其中一个个体, 表示其中一条目标路径, 表示种群中的个体 对进化生成测试数据用于覆盖目标路径集 中的其中一条目标路径 所做出的个体贡献度。
6.根据权利要求5所述的结合关键边概率与路径层接近度的多路径覆盖测试方法,其特征在于,在所述步骤二中,所述路径层接近度的计算公式表示为: (7)
(8)
其中, 表示路径接近度, 表示个体 对应的测试路径, 表示穿越节点 与穿越节点 组成的关键边, 表示关键边 的层级, 表示关键边 的层级,的取值范围均为 。
7.根据权利要求6所述的结合关键边概率与路径层接近度的多路径覆盖测试方法,其特征在于,关键边 的层级 对应的计算公式表示为: (9)
其中, 表示穿越节点 的层级, 表示穿越节点 的层级;
关键边 的层级 对应的计算公式表示为:
(10)
其中, 表示穿越节点 的层级, 表示穿越节点 的层级。
8.根据权利要求7所述的结合关键边概率与路径层接近度的多路径覆盖测试方法,其特征在于,在所述步骤二中,适应度函数的计算公式表示为: (11)
其中, 表示个体 的测试路径对应的适应度函数。
9.根据权利要求8所述的结合关键边概率与路径层接近度的多路径覆盖测试方法,其特征在于,在所述步骤三中,路径相似度的计算公式表示为: (12)
(13)
其中, 表示穿越路径 与穿越路径 之间的路径相似度, 表示穿越路径 的关键边个数, 表示穿越路径 的关键边个数, 表示穿越路径 的第个位置上的关键边, 表示穿越路径 的第 个位置上的关键边, 表示统计穿越路径 与穿越路径 之间相同关键边的个数。