[发明专利]一种基于源代码的动态测试的方法、系统、设备及介质有效
申请号: | 202010570088.6 | 申请日: | 2020-06-21 |
公开(公告)号: | CN111858310B | 公开(公告)日: | 2022-07-19 |
发明(设计)人: | 范益 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京连和连知识产权代理有限公司 11278 | 代理人: | 陈黎明 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 源代码 动态 测试 方法 系统 设备 介质 | ||
1.一种基于源代码的动态测试的方法,其特征在于,包括以下步骤:
对源代码进行扫描,确定需要进行测试的代码;
扫描所述需要进行测试的代码中的各个原函数,并基于所述原函数创建同名拦截函数,将所述原函数改名并包含在所述同名拦截函数中;
响应于接收到测试所述原函数的指令,将所述指令发送到所述同名拦截函数,并基于所述同名拦截函数将所述指令发送到改名后的原函数中以对所述改名后的原函数进行测试;以及
基于改名后的原函数将测试结果返回所述同名拦截函数,并基于所述同名拦截函数对所述测试结果进行展示。
2.根据权利要求1所述的方法,其特征在于,所述基于所述同名拦截函数对所述测试结果进行展示包括:
将所述测试结果与预期测试结果进行比对以判断所述测试结果中是否存在异常;
响应于所述测试结果中存在异常,记录所述异常并确定所述原函数产生异常的原因。
3.根据权利要求1所述的方法,其特征在于,所述基于所述同名拦截函数将所述指令发送到改名后的原函数中以对所述改名后的原函数进行测试包括:
创建函数表,响应于每次对原函数进行测试,创建记录标识,将所述记录标识与所述原函数进行关联并写入所述函数表中。
4.根据权利要求3所述的方法,其特征在于,所述基于所述同名拦截函数将所述指令发送到改名后的原函数中以对所述改名后的原函数进行测试还包括:
查询测试记录中上一个测试原函数是否与当前原函数相同。
5.根据权利要求4所述的方法,其特征在于,所述基于所述同名拦截函数将所述指令发送到改名后的原函数中以对所述改名后的原函数进行测试还包括:
响应于上一个测试原函数与当前原函数不同,查询是否存在所述当前原函数的父函数的测试记录。
6.根据权利要求5所述的方法,其特征在于,所述基于所述同名拦截函数将所述指令发送到改名后的原函数中以对所述改名后的原函数进行测试还包括:
响应于存在所述当前原函数的父函数的测试记录,将所述当前原函数的记录标识与所述父函数的记录标识进行关联。
7.根据权利要求6所述的方法,其特征在于,将所述当前原函数的记录标识与所述父函数的记录标识进行关联包括:
在所述父函数的信息表中添加所述当前原函数的记录标识。
8.一种基于源代码的动态测试的系统,其特征在于,包括:
扫描模块,配置用于对源代码进行扫描,确定需要进行测试的代码;
拦截模块,配置用于扫描所述需要进行测试的代码中的各个原函数,并基于所述原函数创建同名拦截函数,将所述原函数改名并包含在所述同名拦截函数中;
测试模块,配置用于响应于接收到测试所述原函数的指令,将所述指令发送到所述同名拦截函数,并基于所述同名拦截函数将所述指令发送到改名后的原函数中以对所述改名后的原函数进行测试;
结果模块,配置用于基于改名后的原函数将测试结果返回所述同名拦截函数,并基于所述同名拦截函数对所述测试结果进行展示。
9.一种计算机设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现权利要求1-4任意一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-4任意一项所述方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010570088.6/1.html,转载请声明来源钻瓜专利网。