[发明专利]一种基于贪婪算法和搜索算法的混合算法的组合测试用例生成算法在审
申请号: | 202010906633.4 | 申请日: | 2020-09-01 |
公开(公告)号: | CN111984542A | 公开(公告)日: | 2020-11-24 |
发明(设计)人: | 勾善义 | 申请(专利权)人: | 勾善义 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 210023 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 贪婪 算法 搜索 混合 组合 测试 生成 | ||
1.一种基于贪婪算法和搜索算法的混合算法的组合测试用例生成算法,其主要步骤如下:
步骤1)、生成满足要求的覆盖数组。
步骤2)、首先选择贪婪算法,如图2,根据贪婪算法特性逐步覆盖数组。
步骤3)、当覆盖标准达到K后,贪婪算法遇到瓶颈,选择搜索算法代替,如图3,以期达到更优的效果。
进一步的,所述步骤1)的具体步骤如下:
步骤1.0)、首先是构建数组,构建覆盖数组的总体目标是创建一个二维数组,其中所有与指定输入关联的t元组都会被覆盖。
步骤1.1)、组合测试使用覆盖表CA作为测试用例集,CA是一个大小为M×k维的矩阵。本发明中,测试用例条数,即覆盖表的大小标记为N;覆盖强度标记为t;待测系统参数个数为其中,取值个数为vi的参数有ki(1≤i≤m,m≤k)个,vi(1≤i≤k)表示第i个参数取值集合,|vi|表示第i个参数取值个数。则CA表有如下表示:
进一步的,所述步骤2)的具体步骤如下:
步骤2.1)、通过使用贪婪算法,将每个因子与某个级别的值绑定在一起,可以为该集合一次建立一行。一旦所有t元组都被覆盖,覆盖数组就完成了。本发明可以动态设置参数K,当覆盖率达到K时,将贪婪算法转换为搜索算法,避免陷入局部最优。
步骤2.2)、手动选择第一个测试用例T,或者自动选择T,T的选择会影响后续测试用例的生成。
步骤2.3)、根据步骤2.2)选中的测试用例T,选择测试用例T’,选择标准是转换成本最低,如果同时存在多个T’,则选择其中一个。在此阶段,覆盖率逐渐上升。
进一步的,所述步骤3)的具体步骤如下:
步骤3.1)、用户可以根据自己的实际需求,设置一个覆盖标准值K。如果标准值K设置得过高,则有可能在贪婪算法陷入局部最优时仍未达到K,会影响性能。
步骤3.2)、当覆盖率到达K时,本发明将选择搜索算法继续生成测试用例。
步骤3.4)、假定S为SUT应涵盖的所有未覆盖2值组合的集合,Tg为生成的测试用例的集合。对于每个测试候选t,t(2-way)表示t覆盖的S中的所有2-way值组合。则有:
Fitness(t)=|t(2-way)∩S|
其中Fitness用来衡量每个候选者的质量。以此来选择候选者。因为这是搜索算法的一般方法,因此对于其他强度的组合也适用。
步骤3.5)、当步骤3.4)中S为空时,CA完全覆盖,流程结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于勾善义,未经勾善义许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010906633.4/1.html,转载请声明来源钻瓜专利网。