[发明专利]一种代码方法级缺陷预警方法在审
申请号: | 202010305228.7 | 申请日: | 2020-04-17 |
公开(公告)号: | CN111562937A | 公开(公告)日: | 2020-08-21 |
发明(设计)人: | 刘庆 | 申请(专利权)人: | 北京简单一点科技有限公司 |
主分类号: | G06F8/71 | 分类号: | G06F8/71;G06F11/36 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100000 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 方法 缺陷 预警 | ||
本发明提供了一种代码方法级缺陷预警方法,包括用户代码提交客户端、缺陷管理系统和代码托管平台,在用户代码提交客户端与代码托管平台之间设置提交信息提取模块和缺陷分析模块;具有以下步骤:(1)用户进行软件代码开发时,从缺陷管理系统中查询出本次代码开发相关的缺陷修复任务,记为bug A;(2)用户代码编写完成,通过代码提交客户端向代码托管平台进行代码提交,并将此次代码提交关联的bug A的信息填入提交日志信息中;(3)通过在代码提交客户端和代码托管平台之间增加的提交信息提取模块对代码提交进行拦截,并对代码提交数据报文进行解析;本发明能够基于对研发历史数据进行分析,进行方法级的精确业务逻辑缺陷预警。
技术领域
本发明涉及代码缺陷预警,具体是一种代码方法级缺陷预警方法。
背景技术
随着现代软件规模越来越大,逻辑也越来越复杂,代码间的相互关系千丝万缕,靠人脑完全理清业务逻辑,变得异常困难。对同一个代码方法的修改,稍有不慎,就可能会导致历史缺陷重复出现。如果通过对研发历史数据进行分析,建立起代码方法和历史缺陷数据的关联关系及关联权重,后续在修改同一个代码方法时,对关联权重最高的若干个历史缺陷进行预警,就能有效的协助工程师规避缺陷。
目前对于代码缺陷的预警,都是通过源代码扫描工具实现。这种源代码扫描工具,一般都是基于对代码源文件或者编译后的产出进行语法分析,国际上也有不少成熟的商用产品。但是通常只能检测出语法或者代码规范这种类型的代码本身问题,无法发现和业务相关的缺陷。其次是这种检测方法需要分析代码的语法树,算法复杂。
发明内容
本发明的目的在于提供一种代码方法级缺陷预警方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种代码方法级缺陷预警方法,包括用户代码提交客户端、缺陷管理系统和代码托管平台,在用户代码提交客户端与代码托管平台之间设置提交信息提取模块和缺陷分析模块;具有以下步骤:
(1)用户进行软件代码开发时,从缺陷管理系统中查询出本次代码开发相关的缺陷修复任务,记为bug A;
(2)用户代码编写完成,通过代码提交客户端向代码托管平台进行代码提交,并将此次代码提交关联的bug A的信息填入提交日志信息中;
(3)通过在代码提交客户端和代码托管平台之间增加的提交信息提取模块对代码提交进行拦截,并对代码提交数据报文进行解析,解析出提交日志信息中的bug A信息;
(4)提交信息提取模块将用户代码合入代码托管平台,并获取此次代码提交的变更,其中,代码变更分为新增、删除和修改三类;
(5)提交信息提取模块将此次代码变更中设计的新增、修改部分的代码路径及方法名进行联合签名,对每个变更的方法形成唯一可识别的标识;
假设此次代码提交新增及修改部分的代码涉及N个方法,每个方法及其完整文件路径经过签名后记为method 1、method 2....method N。
(6)提交信息提取模块将N个方法中的每一个与bug A的关联权重值记为1/N,并且将每个方法、bug A、关联权重值记录为方法签名、bug A、关联权重的三元数据,例如method 2、bug A、1/N;
(7)提交信息提取模块将步骤(6)中生成的三元数据发送至缺陷分析模块;
(8)缺陷分析模块根据该方法签名method 2,查询数据库中的历史数据中是否存在和 method 2关联的缺陷;
如果存在,则取出权重最高的若干个缺陷,并返回提交信息提取模块,并回传告知用户,作为缺陷预警信息;如果不存在,则无缺陷预警;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京简单一点科技有限公司,未经北京简单一点科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010305228.7/2.html,转载请声明来源钻瓜专利网。