设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 数据 创业者 手机
当前位置: 首页 > 教程 > 正文

PMD:自动化源码分析和bug检测

发布时间:2017-01-08 22:45 所属栏目:61 来源:InfoQ 李剑
导读:PMD这款开源的自动化Java源码分析和bug检测工具刚刚发布了4.0版。记者就PMD所提供的功能与该项目的负责人Tom Copeland进行了深入探讨。
【技术新闻】PMD这款开源的自动化Java源码分析和bug检测工具刚刚发布了4.0版。记者就PMD所提供的功能与该项目的负责人Tom Copeland进行了深入探讨。

    PMD是一个静态Java源码分析工具,从概念上讲与Checkstyle,FindBugs和Coverity很相似。它从Java代码中可以搜索出那些效率低下的代码,bug和常见的编程问题。它可以通过IDE的集成在开发环境中使用,也可以和Ant或Maven构建直接交互。PMD使用规则(rules)来执行源码分析,这些规则可以被组织为规则集(rulesets)。记者就具体细节向Cohen进行了提问,Cohen回答说:“这些规则是按照它们所检查的问题进行分类的——‘无用代码’的规则集检查那些没有用到的局部变量,私有变量和方法;‘严格异常”的规则集检查那些抛出异常的方法和捕获如NullPointerException等异常的代码块。还有一些是特定于代码库的规则集。例如,JUnit规则集用来在JUnit测试套件中寻找常见的问题(如使用了assert(x==null)而不是assertNull(x))等。当前我们已经有了225条规则,还有更多的规则正在制定中。 

    当有人想到了新的规则并提交补丁或是请求时,新规则就会被添加进来。每一条规则都有一系列相关的单元测试,来减少那些比较明显的‘假阳性(false positive)’的数量;我们希望这也会使得PMD产生的检查报告保持相当的整洁。”

    当被问到在4.0中有哪些新特性时,Copeland回答说最大的新特性就是Java 5。PMD在Java 5的基础上进行了重写,现在已经是默认对基于Java 5的源码进行分析了——当然1.4和之前的代码一样可以支持。在性能上也有了提升,同时还有些bug的修复和新的代码检查规则。

    当记者问到PMD下一步比较大的计划是什么时,Copeland答道:“类型解析将是一块比较重要的内容。目前PMD只能一次检查一个源码文件,这就对它的规则作用区域有所限制。我们的一个核心开发人员Allan Caplan已经在这个方向做了大量的工作,他用了ASM这个字节码操作库来解析类文件依赖,我们认为这将减少‘假阳性’的数量,发现更多真正的问题。我们现在已经有了一个数据流分析层,当类型解析完成之后,它就能用得上这个功能了。这是多么美妙的事情啊!”
    原文地址:http://www.infoq.com/cn/news/2007/07/pmd

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读