Java unit tests you forgot to run
AgitarOne exercises Java code in unique and compelling ways, but not without some agitations for users
Unit testing -- a form of software testing done by developers using hundreds of small, fast tests -- is a central practice at sites that are committed to software quality. By following a dictum of "unit test, rather than debug," developers and their managers identify problems early and solve them as they go, giving them confidence in the code under development and assurance that a project will not founder once development completes and the quality assurance engineers start testing.
Agitar is a company whose entire product line is devoted to unit testing. Its flagship Agitator product (see our April 2006 review) reads through Java code, creates tests on the fly, runs them in the background, and then reports the results (successes and failures) as well as the lines of code that were not exercised. The benefit of this approach is that Agitator will often create tests that developers would overlook due to excess familiarity with the code. In addition, Agitator runs phone numbers, Social Security numbers, and other common fields through a gamut of extensive prebuilt tests.
AgitarOne, the focus of this review, is the heir to Agitator. During the next year, AgitarOne will replace Agitator at most customer sites, as Agitator is being retired. AgitarOne is a software stack that expands on Agitator's capabilities in useful and innovative ways. However, it is a heavyweight solution that may amount to more software than smaller teams need or want.
Click for larger view.
AgitarOne follows a trend that has been emerging in software development tools during the past year, which is to provide a dashboard with project metrics. (In the past 12 months, weve seen products such as Enerjy's CQ2 and Borland/CodeGear's JBuilder 2007, among others, adopt this approach.) AgitarOne's dashboard is hosted on CruiseControl, an open source product that serves as a platform of sorts for generating and executing unit-tests, applying code rules, and displaying the metrics dashboard.
The developer triggers these activities using client-side software that must be installed in a Java IDE. At the moment, Agitar supports only Eclipse and Eclipse-based IDEs (such as CodeGear JBuilder 2007 and IBM Rationals family of IDEs). This installation is done via a series of plug-ins that can be downloaded into Eclipse from the URL of the AgitarOne server. Some activities can be run in a command-line batch mode.
Once everything is set up, the developer clicks on a project or a file, and from an Agitar-specific, drop-down menu elects whether to generate unit tests, "agitate" the code, or run the code-rules engine. A queue can then be checked to watch the progress of these tasks.