[发明专利]一种代码检测方法、设备及介质有效
申请号: | 201910769427.0 | 申请日: | 2019-08-20 |
公开(公告)号: | CN110659204B | 公开(公告)日: | 2021-04-20 |
发明(设计)人: | 黄斌;袁明凯;王烨坤;罗章龙;严明 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 郝传鑫;贾允 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 检测 方法 设备 介质 | ||
1.一种代码检测方法,其特征在于,所述方法包括:
获取源码文件编译的数据文件;
通过反编译数据文件,获取伪代码文件,所述伪代码文件为和源码文件逻辑相匹配的文件;
获取所述伪代码文件中代码变量的语义信息,所述语义信息为用于表征代码变量执行的操作;
基于所述语义信息对所述代码变量进行检测,获取所述伪代码文件中的错误代码;
基于预设的逻辑关系模型,确定所述伪代码文件中代码变量之间的逻辑关系,所述逻辑关系模型为do-is、is-is、is-do和do-do的逻辑关系组成的逻辑关系模型;
根据所述语义信息和所述逻辑关系,得到所述代码变量组成的场景逻辑;
基于所述场景逻辑对所述代码变量进行检测,获取所述伪代码文件中的错误代码。
2.根据权利要求1所述的一种代码检测方法,其特征在于,所述获取伪代码文件中代码变量的语义信息包括:
查找预设的词库信息是否存在所述伪代码文件中的代码变量;
若查找的结果为是时,则根据查找结果,获取所述代码变量的语义信息。
3.根据权利要求2所述的一种代码检测方法,其特征在于,所述获取所述伪代码文件中代码变量的语义信息还包括:
若查找的结果为否时,则根据预设的代码命名方法,拆分所述代码变量;
通过翻译所述拆分后的代码变量,获取所述代码变量的语义信息。
4.根据权利要求1所述的一种代码检测方法,其特征在于,所述基于所述语义信息对所述代码变量进行检测,获取所述伪代码文件中的错误代码包括:
根据所述代码变量的语义信息,确定代码变量执行的操作;
确定通用测试用例中执行的操作;
根据所述通用测试用例中执行的操作,检测是否存在对应的代码变量执行的操作;
若否,则确定所述代码变量为伪代码文件中的错误代码。
5.根据权利要求1所述的一种代码检测方法,其特征在于,所述获取代码变量之间的逻辑关系之后,还包括:
根据所述语义信息,检查代码变量执行的操作是否关联;
若否,则确定所述代码变量之间的逻辑关系为错误的逻辑关系,并排除所述错误的逻辑关系。
6.根据权利要求1所述的一种代码检测方法,其特征在于,所述根据所述语义信息和所述逻辑关系,得到所述代码变量组成的场景逻辑包括:
根据所述语义信息,确定所述代码变量执行的操作;
基于所述逻辑关系组合所述代码变量执行的操作,得到所述代码变量组成的场景逻辑。
7.根据权利要求1所述的一种代码检测方法,其特征在于,所述基于所述场景逻辑对所述代码变量进行检测,获取所述伪代码文件中的错误代码包括:
基于所述场景逻辑中确定的语义信息,在伪代码文件中筛选所述场景逻辑,获取所述场景逻辑的出现次数;
若所述场景逻辑的出现次数大于或等于预设阈值,则确定所述场景逻辑为固定逻辑;
根据所述固定逻辑,检测所述伪代码文件中相同类型的场景逻辑是否与所述固定逻辑匹配;
若否,则确定所述场景逻辑为伪代码文件中的错误代码。
8.一种设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1-7任一项所述的一种代码检测方法。
9.一种介质,所述介质包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1-7任一项所述的一种代码检测方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910769427.0/1.html,转载请声明来源钻瓜专利网。