Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Atlassian's Pete Moore Discusses The New Features of Clover 2

Atlassian's Pete Moore Discusses The New Features of Clover 2

This item in japanese

Atlassian fresh off their acquisition of Cenqua earlier this year, has released Clover 2. Clover is a code coverage tool for Java.

Among the features of this release:

  • Full integration of test results with coverage
  • Coverage reporting per test
  • Coverage clouds showing hotspots
  • HTML reports with coloring, collapsable methods, and more
  • Per-method coverage statistics
  • Complexity statistics
  • Simplified Ant tasks
  • Integrated historical reporting
  • Aggregate package statistics
  • Configurable report columns, column formats and column thresholds
  • Improved runtime coverage recording performance
  • New runtime configuration options to control coverage recording
  • Completely rewritten Eclipse plugin

Updated plugins will soon be released for IntelliJ, Netbeans, and other IDE's. InfoQ caught up with Atlassian's Pete Moore to discuss Clover 2 and the recent Atlassian acquisition. Moore was first asked why Cenqua agreed to be acquired after working in cooperation with Atlassian for several years:

Cenqua was the #$@%^& love child of a dot com consulting company. The core goal wasn't so much financial success, but a desire to avoid infuriating consulting clients and 80 hour weeks. Basically Brendan, Matt, Conor & I decided to run with the pet internal tools that we had tinkered with during the boom ... surely developers would be fun customers to work with right?

After four odd years we had four products, thousands of customers and the same small staff. We were struggling to keep up and the lifestyle aspects that initially inspired the company were on the wane. Atlassian had been keen for a while, we like their stuff, and given they were just over the bridge, it just seemed to make sense.

InfoQ next asked how things are different being part of Atlassian:

Meetings, so many f*@#$ng meetings. But seriously, we are quickly growing our team, have dedicated support resources, and are slowly increasing our velocity. So all in all it is exciting to finally start to get to some of the features we've wanted to implement for ages.

The conversation then shifted to how Atlassian stays motivated with the feature set of Clover. Moore explained that Clover was more than just "coverage" and adds significant value other other Clover clones out there. Among the features he pointed to were was the new Quick Wins and Project Risks coverage clouds. The Quick Wins Coverage Cloud showsthe classes on which to focus your testing effort on to quickly increase the overall coverage score for the project. The Project Risks Coverage Cloud highlights the classes that contain the most complex untested code and thus represent the highest risk to the project. InfoQ then moved on to discussing with Moore interesting ways that Atlassian customers are using Clover 2. Among his answers:

  • Prefactoring - before embarking on a refactor, using the Clover 2 report to find out what tests were going to be affected, the quality of those test, insight into the change planned, as well as help with estimation.
  • Using the coverage cloud to build a test suite from scratch on a legacy code base. Pick the buggest, reddest classes in the cloud write some tests, regenerate and repeat.

We've had quite a few people say they are just happy with the beautifully rendered, cross-referenced and navigable HTML versions of their source. The coverage annotations are just a bonus.

Finally Moore was asked what is next for Clover 2:

Firstly to bloody release it! Then there are a few things we have in mind, e.g.:

  • as an enabler for continuous integration test optimization (starting with Bamboo)
  • über blame for build breakages (identifying the exact couple of lines that caused tests to fail)
  • a Clover 2 Intellij plugin
  • combining other metrics in a similar way to how we've added complexity, (think identifying poor coverage on findbugs "smelly" code as a candidate for better testing)
  • using Clover as vehicle for adding automated analysis to Crucible code reviews
  • some more interesting coverage checks, rather than just fail a build on a %, e.g. fail a build when the coverage on the new code is not up to policy or fail if the change reduces coverage.

We are always coming up with interesting ideas, thanks to Atlassian we might now get around to implementing them.

Rate this Article