Test::Class provides a simple way of creating classes and objects to test your Perl code in an xUnit style. Built using Test::Builder, it was designed to work with other Test::Builder-based modules. You can easily package your tests as classes/modules rather than *.t scripts. This simplifies reuse, documentation, and distribution, encourages refactoring, and allows tests to be extended by inheritance.
Mistletoe is a JUnit extension intended for integration testing. In technical terms, it is a JUnit test suite runner presenting the test results via HTTP as a Web page. Mistletoe, when incorporated within an application, will help diagnose integration issues. For example, an application that runs perfectly in the developer's environment may not run properly in the production environment due to configuration errors and connectivity issues. Instead of perusing log files, or looking at stack traces, mistletoe will run a user-specified series of tests and present the results in the form of a Web page served by the application itself. Since the tests are run within the context of the deployed application, given an appropriate test suite, you can home in on integration problems quickly and conveniently.
StoryText (formerly PyUseCase) is an unconventional GUI testing tool written in Python. It currently has mature support for PyGTK, beta status support for Java Swing, SWT/Eclipse RCP, and Tkinter, and very basic support for wxPython. Instead of recording GUI mechanics directly, it asks the user for descriptive names and hence builds up a "domain language" along with a "UI map file" that translates it into the current GUI layout. Instead of an "assertion" mechanism, it auto-generates a log of the GUI appearance and changes to it, so as to use that as a baseline for text-based testing, using e.g. TextTest. Instead of requiring the tester to add "wait" statements by hand, it includes support for instrumenting code so that "waits" can be recorded.
MASH is a modular, automated script harness. It allows users to implement simple harnesses that perform work external to a system. The framework will invoke that harness as outlined by an XML script. For example, when using the framework to test a system you could create a script that cleans and loads a database, FTPs some data, submits a login form, and verifies HTTP information. Harnesses can easily be built to do almost anything (many harnesses are provided), not just Web page verification. While harnesses are written in Java, the scripts may be run against any type of system as harnesses are intended to act as clients.
Citrus is a test framework written in Java that enables automated integration testing of message-based enterprise SOA applications. The tool can easily simulate surrounding systems across various transports and protocols (e.g. JMS, SOAP WebServices, HTTP, TCP/IP, etc.) in order to perform end-to-end use case testing. Citrus provides strong validation mechanisms for XML message contents and allows you to build complex testing logic such as sending and receiving messages, database validation, automatic retries, variable definitions, dynamic message contents, error simulation, and many more.