[发明专利]静态代码检查方法、装置、计算机设备及可读存储介质在审
申请号: | 201911190536.3 | 申请日: | 2019-11-28 |
公开(公告)号: | CN112860261A | 公开(公告)日: | 2021-05-28 |
发明(设计)人: | 谢晓枫 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/71 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 邢惠童 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 静态 代码 检查 方法 装置 计算机 设备 可读 存储 介质 | ||
本公开提供了一种静态代码检查方法、装置、计算机设备及可读存储介质,属于代码检查领域。所述方法包括:根据获取到的第一版本代码和基于对第一版本代码的代码编辑操作得到的第二版本代码,确定差异代码,调用目标代码检查工具,对差异代码进行静态代码检查,输出检查结果。本公开通过仅对差异代码进行静态代码检查,可以有效确定差异代码存在的问题,避免早期代码带来的影响,由于无需对早期代码进行静态代码检查,而仅仅对于数据量大大降低的差异代码来进行检测,可以提高检查效率,及时发现问题。
技术领域
本公开涉及代码检查领域,特别涉及一种静态代码检查方法、装置、计算机设备及可读存储介质。
背景技术
随着计算机技术的不断发展,各种类型的软件层出不穷,在进行动态代码测试之前进行代码检查,有助于帮助开发人员快速、有效地定位代码缺陷,以便开发人员及时纠正这些问题。静态代码检查无需运行代码,通过词法分析、语义分析、控制流分析、数据流分析等技术即可以实现对程序代码的扫码,从而极大地提高软件可靠性,节省软件开发和测试成本。
目前进行静态代码检查主要是通过根据编程语言选择不同的静态检查工具,如样式检查(CheckStyle)、代码扫描分析工具(Lint)等,对利用不同编程语言编写的项目的所有源代码进行检测,找出其中存在问题的代码。
现在的项目源码数量庞大,一次静态检查耗时很容易就达到数十分钟甚至几个小时,检查效率低,而且早期项目为了快速迭代,存在大量不符合现有标准的“问题代码”,每次静态检查都会检查出早期代码中存在的大量问题,但是这些代码基本不会有新的改动,也不能改动,而新增代码检查出来的问题相比早起代码中存在的问题又非常少,很容易被淹没在早期代码的大量问题中,难以被发现。
发明内容
本公开实施例提供了一种静态代码检查方法、装置、计算机设备及可读存储介质,可以解决相关技术中静态代码检查效率低、差异代码的问题不易被发现的问题。所述技术方案如下:
一方面,提供了一种静态代码检查方法,该方法包括:
获取第一版本代码和第二版本代码,该第二版本代码基于对该第一版本代码的代码编辑操作得到;
根据该第一版本代码和该第二版本代码,确定差异代码;
调用目标代码检查工具,对该差异代码进行静态代码检查,输出静态代码检查的检查结果。
一方面,提供了一种静态代码检查装置,该装置包括:
获取模块,用于获取第一版本代码和第二版本代码,该第二版本代码基于对该第一版本代码的代码编辑操作得到;
确定模块,用于根据该第一版本代码和该第二版本代码,确定差异代码;
检查模块,用于调用目标代码检查工具,对该差异代码进行静态代码检查;
输出模块,用于输出静态代码检查的检查结果。
在一种可能的实现方式中,该装置还包括:
比较模块,用于将该第一版本代码与该第二版本代码进行比较;
该确定模块,还用于确定该第二版本代码中相对于该第一版本代码发生变动的代码,将所确定的代码作为该差异代码。
在一种可能的实现方式中,该装置还包括:
语法解析模块,用于对该第一版本代码和该第二版本代码进行语法解析,得到该第一版本代码和该第二版本代码的特征字符;
对比模块,用于以该第一版本代码的首个特征字符为起始点,对比该第一版本代码与该第二版本代码中各个特征字符,得到该各个特征字符的相似度;
该确定模块,还用于根据任一个特征字符的相似度,确定该任一个特征字符对应的代码是否为该差异代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911190536.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:监控数据的处理方法、装置、系统和存储介质
- 下一篇:磁性滤器