静态分析(static analysis)是一种对代码的机械性的、程式化的特性分析方法。

静态分析一般常用软件工具进行,包括控制流分析、数据流分析、接口分析、表达式分析。

  • 用数据流图来分析数据处理的异常现象(数据异常),这些异常包括初始化、赋值、或引用数据等的序列的异常
  • 使用控制流图系统地检查程序的控制结构。按照结构化程序规则和程序结构的基本要求进行程序结构检查。控制流图描述了程序元素和它们的执行顺序之间的联系。一个程序元素通常是一个条件、一个简单的语句,或者一块语句(多个连续语句)。
  • 程序的接口分析涉及子程序以及函数之间的接口一致性,包括检查形参与实参类型、个数、维数、顺序的一致性。当子程序之间的数据或控制传递使用公共变量块或全局变量时,也应检查它们的一致性。
  • 表达式分析:括号不匹配、数组引用越界、除数为零。
  • 信息流分析阶段找出输入变量和输出变量之间的依赖关系;
  • 路径分析阶段找出程序中所有可能的路径并画在此路径中执行的语句。