Monday, January 18, 2016

Direct Comparison - Findbugs vs PMD vs Checkstyle



 Findbugs [1]

 PMD [3]

 Checkstyle [2]
  Version 3.0.0 5.2.2 6.1.1
  License Lesser GNU Public License BSD-style license Lesser General Public License
  Purpose Potential Bugs 
 finds - as the name suggests - bugs in
 Java byte code
 Bad Practices
 looks for potential problems, possible bugs,
 unused and sub-optimal code and over-
 complicated expressions in the Java source
 code
 Conventions 
 scans source code and looks for coding standards,
 e.g.  Sun Code Conventions, JavaDoc
 Strengthsfinds often real defects
- low false detected rates
- fast because byte code
- less than 50% false positive
- finds occasionally real defects
- finds bad practices
 - finds violations of coding conventions
 Weaknesses- is not aware of the sources
- needs compiled code
- slow duplicate code detector - can't find real bugs
 Number of rules  408 234 
 132
 Rule Categories Correctness
 Bad practice
 Dodgy code
 Multithreaded Correctness
 Performance Malicious
 Code Vulnerability
 Security Experimental
 Internationalization

 JSP 
 - Basic JSF 
 - Basic JSP
 XSL 
 - XPath in XSL
 Java 

 - Design 
 - Coupling 
 - Jakarta Commons Logging 
 - Basic 
 - Strict Exceptions 
 - Security Code Guidelines 
 - Java Logging 
 - Android -Controversial 
 - Comments 
 - Type Resolution 
 - Empty Code 
 - String and StringBuffer 
 - Code Size 
 - Braces 
 - Unused Code 
 - Unnecessary 
 - J2EE 
 - JavaBeans 
 - Migration 
 - Import Statements 
 - JUnit 
 - Naming 
 - Finalizer 
 - Optimization 
 - Clone Implementation
 Ecmascript
 
 - Basic Ecmascript 
 - Unnecessary 
 - Braces 
 XML
 
 - Basic XML
 Annotations
 Block Checks
 Class Design
 Coding
 Duplicate Code
 Headers
 Imports
 Javadoc Comments
 Metrics
 Miscellaneous
 Modifiers
 Naming Conventions
 Regexp
 Size Violations
 

No comments: