Jailer
http://jailer.sourceforge.net/home.htm
Apache 2.0
Jailer 3.6
26.05.2011
Jailer unterstützt das Aufbauen von Testdatenbanken für Softwaretests,
indem aus Datenbanken mit umfangreichen Datensätzen und komplexen Datenmodellen, Teilmengen der Datensätze exportiert werden,
ohne die Abhängigkeiten zu verletzen.
Außerdem erlaubt Jailer die Visualisierung von Tabellen sowie deren Beziehungen und bietet
weitere GUI Unterstützung, bei der Analyse und Modellierung von Datenbanken.
Jailer eignet sich besonders gut für Einsteiger in die Qualitätssicherung, da es viel mit Visualisierungen arbeitet und dem Benutzer Arbeitsschritte durch die GUI erleichtert.
Das Werkzeug selbst führt keine Tests durch, sondern unterstützt den Benutzer dabei SQL Skripte oder Testdatensätze für Testdatenbanken zu erstellen, die dann mit anderen Werkzeugen, wie
z.B. DBUnit, dessen flat-xml Format unterstützt wird, verwendet werden.
Die Fähigkeit ein Datenmodell anhand einer bestehenden Datenbank zu erstellen, um daraufhin Teile des Datensatzes zu extrahieren ohne Abhängigkeiten zu verletzen, macht Jailer auch für
erfahrene Tester interessant.
Jailer kommt primär in der Qualitätssicherung für Software mit Datenbankanbindung zum Einsatz.
Es unterstützt bei dem Aufbau von Testdatenbanken und bei dem Anlegen und Extrahieren von Testdatensätzen,
führt aber selbst keine Softwaretests durch.
Jailer ist eine eigenständige Java Applikation, die unter Unix und Windows lauffähig ist.
Nach dem Download muss die Software lediglich entpackt werden.
Gestartet wird Jailer, abhängig von dem benutzten Betriebssystem, über mitgelieferte Batch- und Shell-Skripte,
die .exe-Datei oder über die ausführbare .jar Datei.
Für die Verbindung zu einer Datenbank werden die zugehörigen JDBC Treiber benötigt.
Die englischsprachige Dokumentation ist Bestandteil der Jailer Webseiten.
Es gibt eine Übersicht über die wichtigsten Funktionen und detailliertere Schritt für Schritt Anleitungen mit vielen hilfreichen Screenshots.
Allgemein bezieht sich die Dokumentation nur auf die Anwendung der Software.
Die Projektseite macht insgesamt einen gepflegten Eindruck.
Die Versionsgeschichte der Software zeugt von regelmäßigen und häufigen Updates.
Auf der Webseite von Jailer gibt es ein Forum und ein knappes FAQ.
Die Benutzung ist dank übersichtlicher GUI und Visualisierung der Datenmodelle mit Graphen und Bäumen weitestgehend intuitiv.
Wichtige Programmabläufe werden außerdem durch die Dokumentation Schritt für Schritt erklärt.
Die Software ist darauf ausgelegt, von einem Benutzer bedient zu werden.
Einleitung:
Das folgende Beispiel demonstriert das Extrahieren eines Tabelleneintrags, wobei Jailer darauf achtet,
dass andere Einträge, die eine Referenz auf den zu extrahierenden Eintrag haben, ebenfalls extrahiert werden.
Konkret extrahiert wird ein Projekt, mit allen beteiligten Mitarbeitern und ihren Rollen.
Vorbereitung:
Eine Datenbank muss installiert und gestartet sein.
In diesem Beispiel kommt die JavaDB zum Einsatz. Diese lässt sich auch bequem über die GUI Menüs der NetBeans IDE starten und konfigurieren.

Nachdem die Datenbank angelegt ist, legt man, mit Hilfe des folgenden SQL-Skripts, die Tabellen, Constraints und Testdaten an.
beispiel.sql
Durchführung:
Nun wird Jailer gestartet und bei der Modulwahl der "Data Browser" gewählt.
Über "New" muss hier eine Konfiguration der Verbindung zu der Datenbank angelegt werden.

Nach erfolgreichem Verbinden zu der Datenbank, werden über das Menü "Tools->Analyze Database" die Tabellen und Beziehungen erkannt.
Jetzt wird Jailer neu gestartet und als Modul "Database Subsetter" gewählt.
Im Hauptfenster sind nun die Tabellen mit ihren Beziehungen zu einander dargestellt.
Man kann in den Einstellungen in der Menüleiste und in den Kontextmenüs der Tabellen bewirken,
dass das Modell mehr Informationen anzeigt.
So sieht das vollständige Modell dieses Beispiels aus:

Man sieht, dass die Verbindungspfeile zwischen den Tabellen jeweils immer in beide Richtungen laufen.
Würde man nun ein Projekt aus der "PROJEKT" Tabelle extrahieren, so würde Jailer die Verbindungen vorwärts und rückwärts
durchgehen.
Dies hätte unter Anderem zur Folge, dass nicht nur Personen die an dem Projekt beteiligt sind extrahiert würden, sondern auch alle Personen, die überhaupt an irgendeinem Projekt beteiligt sind.
Dasselbe gilt auch für die Rollen der Projektbeteiligten.
Aus diesem Grund deaktiviert man die Rückwärts-Pfeile der Tabellen "PERSON" und "ROLLE".
Dazu wählt man in der Baumstruktur des Modells die entsprechende Tabelle aus und klappt sie auf, um den Rückwärts-Pfad wählen zu können.
Nach einem Klick auf den Zweig, kann weiter unten über eine Checkbox der Status auf "Disabled" gesetzt werden.

Mit dem gleichen Ablauf deaktiviert man auch die Rückwärts-Verbindung der Tabelle "ROLLE".
Nun kann ein Projekt extrahiert werden und es werden nur die an dem einen Projekt beteiligten Personen und deren Rollen ausgelesen.
Wir wählen das Projekt mit der ID Nr. 101 und tragen es oben links in Form einer SQL Abfrage ein.
Außerdem wird für dieses Beispiel als Exportformat "DbUnit flat dataset" ausgewählt und auf den "Export" geklickt.

Der Benutzer wird dazu aufgefordert das Modell zu speichern, hier wird ein beliebiger Dateiname und Speicherort gewählt.
Im nächsten Formular kann der Name der .xml Datei angegeben und zusätzliche Einstellungen getroffen werden.
Wenn die "explain" Checkbox aktiviert ist, wird nach dem Klick auf "Export Data" zum endgültigen Exportieren der Daten,
eine Logdatei generiert, die Jailers Entscheidungen, warum und welche Einträge es exportiert hat, dokumentiert.
Dokumentation
-
Zurück zur Werkzeugübersicht
Zurück zur CSI-Hauptseite