[发明专利]测试样本的生成方法及装置有效
申请号: | 201610119320.8 | 申请日: | 2016-03-02 |
公开(公告)号: | CN107153605B | 公开(公告)日: | 2021-07-06 |
发明(设计)人: | 范祚至 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京博浩百睿知识产权代理有限责任公司 11134 | 代理人: | 宋子良 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 测试 样本 生成 方法 装置 | ||
本发明公开了一种测试样本的生成方法及装置,其中,该方法包括:获取指定样本中关键数据的信息;其中,该关键数据为所述指定样本中,污染被测试程序的分支指令的数据;根据关键数据的信息对指定样本中关键数据进行变异,得到变异后的指定样本;将变异后的指定样本确定为测试样本。
技术领域
本发明涉及软件安全领域,具体而言,涉及一种测试样本的生成方法及装置。
背景技术
在软件测试(fuzz测试)中,评价测试效果的一个重要指标是代码覆盖率,也就是测试样本集合可达的程序执行路径占程序代码所有路径的百分比。
相关技术中的fuzz工具大体上可归为两类,盲测(blind fuzz)和智能测试(smartfuzz)。Blind fuzz通过随机修改文件中的数据生成测试样本,smart fuzz通过解析文件格式生成文件模板,根据模板中文件字段的类型进行变异,生成测试样本。
这两类fuzz本质上来讲都是以穷举的方式发现被测试程序的执行路径,在测试的初期可以发现较多的路径,但随着fuzz的进行,样本文件不断增大,随机变异的效果越来越差,越来越难以发现新的执行路径。
相关技术中的fuzz工具使用的样本生成策略,还停留在盲目变异的层次,一次变异产生的样本对程序执行流程的影响是未知的。尽管引入了改良的算法对变异后的样本进行了筛选,在发现新的程序执行路径方面提高有限,这在fuzz的后期样本文件变化很大时尤为明显,代码覆盖率仍然不高。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种测试样本的生成方法及装置,以至少解决相关技术中生成的测试样本存在代码覆盖率低的技术问题。
根据本发明实施例的一个方面,提供了一种测试样本的生成方法,包括:获取指定样本中关键数据的信息;其中,该关键数据为所述指定样本中,污染被测试程序的分支指令的数据;根据关键数据的信息对指定样本中关键数据进行变异,得到变异后的指定样本;将变异后的指定样本确定为测试样本。
根据本发明实施例的另一方面,还提供了一种测试样本的生成装置,包括:获取模块,用于获取指定样本中关键数据的信息;其中,该关键数据为指定样本中,污染被测试程序的分支指令的数据;变异模块,用于根据关键数据的信息对指定样本中关键数据进行变异,得到变异后的指定样本;确定模块,用于将变异后的指定样本确定为测试样本。
在本发明实施例中,采用根据获取的指定样本中的关键数据的信息,对该关键数据进行变异,得到变异后的指定样本,将该变异后的指定样本确定为测试样本的方式,即通过对指定样本中的关键数据的变异,生成测试样本,实现了对指定样本的精确变异,减少了无意义的样本的生成,进而提高了代码覆盖率,进而解决了相关技术中生成的测试样本存在代码覆盖率低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本申请实施例的一种测试样本的生成方法的计算机终端的硬件结构框图;
图2是根据本申请实施例1的测试样本的生成方法的流程图;
图3是根据本申请可选实施例的测试样本生成的方法的过程一的流程图;
图4是根据本申请可选实施例的测试样本生成的方法的过程二的流程图;
图5是根据本申请实施例的测试样本的生成装置的结构框图;
图6是根据本申请实施例的一种计算机终端的结构框图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610119320.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:单元性能测试方法及设备
- 下一篇:一种程序分析过程可视化方法及系统