代码静态检查工具比较
上一篇 /
下一篇 2012-12-28 16:54:42
工具名称 | 功能 | 语言 | 说明 | 主要检查内容 |
PMD | 检查源文件 | Java | 检查Java源文件中潜在的问题 | 主要包括: |
- 空try/catch/finally/switch语句 |
- 未使用的局部变量、参数和private方法 |
- 空if/while语句 |
- 过于复杂的表达式,如不必要的if语句等 |
- 复杂类 |
CheckStyle | 检查源文件 | Java | 检查java源文件是否与代码规范相符 | 主要包括:Javadoc注释 、命名规范、 Headers 、多余没用的Imports、Size冲突和度量,如过长的方法、 Whitespace 、Modifiers、Blocks 、Coding Problems、Class Design 、重复代码、Miscellaneous Checks 、Optional Checks |
主要关注格式 |
FindBugs | 检查.class | Java | 基于Bug Patterns概念,查找javabytecode(.class文件)中的潜在bug | 主要检查bytecode中的bug patterns,如NullPoint空指针检查、没有合理关闭资源、字符串相同判断错(==,而不是equals)等 |
Parasoft C++test | | C++ | C++Test自动测试C/C++类、函数或部件,而不需要编写测试用例、测试驱动程序或桩调用代码;能够自动测试代码构造(白盒测试)、测试代码的功能性(黑盒测试)和维护代码的完整性(回归测试)。 | 内嵌了业界最著名的Effective C++(epcc),More Effective C++(mepcc),meyer-klaus(mk)以及Universal Code standard(ucs)等超过700条的C++规范等 |
PCLint | | C++ | 检查出一般的语法错误,还可以检查出那些虽然完全合乎语法要求,但很可能是潜在的、不易发现的错误。 (潜在的错误隐患和不合理的编码习惯) | 偏重于代码的逻辑分析,它能够发现代码中潜在的错误,比如数组访问越界、内存泄露、使用未初始化变量等 |
收藏
举报
TAG: