[发明专利]静态代码扫描结果处理方法和装置有效
| 申请号: | 201610671439.6 | 申请日: | 2016-08-15 |
| 公开(公告)号: | CN106250319B | 公开(公告)日: | 2018-02-27 |
| 发明(设计)人: | 袁明凯;魏学峰;严明;张蓓;黄斌 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 深圳市深佳知识产权代理事务所(普通合伙)44285 | 代理人: | 王仲凯 |
| 地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 静态 代码 扫描 结果 处理 方法 装置 | ||
技术领域
本发明涉及计算机技术领域,尤其涉及一种静态代码扫描结果处理方法和装置。
背景技术
项目测试开发过程中,需要通过静态代码扫描来检查项目代码质量。其中,静态代码扫描指的是在不运行代码的方式下,通过文本分析和正则匹配等技术扫描程序代码,发现代码中存在的规范性、安全性问题的技术,输出项目代码的扫描报错。常用的静态代码扫描工具有TscanCode、Cppcheck、Cpplint和ReSharper等等。
项目代码每完成一次扫描,会输出一个扫描结果,扫描结果中包括若干条扫描报错。项目代码进行修改后形成新的版本,对新版本再次扫描时,会得到新的扫描结果。然而,现有的扫描工具只能提供每个版本的项目代码的扫描结果,不能提供不同版本的项目代码的扫描结果之间的对比。由于项目代码会在不同版本的开发迭代过程中发生变化,如代码的上下文、注释和行号等发生变化,而这些变化会导致扫描报错的相关信息(例如报错位置、报错说明等)发生变更,进一步导致识别项目代码中的新增的扫描报错和已修复的扫描报错出现困难。
发明内容
本发明实施例提供了一种静态代码扫描结果处理方法和装置,能够实现对目标代码的报错跟踪的闭环管理。
第一方面,本发明实施例提供一种静态代码扫描结果处理方法,包括:
获取第一报错,所述第一报错为对目标代码的一次静态扫描结果中的一个报错;
根据所述第一报错生成第一散列值;
根据所述第一散列值在历史报错记录表中查找第二散列值,所述第二散列值为与所述第一散列值指示同一个报错的散列值,其中,所述历史报错记录表中存有所述目标代码的历史静态扫描结果中各报错的散列值以及报错ID,其中,所述报错的报错ID用于唯一标识所述报错的散列值;
当查找到所述第二散列值时,将所述第一散列值的报错ID取值为所述第二散列值的报错ID。
第二方面,本发明实施例提供一种静态代码扫描结果处理装置,包括:
获取模块,用于获取第一报错,所述第一报错为对目标代码的一次静态扫描结果中的一个报错;
生成模块,用于根据所述第一报错生成第一散列值;
查找模块,用于根据所述第一散列值在历史报错记录表中查找第二散列值,所述第二散列值为与所述第一散列值指示同一个报错的散列值,其中,所述历史报错记录表中存有所述目标代码的历史静态扫描结果中各报错的散列值以及报错ID,其中,所述报错的报错ID用于唯一标识所述报错的散列值;
取值模块,用于当查找到所述第二散列值时,将所述第一散列值的报错ID取值为所述第二散列值的报错ID。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明中,对目标代码的一次静态扫描结果中的第一报错,生成该第一报错的散列值(即第一散列值),这样,可以根据该散列值从历史报错记录中查找是否存在与该散列值指示同一个报错的散列值(即第二散列值),若存在,则表示目标代码的历史静态扫描结果中曾出现该报错,那么将第一散列值的报错ID取值为历史报错记录中所存储的第二散列值的报错ID,由于报错ID用于唯一标识一个报错的散列值,这样,可以根据目标代码的不同次静态扫描结果中各报错的报错ID来判断该目标代码在各次静态扫描中的新增扫描报错和已修复的扫描报错,有效地形成目标代码的报错跟踪的闭环管理。
附图说明
图1为本发明的静态代码扫描结果处理方法的一个实施例的流程示意图;
图2对本发明中生成第一散列值的方法的一个实施例的流程示意图;
图3为采用本发明的静态代码扫描结果处理方法的一个装置的结构示意图;
图4为本发明的静态代码扫描结果处理装置的一个实施例的结构示意图;
图5为本发明的静态代码扫描结果处理装置的另一个实施例的结构示意图;
图6是本发明实施例提供的一种服务器结构示意图。
具体实施方式
请参阅图1,图1为本发明的静态代码扫描结果处理方法的一个实施例的流程示意图。如图1所示,本实施例中的静态代码扫描结果处理方法包括:
101、获取第一报错,所述第一报错为对目标代码的一次静态扫描结果中的一个报错。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610671439.6/2.html,转载请声明来源钻瓜专利网。





