看了一系列的静态代码扫描或者叫静态代码分析工具后,总结对工具的看法:静态代码扫描工具,和编译器的某些功能其实是很相似的,他们也需要词法分析,语法分析,语意分析...,但和编译器不一样的是他们可以自定义各种各样的复杂的规则去对代码进行分析 。
文章插图
静态测试简介静态测试包括代码检查、静态结构分析、代码质量度量等 。它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行 。
代码检查包括代码走查、桌面检查、代码审查等,主要检查代码和设计的一致性,代码对标准的遵循、可读性,代码的逻辑表达的正确性,代码结构的合理性等方面;可以发现违背程序编写标准的问题,程序中不安全、不明确和模糊的部分,找出程序中不可移植部分、违背程序编程风格的问题,包括变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构检查等内容 。
看了一系列的静态代码扫描或者叫静态代码分析工具后,总结对工具的看法:静态代码扫描工具,和编译器的某些功能其实是很相似的,他们也需要词法分析,语法分析,语意分析...,但和编译器不一样的是他们可以自定义各种各样的复杂的规则去对代码进行分析 。
二、静态代码检查工具1、PMDPMD是一个代码检查工具,它用于分析JAVA源代码,找出潜在的问题:
- 潜在的bug:空的try/catch/finally/switch语句
- 未使用的代码:未使用的局部变量、参数、私有方法等
- 可选的代码:String/StringBuffer的滥用
- 复杂的表达式:不必须的if语句、可以使用while循环完成的for循环
- 重复的代码:拷贝/粘贴代码意味着拷贝/粘贴bugs
- 与其他分析工具不同的是,PMD通过静态分析获知代码错误 。也就是说,在不运行Java程序的情况下报告错误 。
- PMD附带了许多可以直接使用的规则,利用这些规则可以找出Java源程序的许多问题
- 用户还可以自己定义规则,检查Java代码是否符合某些特定的编码规范 。
- 同时,PMD已经与JDeveloper、Eclipse、jEdit、JBuilder、BlueJ、CodeGuide?.NETBeans、Sun JavaStudio Enterprise/Creator、IntelliJ IDEA、TextPad、Maven、Ant、Gel、JCreator以及Emacs集成在一起 。
- PMD规则是可以定制的: 可用的规则并不仅限于内置规则 。您可以添加新规则:可以通过编写Java代码并重新编译PDM,或者更简单些,编写XPath表达式,它会针对每个Java类的抽象语法树进行处理 。
- 只使用PDM内置规则,PMD也可以找到你代码中的一些真正问题 。某些问题可能很小,但有些问题则可能很大 。PMD不可能找到每个bug,你仍然需要做单元测试和接受测试,在查找已知bug时,即使是PMD也无法替代一个好的调试器 。
- 但是,PMD确实可以帮助你发现未知的问题 。
findbugs自带检测器的介绍: findbugs自带60余种Bad practice,80余种Correntness,1种Internationalization,12种Malicious code vulnerability,27种Multithreaded correntness,23种Performance,43种Dodgy 。
Findbugs的一些特点:
- FindBugs主要着眼于寻找代码中的缺陷,这就与其他类似工具有些区别了,直接操作类文件(class文件)而不是源代码 。
- FindBugs可以通过命令行、各种构建工具(如Ant、Maven等)、独立的Swing GUI或是以Eclipse和NetBeans IDE插件的方式来运行 。
- FindBugs输出结果既可以是XML的,也可以是文本形式的 。
- 开发者可以通过多种方式来使用FindBugs,最常见的是在新编写模块的代码分析以及对现有代码进行更大范围的分析 。
推荐阅读
- 复合了?曝梁洛施怀四胎,李泽楷满脸笑意陪同检查,李嘉诚送豪宅
- 电信651错误代码怎么解决
- 静态IP和动态IP有什么区别?
- 651错误代码怎么解决
- 淘宝代码怎么用
- 开始用Rust编写代码!
- 电脑上没有声音怎么办
- 如何自己建立网页代码
- 提车时如何验车
- 怎样检查华为手机是不是正品新的