<html>
<head>
<title>Jubula 2.1.0 Release Documentation</title>
</head>
<h1>Jubula 2.1.0 Release Documentation</h1>
<h1>Content</h1>
This pages provide the required docuware for the Jubula 2.1.0
Release Review as part of the upcoming Kepler Release
<br> Contact: Achim L&ouml;rke (Achim.Loerke@bredex.de)
<br> Release Review: June 2013
<br> Communication Channels: 
<ul>
<li>Eclipse Bugzilla</li>
<li>Jubula Newsgroup</li>
<li>Jubula Mailing List jubula-dev@eclipse.org
</ul>
<br> Process Documentation :
http://www.eclipse.org/projects/dev_process/development_process.php
<h1>Overview</h1>
<p>Jubula provides automated functional GUI testing for Java and HTML
applications. It is aimed at teams who want their automated tests to be written by 
test experts from the user perspective, without requiring any coding effort. Jubula 
tests incorporate best practices from software development to ensure long-term 
maintainablity of the automated tests.  
</p>
Technical details
<ul>
<li>Supports Swing, SWT/RCP/GEF and HTML applications</li>
<li>Platform independent testing on Windows, Linux/Unix and Mac</li>
<li>Client-server architecture for distributed testing</li>
<li>Heuristic object recognition</li>
<li>Command line client for continuous integration</li>
<li>Testing of multiple applications supported</li>
<li>Context-sensitive help in client</li>
<li>Projects stored in multi-user database</li>
<li>Portability and version control via exports in XML format</li>
</ul>

<h1>Important Changes</h1>
With the Kepler release some former (non-)API used for writing Jubula extensions was changed. 
This was necessary to provide support for easier addition of toolkits, especially for mobile platforms. 
An overview of how to write extensions is available as <a href="http://ftp.bredex.de/.gd/201303141757/Jubula_2.0.00148/EXTEND.pdf">a PDF document</a>.
A migration guide is available in <a href="http://ftp.bredex.de/.gd/201303141757/Jubula_2.0.00148/releaseNotes.pdf">the release notes</a>.

Deprecated Test Steps and unbound modules have been removed in this version. For migration help refer to the release notes.
 
<h1>Features</h1>
This release of Jubula enables developers to view and develop GUI based
tests. It also allows interaction with the test infrastructure and 
execution of test suites.
<p>
New in the 2.1.0 release:
<ul>
<li>Support for testing e4 RCP application (both pure e4 and with the compatibility layer)</li>
<li>Support for 32 and 64 bit platforms</li>
<li>Support for Microsoft&reg; Windows 8 testing</li>
<li>The Test Case Browser view can now have multiple instances</li>
<li>Searches can now be limited to selected entities and can be constrained to the current project (i.e. skip reused projects).
<li>The workspace selection dialog no longer uses a special version. The standard platform chooser is now used.</li>
<li>Database access can now store credential information and project access information in the Eclipse secure data storage.</li>
<li>The command line tools can now use DB urls instead of workspace data to access the project database.</li>
<li>Remote Control: new Test Steps and unbound modules have been provided for data storage.</li>
<li>HTML reports now include screenshots on error</li>
<li>Performance improvements, escpecially when working with very large projects</li>
<li>A lot of usability improvements</li>
</ul>
</p>
<h1>Non-Code Aspects</h1>
Documentation, Cheat Sheets and Online Help have been provided to 
allow beginners a painless start.
<h1>Testing and Packaging</h1>
Jubula is build using Hudson, Maven and Tycho.
<br>
Since Jubula is a GUI test tool it is tested by itself. There are 
currently about 25.000 high level test steps executed for a complete 
test on one platform. This
test include happy path checking, low level GUI component checking and
cross application checks. All tests are performed nightly on several test
instances covering MS Windows Vista, 7 and 8, CentOS 5.5 
and Mac OSX 10.8.
<br>
Jubula is part of the Kepler Release Train and maintains a Testing Package
at the EPP.
<br>
The EPP Testing package itself is tested by Jubula. 

