Inhaltsverzeichnis
Checkerberry db ist eine Bibliothek, die den Software-Entwickler bei dem Testen von Funktionen unterstützt, die Daten innerhalb einer Datenbank lesen oder manipulieren. Komplexe Aufgaben wie das Einspielen von Testdaten in die Datenbank werden innerhalb von checkerberry db gekapselt, sodass die zu entwickelnden Tests kurz, übersichtlich und wartbar bleiben. Die folgende Grafik gibt einen Überblick über die Funktionsweise von checkerberry db.
Bei der Durchführung eines Tests mit checkerberry db wird zunächst die Vorbedingung für den Test hergestellt. Zu diesem Zweck wird der Inhalt der Datenbank manipuliert. Der bestehende Inhalt wird gelöscht und initiale Testdaten werden eingespielt. Die einzuspielenden Testdaten werden dabei aus einer XML-Datei eingelesen. Nach dem Einspielen der Testdaten erfolgt der Aufruf der zu testenden Funktionen. Die Funktionen greifen auf die Testdaten in der Datenbank zu und können die Daten in der Datenbank manipulieren. Danach wird geprüft, ob die Datenbank die erwarteten Werte beinhaltet. Zu diesem Zweck wird der aktuelle Datenbankinhalt mit erwarteten Testdaten verglichen. Die erwarteten Testdaten werden wie die initialen Testdaten in einer XML-Datei definiert.
Checkerberry db setzt das Open-Source-Framework DbUnit [DbUnit Homepage, 2010] ein. DbUnit stellt grundlegenden Funktionalitäten zur Verfügung, um integrierte Datenbanktests durchzuführen. Allerdings erfordert das Einbinden von DbUnit in die eigenen Projekte einen hohen Anpassungsaufwand und umfangreiche Erfahrung. Ohne das notwendige DbUnit-Know-how kann dieser Weg sehr steinig sein. Im schlimmsten Fall stellt sich erst nach einigen Monaten heraus, dass der gewählte Weg langfristig nicht gangbar ist.
Innerhalb von checkerberry db wird DbUnit ausschließlich für die Kommunikation mit der Datenbank eingesetzt. Das bedeutet insbesondere, dass der in diesem Dokument beschriebene Funktionsumfang sich ausschließlich auf Funktionen von checkerberry db bezieht.
In checkerberry db stecken mehrere Jahre an Erfahrungen, um eine möglichst einfache und nachhaltige Testentwicklung zu ermöglichen. Schließlich besteht das Ziel des Software-Entwicklers in der Testentwicklung und nicht in der Entwicklung eines neuen Testframeworks.