【技术实现步骤摘要】
结合关键边概率与路径层接近度的多路径覆盖测试方法
[0001]本专利技术涉及计算机遗传算法
,特别涉及一种结合关键边概率与路径层接近度的多路径覆盖测试方法。
技术介绍
[0002]自动生成满足指定测试需求的数据是软件测试的关键问题,许多学者已提出各种方法用于测试数据自动生成。对代码已知的程序进行路径覆盖,是生成其对应测试数据的常见方法。其中,大多数软件测试数据自动生成问题可转化成目标路径覆盖问题。该问题可分为两方面:即包括单路径覆盖与多路径覆盖。多路径覆盖虽然在自动生成测试数据上较单路径覆盖复杂度更高,但其可在较少时间内生成更多覆盖目标路径的测试用例,其效率更高,适用性更广。
[0003]利用搜索的测试用例生成方法是软件自动测试领域的常用方法,实质上是把软件测试问题转换为优化问题并通过搜索算法生成测试数据。遗传算法作为经典的搜索算法,是求解多路径覆盖测试数据自动生成问题的有效方法,近年来国内外的相关研究较多。此外,生成难覆盖路径的测试用例是现有研究的热点。目前,判断路径难易覆盖的方法均是从节点角度考虑,路径覆盖 ...
【技术保护点】
【技术特征摘要】
1.一种结合关键边概率与路径层接近度的多路径覆盖测试方法,其特征在于,所述方法包括如下步骤:步骤一、获取目标路径:根据被测程序生成随机的测试数据,以根据所述随机的测试数据得到被测程序对应的节点覆盖信息,根据所述节点覆盖信息计算得到节点被穿越的概率;其中,所述节点被穿越的概率表示节点被所述随机的测试数据穿越的概率;设定概率阈值,当判断到所述节点被穿越的概率低于所述概率阈值,则判定对应的节点为难覆盖节点;当任一路径中的其中一条边所属的两节点均为难覆盖节点,则判定对应的边为关键边,并通过所述关键边构成所述目标路径;步骤二、设计适应度函数:在被测程序中以所述随机的测试数据计算关键边概率,并根据所述关键边概率计算得到个体贡献度,并根据所述被测程序的路径层图计算得到路径层接近度,利用所述个体贡献度以及所述路径层接近度设计得到适应度函数;其中所述关键边概率为所述随机的测试数据穿越关键边的概率;步骤三、生成覆盖目标路径的测试数据:根据所述适应度函数计算得到个体适应度,当判断到所述个体适应度大于适应度阈值,则计算得到路径相似度;根据所述路径相似度判断是否存在相似路径,若存在,则子种群覆盖其它相似路径,以发挥个体信息在测试数据进化生成中的作用。2.根据权利要求1所述的结合关键边概率与路径层接近度的多路径覆盖测试方法,其特征在于,在所述步骤一中,根据被测程序生成随机的测试数据,以根据所述随机的测试数据得到被测程序对应的节点覆盖信息的公式表示为:
ꢀꢀꢀꢀꢀ
(1)其中,表示第条测试路径穿越第个穿越节点的状态。3.根据权利要求2所述的结合关键边概率与路径层接近度的多路径覆盖测试方法,其特征在于,在所述步骤一中,所述方法包括:输入m组随机的测试数据到被测程序中,以得到由m条穿越路径组成的集合;根据节点覆盖信息以及由m条穿越路径组成的集合计算得到穿越矩阵,穿越矩阵表示为;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
其中,表示穿越矩阵,表示穿越路径中的第1个穿越节点至第n个穿越节点,表示执行被测程序时得到的m条穿越路径,表示第m个穿越路径穿越第个穿越节点的状态,m表示穿越路径的数量且等于随机的测试数据的组数,n表示穿越节点的数量。4.根据权利要求3所述的结合关键边概率与路径层接近度的多路径覆盖测试方法,其特征在于,根据穿越矩阵,计...
【专利技术属性】
技术研发人员:钱忠胜,成轶伟,俞情媛,秦朗悦,姚昌森,张丁,
申请(专利权)人:江西财经大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。