<h1>Community and Support</h1>
<ul>
	<li>Eclipse Forum: about 100 entries per week on average</li>

	<li>Mailing Lists:
		<ul>
			<li>jubula-dev@eclipse.org</li>			
		</ul>
	<li>blog.bredex.de syndicated at Planet Eclipse</li>
	
	<li> The Eclipse for Testers package has been download more than 100.000 times for the latest release. 
	The freely available installer package (non-EPL because of included drivers) has similar download numbers.
	</li>
</ul>

<h2>Bugzilla</h2>
The diagram shows the Bugzilla entries as of 2013-05-22. Click on the diagram for an updated view.
<p>
<a href="https://bugs.eclipse.org/bugs/report.cgi?x_axis_field=bug_status&y_axis_field=bug_severity&z_axis_field=&query_format=report-table&short_desc_type=allwordssubstr&short_desc=&classification=Technology&product=Jubula&longdesc_type=allwordssubstr&longdesc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_severity=blocker&bug_severity=critical&bug_severity=major&bug_severity=normal&bug_severity=minor&bug_severity=trivial&emailtype1=substring&email1=&emailtype2=substring&email2=&bug_id_type=anyexact&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&format=table&action=wrap&field0-0-0=noop&type0-0-0=noop&value0-0-0=">
<img alt="Bugzilla Diagram" src="./bugzilla_kepler.png" width="600">
</a>
</p>

<h1>IP Issues</h1>
The component leadership verifies that:
<br>
<ul>
	<li>the about files and use licenses are in place as per the
		Guidelines to Legal Documentation.</li>
	<li>all contributions (code, documentation, images, etc) have been
		committed by individuals who are either Members of the Foundation, or
		have signed the appropriate Committer Agreement. In either case, these
		are individuals who have signed, and are abiding by, the Eclipse IP
		Policy.</li>
	<li>all significant contributions have been reviewed by the
		Foundation's legal staff.</li>
	<li>all non-Committer code contributions, including third-party
		libraries, have been documented in the release and reviewed by the
		Foundation's legal staff.</li>
	<li>all Contribution Questionnaires have been completed.</li>
</ul>
<p>
The Jubula IP Log is available from <br>
<a href="http://www.eclipse.org/projects/ip_log.php?projectid=technology.jubula">http://www.eclipse.org/projects/ip_log.php?projectid=technology.jubula</a>
</p>
<p>
The IP Log has been submitted for approval on 2013-05-22. No problems are expected.
</p>
<h1>Contributors and Committers</h1>
Contributors:
<table>
<tr><td>Tobias Eiss</td><td>BREDEX GmbH</td></tr>
<tr><td>Ann-Katrin Hannemann</td><td>BREDEX GmbH</td></tr>
<tr><td>Antje Huszarik</td><td>BREDEX GmbH</td></tr>
<tr><td>Oliver Goetz</td><td>BREDEX GmbH</td></tr>
<tr><td>Patrick Gutorski</td><td>Ostfalia Hochschule f&uuml;r angewandte Wissenschaften</td></tr>
<tr><td>Felix Ziesel</td><td>BREDEX GmbH</td></tr>
<tr><td>Steve J&uuml;rges</td><td>BREDEX GmbH</td></tr>
<tr><td>S&ouml;ren Wellge</td><td>Ostfalia Hochschule f&uuml;r angewandte Wissenschaften</td></tr>
</table>
<p></p>
Committers:
<table>
<tr><td>Raimar B&uuml;hmann</td><td>BREDEX GmbH</td></tr>
<tr><td>Zeb Ford-Reitz</td><td>BREDEX GmbH</td></tr>
<tr><td>Achim L&ouml;rke</td><td>BREDEX GmbH</td></tr>
<tr><td>Marvin M&uuml;ller</td><td>BREDEX GmbH</td></tr>
<tr><td>Alexandra Schladebeck</td><td>BREDEX GmbH</td></tr>
<tr><td>Markus Tiede</td><td>BREDEX GmbH</td></tr>
<tr><td>Tim Winselmann</td><td>BREDEX GmbH</td></tr>
</table>
<h1>Project Plan</h1>
The current project plan is available from <br>
<a href="http://www.eclipse.org/projects/project-plan.php?projectid=technology.jubula">http://www.eclipse.org/projects/project-plan.php?projectid=technology.jubula</a>
</html>