Eclipse Jubula: Automated Functional Testing Tool
The recent release of Eclipse Indigo includes Jubula, an automated functional testing tool for Java and HTML applications. Tests are created via drag and drop of built-in test libraries, instead of application recording or test programming. Jubula is part of the Eclipse for Testers package, and can also be downloaded as a standalone RCP application.
Jubula provides built-in test actions that are application and toolkit independent. You can develop tests independent of the application UI. This allows testing teams to develop functional GUI tests in parallel with the development team, focusing on the requirements instead of the implementation. This also brings test-driven development to the realm of functional GUI testing. Being toolkit independent, you also develop test scripts the same way, whether the application being tested is Swing, SWT or HTML based.
Many testing tools are either capture-replay tools or require writing test scripts. Capture-replay tools generate a lot of code that can become a project on its own right. Generated code needs to be refactored to become modularized and less fragile. Hand coded test scripts are more maintainable, but require more time to develop and need testers with more advanced skill sets. Jubula tests are quicker to develop and more robust as there is no code to maintain. You can also create your own test modules for reusability. No coding also means you can get more customer involvement in the actual test development process.
Jubula supports Swing, SWT/RCP/GEF and HTML applications, and works on Windows, Linux/Unix and Mac. It includes a command line client for continuous integration or scripting. Jubula is based on a client-server architecture, where you run an AUT (Application Under Test) Agent where your AUT resides. Please note that the AUT Agent is currently not part of the Eclipse Indigo package and requires a separate download.
Jubula was released as an open source project within the Eclipse Foundation in November 2010 by BREDEX GmbH. It is based on the core components of GUIdancer, a recipient of the Eclipse best commercial developer tool award for 2010. The press releases states:
The decision to make core GUIdancer components available as an open source Eclipse project was motivated to a large extent by customer requests for longevity assurance, explained Achim Lörke, project lead for GUIdancer and a managing director at BREDEX. "Open source is quickly becoming a preferred model to ensure the long-term availability of software without having to negotiate agreements about investment security for the development process."
One alternative to Jubula is Google WindowTester. WindowTester supports Swing and SWT based applications, but not HTML applications. If Jubula is a drag and drop tool, WindowTester is a code generation tool. It works by automatically generating standard JUnit tests for your Swing or SWT applications. WindowTester gives developers the ability to easily generate GUI tests that can easily be integrated into the unit testing process.
The easiest way to get started with Jubula is by following the Jubula Cheat Sheets found under the Eclipse Help menu. There are also example projects under the Jubula Eclipse plugins folder that can help you get started. Another good resource is the Eclipse Community Jubula forum. Note that there is currently little documentation on the Jubula website, and a lot of existing documentation still references GUIdancer.