静态代码检测方法和静态代码检测系统、存储设备技术方案

技术编号:19593109 阅读:69 留言:0更新日期:2018-11-28 04:47
本发明专利技术属于编程技术领域,涉及静态代码检测方法和静态代码检测系统、存储设备。该静态代码检测方法包括步骤:对静态代码进行处理,提取变量信息,建立相关变量集合;根据可能产生缺陷的变量进行缺陷归类,建立缺陷集,所述缺陷集至少包括一个缺陷子集,每一所述缺陷子集包括一个与变量相关的根节点缺陷;根据所述缺陷子集中所述根节点缺陷的误报状况,确认缺陷。本发明专利技术通过在传统的静态缺陷检测的基础上增加了缺陷关联分析技术,从缺陷之间的内在关联出发,将具有依赖关系的缺陷分为一组;若缺陷之间具有子集关系,如果缺陷子集中的根节点是误报,则整个子集中的所有缺陷均是误报,从而大大提高静态代码检测缺陷确认效率,减少人工确认的工作量。

【技术实现步骤摘要】
静态代码检测方法和静态代码检测系统、存储设备
本专利技术属于编程
,具体涉及一种静态代码检测方法和静态代码检测系统、存储设备。
技术介绍
静态代码检测是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。静态代码检测通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。静态代码检测由于不需要运行代码而深受欢迎,但是后续人工缺陷确认的工作量又是一个影响其广泛应用的问题。缺陷代码扫描是一个静态代码检测技术,目前比较普遍的方法是测试完毕以后人工对缺陷检测结果进行确认。静态代码检测过程包括:首先对缺陷进行建模,然后通过扫描源代码来检测缺陷,但由于检测过程不需要运行程序,导致检测出来的缺陷存在误报的问题,现有技术都是从提高精度的角度出发,比如区间运算、函数分析等,对减少人工确认的工作量方面的研究尚未有涉足。如何减少缺陷确认本文档来自技高网...

【技术保护点】
1.一种静态代码检测方法,其特征在于,包括步骤:对静态代码进行处理,提取变量信息,建立相关变量集合;根据可能产生缺陷的变量进行缺陷归类,建立缺陷集,所述缺陷集至少包括一个缺陷子集,每一所述缺陷子集包括一个与变量相关的根节点缺陷;根据所述缺陷子集中所述根节点缺陷的误报状况,确认缺陷。

【技术特征摘要】
1.一种静态代码检测方法,其特征在于,包括步骤:对静态代码进行处理,提取变量信息,建立相关变量集合;根据可能产生缺陷的变量进行缺陷归类,建立缺陷集,所述缺陷集至少包括一个缺陷子集,每一所述缺陷子集包括一个与变量相关的根节点缺陷;根据所述缺陷子集中所述根节点缺陷的误报状况,确认缺陷。2.根据权利要求1所述的静态代码检测方法,其特征在于,建立相关变量集合的步骤包括:对静态代码进行词法分析、语义处理;根据与变量名相关的名称,建立所述相关变量集合。3.根据权利要求2所述的静态代码检测方法,其特征在于,对静态代码进行词法分析为:采用自动化业务流程组合语言进行分析,得到一个文档对象模型树,基于该文档对象模型树生成控制流图;语义处理为:在所述控制流图的基础上生成定义使用链。4.根据权利要求2所述的静态代码检测方法,其特征在于,建立相关变量集合的步骤还包括:根据与变量名相关名称的赋值函数或函数调用关系,进行别名分析,建立所述相关变量集合。5.根据权利要求1所述的静态代码检测方法,其特征在于,建立缺陷集的步骤包括:将具有依赖性的变量可能引起的相关缺陷归为一类,建立同类缺陷子集,多个所述缺陷子集形成所述缺陷集。6.根据权利要求1所述的静态代码检测方法,其特征在于,确认缺陷的步骤包括:根据缺陷关联性进行缺陷误报确认,若所述缺陷子集中根节点缺陷为误报,则所述缺陷子集中与所述根节点缺陷相关的所有缺陷均为误报。7.根据权利要求6所述的静态代码检测方法,其特征在于,确认缺陷的步骤还包括:若所述缺陷...

【专利技术属性】
技术研发人员:杨学红
申请(专利权)人:中国联合网络通信集团有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1