[发明专利]基于遗传方法和符号执行的组合加速测试用例生成方法有效
申请号: | 201811084639.7 | 申请日: | 2018-09-18 |
公开(公告)号: | CN109344057B | 公开(公告)日: | 2021-06-29 |
发明(设计)人: | 杨顺昆;苟晓冬;李红曼;边冲;刘文静;林欧雅;李大庆;佘志坤 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京慧泉知识产权代理有限公司 11232 | 代理人: | 王顺荣;唐爱华 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 遗传 方法 符号 执行 组合 加速 测试 生成 | ||
一种基于遗传方法和符号执行的组合加速测试用例生成方法,步骤如下:1:获取软件测试的待测程序;2:进行选择、变异和交叉操作;获取终止覆盖率,记为第一覆盖率;3:获取第一测试用例可达到的路径,记为第一路径集合;获取待测程序的所有可执行路径,记为第二路径集合;4:对比第一、二路径集合,确定出第一测试用例未覆盖路径记为第三路径集合;5:求解出目标路径对应的取值组合;6:测试第二测试用例的终止覆盖率,记为第二覆盖率;7:结合第一、二覆盖率进行评估,在不达标下重复步骤2‑6;本发明实现了当前路径的符号提取及所有条件的取值组合,从而实现遗传方法与符号执行的组合以及迭代,生成质量高的用例,且有高的覆盖率。
技术领域
本发明提供一种基于遗传方法和符号执行的组合加速测试用例生成方法,属于软件测试技术领域。
背景技术
随着软件技术的不断发展,面对软件系统可能存在的错误以及对软件系统的低质量与低可靠性的问题,测试技术应运而生,软件测试的优化作为测试技术研究的一个重要方向,选择好的测试用例集不仅能减少软件测试的工作量,还能提高软件开发的速度。因此,如何生成尽可能少量的测试用例且能提高软件测试中缺陷的检测能力,降低测试成本是软件测试优化研究领域中问题的核心。
目前,可采用遗传方法生成测试用例。该方法采用遗传方法的空间搜索求解能力自动生成一组符合条件的测试用例。在运行过程中,测试程序基于当前种群个体作为输入驱动程序的运行,以满足测试目标路径的条件作为方法的目标函数,不断的记录和跟踪方法每一代产生的测试用例执行过的路径,不断进化迭代方法,产生一代又一代的个体,直到找到正确解。然而,这种方法存在的缺陷是,用例生成的过程中,很容易陷入局部收敛,这样在少数遗传代数内便会停止生成用例,使遗传方法中的交叉与选择的操作失去作用,覆盖率往往达不到要求。于是,亟需一种方法能够解决遗传方法中该类种群老化而不能实现高覆盖率的问题。
发明内容
(一)目的
本发明公开了一种基于遗传方法和符号执行的组合加速测试用例生成方法,可以解决现有技术中用例自动生成过程中,种群老化容易陷入早熟,而使遗传方法中的交叉与选择的操作失去作用的问题,从而实现在较短时间内,生成尽可能少的测试用例,达到软件测试中较高的覆盖率,从而降低测试成本。
(二)技术方案
本发明提供了一种基于遗传方法和符号执行的组合加速测试用例生成方法,如图1所示,其实施步骤如下:
步骤1:获取软件测试的待测程序;
步骤2:基于遗传方法生成第一测试用例,根据适应度函数进行选择、变异和交叉操作,直到达到种群进化的终止条件;获取所述第一测试用例的终止覆盖率,记为第一覆盖率;
步骤3:获取所述第一测试用例可达到的路径,记为第一路径集合;获取所述待测程序的所有可执行路径,记为第二路径集合;
步骤4:对比所述第一路径集合和所述第二路径集合,确定出所述第一测试用例未覆盖路径记为第三路径集合;
步骤5:基于所述第三路径集合确定一条目标路径,使用符号执行方法,求解出所述目标路径对应的取值组合;
步骤6:基于所述取值组合,使用遗传方法生成第二测试用例,测试所述第二测试用例的终止覆盖率,记为第二覆盖率;
步骤7:结合所述第一覆盖率和所述第二覆盖率,对所述测试用例进行评估,在覆盖率不达标的情况下重复所述步骤2-6;
通过以上步骤,实现了通过符号执行这一方法对遗传方法所生成用例中未覆盖的路径进行当前路径的符号提取,并求解符号执行中满足约束集合的所有条件的取值组合,并基于该取值组合使遗传方法能够继续执行生成用例,从而实现遗传方法与符号执行的组合以及迭代,进而能够在较短的时间内,生成质量高的用例,且有较高的覆盖率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811084639.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种测试方法以及测试装置
- 下一篇:一种小程序自动化测试方法