[发明专利]一种代码的测试方法和装置在审
| 申请号: | 202010328137.5 | 申请日: | 2020-04-23 |
| 公开(公告)号: | CN113553250A | 公开(公告)日: | 2021-10-26 |
| 发明(设计)人: | 陈永富;龙团;陈超;黄泳霖;谢宗兴;屈阳;巫富强;林凡 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 北京派特恩知识产权代理有限公司 11270 | 代理人: | 赵翠萍;张颖玲 |
| 地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 代码 测试 方法 装置 | ||
本发明提供了一种代码的测试方法、装置、电子设备及计算机可读存储介质;方法包括:解析代码,确定所述代码的语法树中需要进行切面配置的节点;生成代理函数,其中,所述代理函数包括所述代码的切面配置逻辑;将位于所述需要进行切面配置的节点处的原函数替换为所述代理函数;执行所述代理函数包括的切面配置逻辑以模拟运行所述代码,接收所述代理函数输出的模拟执行结果;将所述模拟执行结果与期望执行结果进行匹配,生成所述代码的测试结果。通过本发明,能够高效且准确的对代码进行测试。
技术领域
本发明涉及计算机软件测试技术领域,尤其涉及一种代码的测试方法、装置、电子设备及计算机可读存储介质。
背景技术
随着互联网技术的蓬勃发展,多种多样的客户端在社会生产中扮演了举足轻重的作用,对于这一类的应用程序,需要网络中有相应的服务器端和代码来提供相应的服务,例如,数据库服务或电子邮件服务等。为保证客户端的正常运行,服务器端通常根据服务器端中存储的代码,向客户端提供服务,为了保证服务器端可以向客户端提供准确的服务,需要对服务器端中的代码进行测试,以发现并修复代码中的漏洞。
目前,相关技术通常通过在代码编译前生成包含测试逻辑的代理函数,然后以人工方式替换原有的函数调用,以实现对代码的测试。然而,服务器端中存储的代码随着业务的扩展需要不断进行更新,每更新一次将会得到一个新的代码,需要重新采取人工介入的方式对其进行测试,测试过程的开销巨大。
发明内容
本发明实施例提供一种代码的测试方法、装置、电子设备及计算机可读存储介质,能够高效且准确的对代码进行测试。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种代码的测试方法,所述方法包括:
解析代码,确定所述代码的语法树中需要进行切面配置的节点;
生成代理函数,其中,所述代理函数包括所述代码的切面配置逻辑;
将位于所述需要进行切面配置的节点处的原函数替换为所述代理函数;
执行所述代理函数包括的切面配置逻辑以模拟运行所述代码,接收所述代理函数输出的模拟执行结果;
将所述模拟执行结果与期望执行结果进行匹配,生成所述代码的测试结果。
本发明实施例提供一种代码的测试装置,包括:
解析模块,用于解析代码,确定所述代码的语法树中需要进行切面配置的节点;
生成模块,用于生成代理函数,其中,所述代理函数包括所述代码的切面配置逻辑;
替换模块,用于将位于所述需要进行切面配置的节点处的原函数替换为所述代理函数;
执行模块,用于执行所述代理函数包括的切面配置逻辑以模拟运行所述代码,接收所述代理函数输出的模拟执行结果;
匹配模块,用于将所述模拟执行结果与期望执行结果进行匹配,生成所述代码的测试结果。
上述方案中,所述解析模块,还用于解析所述代码中的切面配置以确定所述代码中的扩展函数,并获取所述扩展函数的返回值;根据所述扩展函数的返回值中的正则表达式,遍历所述代码的语法树,以在所述代码的语法树中,确定需要进行切面配置的节点。
上述方案中,所述生成模块,还用于确定位于所述需要进行切面配置的节点处的原函数的名称和参数;构建与所述原函数的名称和参数一致的函数体;在所述函数体中添加用于模拟运行所述代码的切面配置逻辑,以获得所述代理函数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010328137.5/2.html,转载请声明来源钻瓜专利网。





