[发明专利]测试样本的生成方法及装置有效
申请号: | 201610119320.8 | 申请日: | 2016-03-02 |
公开(公告)号: | CN107153605B | 公开(公告)日: | 2021-07-06 |
发明(设计)人: | 范祚至 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京博浩百睿知识产权代理有限责任公司 11134 | 代理人: | 宋子良 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 测试 样本 生成 方法 装置 | ||
1.一种测试样本的生成方法,其特征在于,包括:
获取指定样本中关键数据的信息;其中,该关键数据为所述指定样本中,污染被测试程序的分支指令的数据;
根据所述关键数据的信息对所述指定样本中所述关键数据进行变异,得到变异后的指定样本;
以所述变异后的指定样本作为所述被测试程序的输入,执行所述被测试程序;
在执行所述被测试程序的过程中,如果检测到新的代码执行路径,则将所述变异后的指定样本确定为测试样本;其中,所述新的代码执行路径为所述指定样本作为所述被测试程序的输入时,与所述被测试程序执行的代码执行路径不同的执行路径。
2.根据权利要求1所述的方法,其特征在于,所述关键数据的信息包括以下至少之一:所述关键数据的长度和所述关键数据在所述指定样本中的位置。
3.根据权利要求1或2所述的方法,其特征在于,获取指定样本中的关键数据的信息包括:
将所述指定样本标记为污染源;
将所述污染源作为所述被测试程序的输入,执行所述被测试程序;
获取所述污染源中污染所述被测试程序的分支指令的数据在所述指定样本中的位置和长度,得到所述关键数据的信息。
4.根据权利要求3所述的方法,其特征在于,获取所述污染源中污染所述被测试程序的分支指令的数据在所述指定样本中的位置和长度包括:
在执行所述被测试程序的过程中,当执行到所述分支指令时,检测所述分支指令是否被所述污染源污染;
如果检测到所述分支指令被所述污染源污染,记录所述污染源中污染所述分支指令的数据在所述指定样本中的位置和长度。
5.根据权利要求4所述的方法,其特征在于,记录所述污染源中污染所述分支指令的数据在所述指定样本中的位置和长度之后,所述方法还包括:
继续执行所述被测试程序,并在继续执行所述被测试程序的过程中执行以下处理过程,直至所述被测试程序执行结束:检测所述被测试程序中的其他分支指令是否被所述污染源污染;记录所述污染源中污染所述其他分支指令的数据在所述指定样本中的位置和长度。
6.一种测试样本的生成装置,其特征在于,包括:
获取模块,用于获取指定样本中关键数据的信息;其中,该关键数据为所述指定样本中,污染被测试程序的分支指令的数据;
变异模块,用于根据关键数据的信息对所述指定样本中关键数据进行变异,得到变异后的指定样本;
确定模块,用于以所述变异后的指定样本作为所述被测试程序的输入,执行所述被测试程序;在执行所述被测试程序的过程中,如果检测到新的代码执行路径,则将所述变异后的指定样本确定为测试样本;其中,所述新的代码执行路径为所述指定样本作为所述被测试程序的输入时,与所述被测试程序执行的代码执行路径不同的执行路径。
7.根据权利要求6所述的装置,其特征在于,所述关键数据的信息包括以下至少之一:所述关键数据的长度和所述关键数据在所述指定样本中的位置。
8.根据权利要求6或7所述的装置,其特征在于,所述获取模块还用于将所述指定样本标记为污染源;将所述污染源作为所述被测试程序的输入,执行所述被测试程序;获取所述污染源中污染所述被测试程序的分支指令的数据在所述指定样本中的位置和长度,得到所述关键数据的信息。
9.根据权利要求8所述的装置,其特征在于,所述获取模块还用于在执行所述被测试程序的过程中,当执行到所述分支指令时,检测所述分支指令是否被所述污染源污染;如果检测到所述分支指令被所述污染源污染,记录所述污染源中污染所述分支指令的数据在所述指定样本中的位置和长度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610119320.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:单元性能测试方法及设备
- 下一篇:一种程序分析过程可视化方法及系统