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