2.4.15. Analysieren mit Hilfe von Reports

Während in automatisierten Tests in der Regel genau eine Eigenschaft überprüft wird, umfasst die Überprüfung der Datenbank den gesamten Datenbestand. Der erwartete Datenbestand kann somit an mehr als einer Stelle von dem tatsächlichen Datenbestand abweichen. In automatisierten Tests wird das Verhalten so abgebildet, dass lediglich die erste erkannte Abweichung gemeldet wird. In den meisten Fällen liefert die Fehlermeldung ausreichende Informationen, um die Ursache für den fehlgeschlagenen Test zu finden. Teilweise kann diese Fehlermeldung jedoch auch irreführend sein.

Nachhaltige automatisierte Tests zeichnet eine lange Lebensdauer aus. Die Testbasis wird durch die Erstellung neuer Tests in der Entwicklungsphase stetig verbreitert. In jedem Projekt kommt früher oder später der Moment, in dem die Änderungen eines Entwicklers einen bestehenden Test fehlschlagen lassen. Es ist die Aufgabe des Entwicklers festzustellen, ob seine Änderungen fehlerhaft sind oder ob der bestehende Test nicht mehr korrekt ist. Dabei hilft ein Blick auf das Ganze, anstatt sich nur mit der einen durch den Test gemeldeten Abweichung zu beschäftigen. Zu diesem Zweck bietet checkerberry db die Möglichkeit, verschiedene Reports zu erstellen. Im Diff-Report werden die erwarteten Testdaten mit dem tatsächlichen Datenbestand vergleichen. Der Process-Analysis-Report zeigt, wie sich nach dem Einspielen der initialen Testdaten der Datenbankbestand verändert hat. In dem Expectation-Report werden die initialen mit den erwarteten Testdaten verglichen.

2.4.15.1. Anzeigen aller Testabweichungen

Der Diff-Report vergleicht die erwarteten Testdaten mit dem tatsächlichen Datenbestand und speichert das Ergebnis in einer HTML-Datei. Für jede Datenbanktabelle wird eine Übersicht erzeugt, die unerwartete, fehlende oder abweichende Werte anzeigt.

Beispiel 2.48. Erstellung Diff-Report

public void testAnything() throws Exception {

  …
  // Testhandler holen.
  DbTestHandler testHandler = getEnvironment().getTestHandler();
  // Diff-Report erstellen.
  testHandler.createDiffReport("c:/temp/diff.html");
}


Das Code-Beispiel zeigt, wie ein Diff-Report aus der Testmethode heraus erstellt wird. Der Test-Handler stellt die Methode createDiffReport zur Verfügung, die den Report erstellt und in einer HTML-Datei im Dateisystem speichert.

Abbildung 2.26. Erstellung Diff-Report

Erstellung Diff-Report


Abbildung 2.26, „Erstellung Diff-Report“ zeigt schematisch den Ablauf bei der Erstellung des Diff-Reports. Der Datenbankinhalt und die erwarteten Testdaten werden eingelesen und verglichen. Die Ergebnisse des Vergleichs werden im HTML-Format in einer Datei gespeichert. Die Datei kann dann über einen Browser angezeigt werden.

Wie die Ergebnisse des Diff-Reports dargestellt sind, wird in Abschnitt 2.4.15.4, „Aufbau eines Reports am Beispiel des Diff-Reports“ detailliert erläutert.