views:

91

answers:

4

I am looking to create a continuous code quality monitoring environment for our large code (Java) base. The static code check will be done on every developer branch and integration branch.

Here is my partial list.

  • FindBug (Find bugs!)
  • PMD/CPD (copy paste detection)
  • Hudson (continous build)
  • Sonar (integrated view of other statistics)
  • junit/jfcunit/ ( localised testing)
  • code coverage ( cobertua), combined with unit testing
  • jdepend
  • Checkstyle

What tools you use to monitor code and architecture quality is maintained?

+5  A: 

I think the Hudson/Sonar couple is pretty awesome by itself.

I deployed some instances where Sonar analysis is launched every night by Hudson, and this works like a charm. The installation is very simple, thanks to the Sonar plugin in Hudson.

By the way, Sonar already integrates:

  • Find bugs (via FindBug)
  • Copy paste detection
  • Unit testing analysis
  • Code coverage (uses Cobertura)
  • Dependency analysis, and circular dependencies detection
  • Checkstyle to check coding conventions

So you don't need to set up all these tools, they are bundled within Sonar.

Vivien Barousse
Definitely Sonar. It also supports PMD, Clover and Emma. It is the simplest way to benefit from all these tools. Just install and run. It does not require any configuration in audited projects.
Simon Brandhof
A: 

Try continuum, which have a lot of useful plugins. I don't know all of them, but should cover most (or all) your requirements.

Jan Wegner
A: 

Isn't it already a bit too much? If you enable all of those tools you'll receive tons of warnings and errors, this result is very, very frustrating for the project teams.

Quality monitoring is not a matter of tools but a matter of agreeing quality rules and then finding appropriate tools to reveal violations against those rules.

If you want to use the quality monitoring results to help the teams improving the software, start with just one or two tools, enable just a few rules and look if the code base can be cleaned. If it is cleaned, change the rules to produce errors/break the build and enable some more rules.

Ever tried running just PMD with all basic rules switched on?

Andreas_D
I don't think its too much for a stable development project. When a project migrates from no-checking to tool-based-checking you start with a small configuration (prio 1 messages only) and add more checks when the first batch of issues is taken care of.
rsp
A: 

If commercial tools are a possibility you might want to check Parasoft JTest. We use it in our projects and with very good results. (It is not cheap, but is saves a lot by catching issues early in the project.)

rsp