[发明专利]用于测试代码文件的方法和装置有效
申请号: | 201910293797.1 | 申请日: | 2019-04-12 |
公开(公告)号: | CN110059009B | 公开(公告)日: | 2023-06-27 |
发明(设计)人: | 李鹏;陈耀辉;韦韬 | 申请(专利权)人: | 百度(美国)有限责任公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京英赛嘉华知识产权代理有限责任公司 11204 | 代理人: | 王达佐;马晓亚 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 测试 代码 文件 方法 装置 | ||
1.一种用于测试代码文件的方法,包括:
编译待测试代码文件得到中间代码文件;
将第一插桩内容插桩到所述中间代码文件,其中,所述第一插桩内容包括用于指示所述中间代码文件中的每个代码块的代码块标识;
根据所述中间代码文件中的各个代码块标识,确定所述中间代码文件中存在跳转关系的两代码块之间的跳转关系标识;
基于各所述代码块标识和各所述跳转关系标识,对所述插桩后的所述中间代码文件进行动态测试,生成测试所述待测试代码文件的测试结果,其中,所述动态测试包括:
生成测试用例集合,以及新建空的测试过程信息集合;
执行以下第一测试操作:响应于确定不满足预设切换条件,以所述测试用例集合中的测试用例作为输入,对经编译的插桩后的所述中间代码进行灰盒模糊测试,用灰盒模糊测试过程中所用到的测试用例、灰盒模糊测试过程所访问的跳转关系标识和灰盒模糊测试过程对应的错误访问标识生成测试过程信息,其中,灰盒模糊测试过程对应的错误访问标识用以表征灰盒模糊测试过程是否访问过错误检测语句;并且将所生成的测试过程信息添加到所述测试过程信息集合中;以及
响应于确定满足所述预设切换条件,执行以下第二测试操作:用候选测试用例生成候选测试用例集合;其中,所述候选测试用例是所述测试过程信息集合中错误访问标识为是和/或所访问的跳转关系标识不为空的测试过程信息中的测试用例,以所述候选测试用例集合中的候选测试用例作为输入,动态符号执行插桩后的所述中间代码文件,生成与所输入的候选测试用例的执行路径互补的互补测试用例;将所生成的互补测试用例添加到所述测试用例集合中;继续执行所述第一测试操作。
2.根据权利要求1所述的方法,其中,所述基于各所述代码块标识和各所述跳转关系标识,对所述插桩后的所述中间代码文件进行动态测试,生成测试所述待测试代码文件的测试结果,包括:
编译插桩后的所述中间代码文件,得到与插桩后的所述中间代码文件对应的目标文件;
基于各所述代码块标识和各所述跳转关系标识,交叉对所述目标文件进行灰盒模糊测试以及动态符号执行插桩后的所述中间代码文件,生成测试所述待测试代码文件的测试结果。
3.根据权利要求1所述的方法,其中,所述基于各所述代码块标识和各所述跳转关系标识,对所述插桩后的所述中间代码文件进行动态测试,生成测试所述待测试代码文件的测试结果,包括:
编译插桩后的所述中间代码文件,得到与插桩后的所述中间代码文件对应的目标文件;
基于各所述代码块标识和各所述跳转关系标识,对所述目标文件进行灰盒模糊测试,生成测试所述待测试代码文件的测试结果。
4.根据权利要求1所述的方法,其中,所述基于各所述代码块标识和各所述跳转关系标识,对所述插桩后的所述中间代码文件进行动态测试,生成测试所述待测试代码文件的测试结果,包括:
基于各所述代码块标识和各所述跳转关系标识,动态符号执行插桩后的所述中间代码文件,生成测试所述待测试代码文件的测试结果。
5.根据权利要求2所述的方法,其中,所述编译待测试代码文件得到中间代码文件,包括:
编译待测试代码文件得到包括第二插桩内容的中间代码文件,其中,所述第二插桩内容包括所述错误检测语句以及与用于指示所述错误检测语句所在位置的位置标记语句。
6.根据权利要求1所述的方法,其中,所述第一测试操作还包括:
将灰盒模糊测试过程中所用到的测试用例从所述测试用例集合中删除。
7.根据权利要求1所述的方法,其中,所述第一测试操作还包括:
响应于确定满足预设结束条件,将对经编译的插桩后的所述中间代码进行灰盒模糊测试的测试结果作为测试所述待测试代码文件的测试结果。
8.根据权利要求7所述的方法,其中,所述第二测试操作还包括:在继续执行所述第一测试操作之前,
将动态符号执行过程中所用到的候选测试用例从所述候选测试用例集合中删除。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度(美国)有限责任公司,未经百度(美国)有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910293797.1/1.html,转载请声明来源钻瓜专利网。