静态代码分析(Static Code Analysis)

2017-07-24  本文已影响0人  安公子_

静态代码分析简介

程序静态分析(Static Code Analysis)是指在不运行代码的方式下,通过词法分析语法分析控制流分析数据流分析等技术对程序代码进行扫描,验证代码是否满足规范性、安全性、可靠性、可维护性等指标的一种代码分析技术。目前静态分析技术向模拟执行的技术发展以能够发现更多传统意义上动态测试才能发现的缺陷,例如符号执行、抽象解释、值依赖分析等等并采用数学约束求解工具进行路径约减或者可达性分析以减少误报增加效率。目前的静态分析工具,无论从科研角度还是实用性角度还有很大的提高余地,国际最好分析工具误报率在5-10%之间,能够报出的缺陷种类也仅有几百种。
动态分析方法不同的是,静态分析方法不需要执行程序,只需要自动扫描代码,所以,静待代码分析可能会误报程序缺陷。

百度百科

个人理解可将代码省查所做的工作总结为两点

提取缺陷信息方法
词法分析,语法分析,语义分析,控制流分析,数据流分析,污点分析,无效代码分析等。


CppDepend简介

通常,我们都会利用现有的集成工具去分析代码。在此,介绍一款分析C/C++的静态代码分析工具——CppDepend
CppDepend的代码规则为LINQ查询,它可以在数秒内构建一个规则。并且,这些规则包含了技术债务评估
默认的规则集包括了超过100条规则,诸如entangled code,dead-code,API breaking changes和bad OOP usage这样的代码缺陷,都可以通过默认的规则集分析。


CppDepend功能

运行CppDepend,其主界面如下图所示。


CppDepend 主界面

CppDepend主要功能如下:


Next:CppDepend功能详细介绍

上一篇下一篇

猜你喜欢

热点阅读