InfoQ

News

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

Posted by Scott Delap on Oct 24, 2007 08:30 AM

Community
Java
Topics
Artifacts & Tools
Tags
Atlassian
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.

Crap4j? by Asgeir Nilsen Posted Oct 27, 2007 12:05 PM
  1. Back to top

    Crap4j?

    Oct 27, 2007 12:05 PM by Asgeir Nilsen

    Perhaps Atlassian could cooperate with the crap4j team to either use or improve the CRAP score for inclusion in Clover?

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.