Marathon is a simple, flexible and extendable tool that assists in developing automated test suites for Java/Swing applications. Marathon provides an integrated environment in which you can create test suites. Marathon consists of a recorder, player, debugger and an editor. Marathon records test scripts in a language of your choice - either python or ruby. The power of whole script runtime is at the disposal of the testing professionals. Marathon is used mainly for automating functional tests (also called as acceptance tests, end user tests or customer tests), though it can also be used to create developer test suites. Marathon, by itself, adds only a few well defined c onstructs to the script runtime. It is possible to develop Marathon tests even before an application is fully developed.
Frankenstein is a Functional Testing tool for Swing applications. Frankenstein's focus is on readable, simple, fast functional tests that can be shared and run by everyone on a team. Apart from automating your functional tests, you could also use Frankenstein for recording bugs so that they may be easily reproduced later.
The Panopticode project provides a set of open source tools for gathering, correlating, and displaying code metrics