简介 本 文 首 先 介 绍 了 静 态 代 码 分 析 的 基 本 概 念 及 主 要 技 术 , 随 后 分 别 介 绍 了 现 有 4 种 主 流 Java 静 态 代 码 分 析 工 具 (Checkstyle, FindBugs, PMD, Jtest), 最后 从 功 能 、特性等方面对它们进行分 析 和比较, 希望能 够帮助 Java 软件开发人员了 解静 态 代 码 分 析 工 具 , 并选择合适的 工 具 应用到软件开发中。 引言 在 Java 软件开发过程中,开发团队往往要 花费大量的 时间和精力发现 并修改代码 缺陷。Java 静 态 代 码 分 析 (static code analysis)工 具 能 够在代 码 构建过程中帮助开发人员快速、有 效的 定位代 码 缺陷并及 时纠正这些问题, 从 而极大地提高软件可靠性并节省软件开发和测试成 本 。目前市场上的 Java 静 态 代 码 分 析工 具 种 类繁多且各有 千秋, 因此本 文 将分 别 介 绍 现 有 4 种 主 流 Java 静 态 代 码分 析 工 具 (Checkstyle, FindBugs, PMD, Jtest), 并从 功 能 、特性等方面对它们进行分 析 和比较,希望能 够帮助 Java 软件开发人员了 解静 态 代 码 分 析 工 具 ,并选择合适的 工 具 应用到软件开发中。 静态代码分析工具简介 什么是静态代码分析 静 态 代 码 分 析 是 指 无 需 运 行 被 测 代 码 , 仅 通 过 分 析 或 检 查 源 程 序 的 语 法 、结构、过 程 、接口等来检 查 程 序 的 正确性,找出代 码 隐藏的 错误和缺陷,如参数不匹配,有歧义的 嵌套语 句, 错误的 递归, 非法 计算, 可能出现的 空指 针引用等等。 在软件开发过 程 中, 静 态 代 码 分 析 往往先于动态 测 试之前进行 , 同时也可以作为制定动态 测 试用例的 参考。统计证明, 在整个软件开发生命周期中, 30% 至 70% 的 代 码 逻辑设计和编码 缺陷是 可以通 过 静 态 代 码 分 析 来发现和修复的 。 但是 , 由于静 态 代 码 分 析 往往要求大量的 时间消耗和相关知识的 积累, 因此对 于软件开发团 队 来说 , 使 用静 态 代 码 分 析 工 具 自 动化 执 行 代 码 检 查 和分 析 , 能够 极大地 提 高 软件可靠 性并 节 省 软件开发和测 试成 本 ...