Most functional testing tools have test scripts that are managed in the form of code. In the Jubula project proposal, it submits five negative side-effects of having code in acceptance testing. These side-effects include:
- Code redundancies, which require refactoring
- A large amount of leg-work to make the code flexible and maintainable
- Places test control into the hands of developers and not testers
- Tests lag behind development
- The dependency on working applications stands in the way of agile processes, where acceptance testing happens in parallel with development
A code-free approach, by contrast, could keep test maintenance to a minimum. Jubula would instead focus on how the user sees and uses the software (as a black-box).
Tests are generated by using a library of actions that can easily be combined by a customer or tester using drag and drop. This library is already being used successfully in many other projects, and it already has most of the actions needed to write acceptance tests. Jubula's library is also application independent, so test creation can begin before the software is ready. Tests can be executed right when the code is committed.
Jubula includes plugins for managing test scenarios and testing applications based on Swing, SWT, RCP, GEF and HTML. Jubula will also use EclipseLink as a persistence layer for model elements. The first major code contribution to the Jubula project will come from BREDEX GmbH and their award-winning, commercial GUIdancer tool.
The objectives defined in the Jubula project are as follows:
- Provide tooling for testers and developers to do automated GUI testing on Java and HTML based applications.
- Specify and maintain a model for test specifications and a persistence layer for the model elements.
- Provide API for interested projects to generate test scenarios, execute automated tests and get results from these tests.
- Integrate with other projects to get information to create test scenarios and submit results. This includes tracing changes made by other projects to their data and mirroring these changes back to the test scenarios.