- Do you use source code analyzers? If so, which ones and for which language development?
- Do you find them helpful in solving potential bugs in your code? Or are most of their warnings trivial?
- After prolonged use, do you find your code quality to be higher than before?
Do you use source code analyzers? If so, which ones and for which language
Share
I use a few static analysis tools in Java. FindBugs is the first line of defense, catching a lot of common errors and giving pretty useful feedback. It often spots the silly mistakes of tired programmers and doesn’t place a high burden on the user.
PMD is good for a lot of other more niggly bugs, but requires a lot more configuration. You’ll find that PMDs defaults are often over the top. There are too many rules that are probably beneficial on a tiny scale but ultimately don’t help other programmers maintain your code. Some of the PMD rules often smack of premature optimisation.
Probably more useful is the CPD support in PMD. It attempts to find code that has been duplicated elsewhere, in order to make refactoring much easier. Run over an entire project, this really helps determine where the biggest priorities are for cleaning up code and stopping any DRY violations.
Checkstyle is also handy, making sure your coders conform to some coding style standard. it has a bit of overlap with PMD but is generally much more usable.
Finally, Cobertura is a great test coverage suite. Very handy for finding out where the unit tests are lacking, and where you should be prioritising the creation of new tests.
Oh, and I’ve also been testing out Jester. It seems to be pretty good for finding holes in tests, even where the code has some coverage. Not recommended yet, simply because I’ve not used it enough, but one to test out.
I run these tools both from within Eclipse and as part of an automated build suite.