静态分析简介
- 中文名:程序静态分析
- 外文名:Program Static Analysis
- 目的:规范编码规则、提升代码质量
- 特点:不实际执行程序
什么是静态分析?
静态分析是指不运行代码的情况下,通过词法分析、语法分析、控制流分析、数据流分析等技术对代码进行扫描,验证代码是否满足规范性、安全性、可靠性、可维护性等指标的一种代码分析技术。
通过静态分析可检出出以下问题,包括但不限于:变量未定义、类型不匹配、变量操作域问题、数组下标越界、内存泄露、死锁、空指针、缓冲区溢出、安全漏斗等问题。
目前全世界最好的代码分析工具误报率在 5~10%之间,能够爆出的缺陷种类也仅有几百种。
为什么要做代码静态分析?
在一篇名为《 The Shift-Left Approach to Software Testing 》的文章中提及以下观点:
Bug 引入
绝大多数 Bug 在编码阶段引入的。