java代码静态检查工具介绍

java代码静态检查工具介绍

ID:13396963

大小:61.50 KB

页数:6页

时间:2018-07-22

java代码静态检查工具介绍_第1页
java代码静态检查工具介绍_第2页
java代码静态检查工具介绍_第3页
java代码静态检查工具介绍_第4页
java代码静态检查工具介绍_第5页
资源描述:

《java代码静态检查工具介绍》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、静态检查:静态测试包括代码检查、静态结构分析、代码质量度量等。它可以由人       工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。       代码检查代码检查包括代码走查、桌面检查、代码审查等,主要检查代码和       设计的一致性,代码对标准的遵循、可读性,代码的逻辑表达的正确性,代       码结构的合理性等方面;可以发现违背程序编写标准的问题,程序中不安全、       不明确和模糊的部分,找出程序中不可移植部分、违背程序编程风格的问题,       包括变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构       检查等内容。

2、”。看了一系列的静态代码扫描或者叫静态代码分析工具后,       总结对工具的看法:静态代码扫描工具,和编译器的某些功能其实是很相似的,       他们也需要词法分析,语法分析,语意分析...但和编译器不一样的是他们可       以自定义各种各样的复杂的规则去对代码进行分析。静态检测工具:1.PMD1)PMD是一个代码检查工具,它用于分析Java源代码,找出潜在的问题:1)潜在的bug:空的try/catch/finally/switch语句2)未使用的代码:未使用的局部变量、参数、私有方法等3)可选的代码:String/StringBuffer的滥用4)复杂的表达

3、式:不必须的if语句、可以使用while循环完成的for循环5)重复的代码:拷贝/粘贴代码意味着拷贝/粘贴bugs2)PMD特点:1)与其他分析工具不同的是,PMD通过静态分析获知代码错误。也就是说,在不运行Java程序的情况下报告错误。2)PMD附带了许多可以直接使用的规则,利用这些规则可以找出Java源程序的许多问题3)用户还可以自己定义规则,检查Java代码是否符合某些特定的编码规范。3)同时,PMD已经与JDeveloper、Eclipse、jEdit、JBuilder、BlueJ、CodeGuide、NetBeans、SunJavaStudioEnterpris

4、e/Creator、IntelliJIDEA、TextPad、Maven、Ant、Gel、JCreator以及Emacs集成在一起。4)PMD规则是可以定制的:可用的规则并不仅限于内置规则。您可以添加新规则:可以通过编写Java代码并重新编译PDM,或者更简单些,编写XPath表达式,它会针对每个Java类的抽象语法树进行处理。5)只使用PDM内置规则,PMD也可以找到你代码中的一些真正问题。某些问题可能很小,但有些问题则可能很大。PMD不可能找到每个bug,你仍然需要做单元测试和接受测试,在查找已知bug时,即使是PMD也无法替代一个好的调试器。但是,PMD确实可以帮助

5、你发现未知的问题。1.FindBugs1)FindBugs是一个开源的静态代码分析工具,基于LGPL开源协议,无需运行就能对代码进行分析的工具。不注重style及format,注重检测真正的bug及潜在的性能问题 ,尤其注意了尽可能抑制误检测(falsepositives)的发生。以bytecode(*.class、*.jar)为对象进行检查。除了单独动作,还可以用作Eclipse的plug-in,以及嵌入Ant作为task之一进行利用。2)findbugs自带检测器的介绍: findbugs自带60余种Badpractice,80余种Correntness,1种Inte

6、rnationalization,12种Maliciouscodevulnerability,27种Multithreadedcorrentness,23种Performance,43种Dodgy。3)Findbugs的一些特点:1)FindBugs主要着眼于寻找代码中的缺陷,这就与其他类似工具有些区别了,直接操作类文件(class文件)而不是源代码。2)FindBugs可以通过命令行、各种构建工具(如Ant、Maven等)、独立的SwingGUI或是以Eclipse和NetBeansIDE插件的方式来运行。                3)FindBugs输出结果既可

7、以是XML的,也可以是文本形式的。4)开发者可以通过多种方式来使用FindBugs,最常见的是在新编写模块的代码分析以及对现有代码进行更大范围的分析。   5)不注重style及format,注重检测真正的bug及潜在的性能问题,尤其注意了尽可能抑制误检测(falsepositives)的发生。   4)FindBugs可检测的bugpattern举例:检测javaprograming中容易陷入的bugpattern,equals()实现时的一般规约违反Nullpointer的参照,Method的返回值的check遗漏,初始化

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。