InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

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

Posted by Scott Delap on Oct 24, 2007

Sections
Development
Topics
Artifacts & Tools ,
Java
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
  1. Back to top

    Crap4j?

    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

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.

Beauty Is in the Eye of the Beholder

Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.

Architecting Visa for Massive Scale and Continuous Innovation

John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.

Max Protect: Scalability and Caching at ESPN.com

Sean Comerford unveils ESPN.com’s architecture, what components are used and why, and the current changes the website goes through.

The Seven Deadly Sins of Enterprise Agile Adoption

Are there repeated patterns of failure on Enterprise Agile Enablement efforts? Sanjiv and Arlen discuss Seven Deadly Sins to avoid when adopting Agile in an enterprise.

Questions for an Enterprise Architect

Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?

Wrap Your SQL Head Around Riak MapReduce

Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.