Automated Testing Tools

Tools on this page are used for automated testing of your application.

We hope to make each of these tools available in our new Build Farm service.

If adding to this list, please only add strong, useful tools, that you use yourself. The idea is to have a quick download list for new users starting to use Continuous Integration, not a complete directory of every tool available.

Build Tools

  • Apache Ant - Java build tool, similar to MAKE for C. A build.xml file is used to define which classes to build, and how to build them. Allows integration with many other tools such as JUnit and CruiseControl.


  • JUnit - Java Unit-Testing framework. Extreme-Programming tool (XP), allowing an easy way to run a batch of tests against your code. To over-simplify the concept of XP, ideally unit tests are written before any other coding takes place. Functions are then written. When all unit tests finally pass, the code is ready for production. JUnit can also be applied to existing codebases.
  • Jakarta Cactus - Unit-testing framework for Servlets, Filters, JSP and Custom Tags. This tool wraps javax.servlet code to permit tests to be written which can interact with the HTTP objects, by creating sessions, cookies, and other HTTP-specific items. Cactus can then start an embedded Jetty container, or deploy to Tomcat and other containers, to test the resultant server-side objects.
  • JLint - Java version of the popular LINT tool often used with C/C++ projects, which highlights a number of common coding errors such as forgetting a default-block on a case statement. JLint runs from the command line, is available as a binary for Windows, and can be compiled for Linux and other platforms. It takes about 2 minutes to download and start using it on Windows. The resultant warnings can be tuned/ignored so that you get a list of the real problems that you want. JLint runs very quickly and can be integrated with Ant/CruiseControl as an extra step in the build/test process with a bit of work.
  • Hammurapi - Automated code review and metrics tool with HTML reporting. Finds over 100 different potential coding problems and has an example application demonstrating ANT integration, so is easy to integrate into a CruiseControl build cycle. Tests can be extended or waived for known areas of the code where you have acknowledged whether a violation is safe.

Legacy Code and Regression Testing

  • JUnitFactory - This is a web-based service, which generates JUnit tests from existing code, automatically. The tests generated test what the code "actually does", not what the code is "supposed to do". It is therefore a very useful tool for generating JUnit tests for legacy code, prior to modifying it. Various values are sent to the functions, and the results are recorded as JUnit tests. After modifying the classes, you can use the generated tests to see if the results are still the same as before your modification. Naturally, you can also modify the test classes as necessary.

Code Coverage

  • Emma - Code coverage tool with Ant integration. When used with JUnit, this tool can show which parts of the code are not being tested. The generated HTML reports are easily browsable, allowing developers and project managers to quickly see how much of their code is really being tested by their unit testing. Emma can also be used locally very easily, making test development much faster. Click here for sample output. This tool is easy to integrate with Ant, JUnit and CruiseControl, runs quickly and is quite helpful, especially when developing unit tests for legacy code.

See Also

metawerx specific

referring pages