[发明专利]代码检测方法、装置以及设备、存储介质有效
| 申请号: | 201910906421.3 | 申请日: | 2019-09-24 |
| 公开(公告)号: | CN110765003B | 公开(公告)日: | 2023-06-02 |
| 发明(设计)人: | 林静 | 申请(专利权)人: | 贝壳技术有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/30 |
| 代理公司: | 北京思源智汇知识产权代理有限公司 11657 | 代理人: | 毛丽琴 |
| 地址: | 300457 天津市滨海新区经济技术开发*** | 国省代码: | 天津;12 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 代码 检测 方法 装置 以及 设备 存储 介质 | ||
1.一种代码检测方法,包括:
对待检测的源代码进行分析,获得所述源代码中的函数名称信息;
基于所述函数名称信息判断所述源代码中是否包含有规定的事件命名空间函数名称;所述规定的事件命名空间函数名称包括:自定义事件命名空间函数、DOM操作事件命名空间函数和渲染事件命名空间函数中至少一个函数的名称;
如果不包含有规定的所述事件命名空间函数名称,则确定所述源代码中存在第一代码缺陷,并生成与此第一代码缺陷相对应的第一缺陷报告信息;
判断所述源代码中的所述事件命名空间函数是否符合预设的事件命名空间函数使用规则,如果不符合预设的所述事件命名空间函数使用规则,则确定所述源代码中存在第二代码缺陷,并生成与此第二代码缺陷相对应的第二缺陷报告信息。
2.如权利要求1所述的方法,其中,所述事件命名空间函数使用规则包括如下的至少一个规则:
在构造函数中初始化所述事件命名空间函数,
生成与所述事件命名空间函数相对应的实例对象,和
将所述实例对象与所述事件命名空间函数的全局对象进行绑定。
3.如权利要求1所述的方法,还包括:
获得所述源代码中的全部事件函数并确定与所述全部事件函数相对应的函数调用关系;
基于所述函数调用关系判断是否有事件函数未在事件命名空间函数中定义和实现;
如果有事件函数未在事件命名空间函数中定义和实现,则确定所述源代码中存在第三代码缺陷,并生成与此第三代码缺陷相对应的第三缺陷报告信息。
4.如权利要求3所述的方法,其中,所述基于所述函数调用关系判断是否有事件函数未在事件命名空间函数中定义和实现包括:
基于所述函数调用关系判断是否有自定义事件函数未在所述自定义事件命名空间函数中定义和实现、是否有DOM操作事件函数未在所述DOM操作事件命名空间函数中定义和实现、或者是否有渲染事件函数未在所述渲染事件命名空间函数中定义和实现。
5.如权利要求4所述的方法,还包括:
获得所述源代码中的render方法中的全部DOM操作事件函数;
判断所述全部DOM操作事件函数是否都在所述DOM操作事件命名空间函数中定义和实现;
如果未都在所述DOM操作事件命名空间函数中定义和实现,则确定所述源代码中存在所述第三代码缺陷,并生成与此第三代码缺陷相对应的缺陷。
6.如权利要求1所述的方法,还包括:
基于与预设的代码分解标准对所述源代码进行语法分解,获得多个分段代码;
基于与预设的代码检测标准对所述分段代码进行代码检测,基于缺陷报告信息判断所述源代码是否存在第四代码缺陷;
如果存在第四代码缺陷,则基于此第四代码缺陷生成第四缺陷报告信息;
其中,所述代码检测标准包括:语法检测标准、格式检测标准、安全检测标准中的至少一个。
7.如权利要求1至6任一项所述的方法,还包括:
截获通过版本管理工具向代码库中提交的所述源代码,对所述源代码进行检测;
如果确定所述源代码存在代码缺陷,则基于缺陷报告信息生成检测报告终止所述源代码的提交;
如果确定所述源代码未存在代码缺陷,则通过所述版本管理工具将所述源代码发布在代码库中。
8.如权利要求7所述的方法,其中,
所述源代码包括:基于react应用架构的JS源代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于贝壳技术有限公司,未经贝壳技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910906421.3/1.html,转载请声明来源钻瓜专利网。





