Difference Testing mit recheck-web: Von der Installation bis zur Stabilisierung

recheck-web ist ein Difference-Testing Tool auf Basis von Selenium. Es unterstützt semantisches Golden-Master-Testing ebenso wie Visual Regression Testing, Cross-Browser- oder Cross-Device-Testing. Ein dreiteiliges Tutorial führt in die Prinzipien und Vorgehensweisen ein.

Werkzeuge  –  0 Kommentare

"Assertion Testing" ist der klassische, aus JUnit stammende Ansatz, bei dem manuell erstellte Assertion-Statements bei der Testausführung als Testorakel (zur Unterscheidung zwischen pass/fail) dienen. "Difference Testing" ist im Gegensatz dazu ein Golden-Master-basierter Testansatz, der die Unterschiede zwischen verschiedenen Ausführungen verdeutlicht, beispielsweise zwischen unterschiedlichen Versionen.

Assertion Testing ist ein Blacklist-Ansatz, es werden also nur Unterschiede erkannt, die zuvor per Assertion explizit definiert wurden. Difference Testing ist hingegen ein Whitelist-Ansatz. Hier werden zunächst alle Unterschiede (auch unerwartete) erkannt, irrelevante lassen sich dann ignorieren.

Dieses Tutorial ist eine Schritt-für-Schritt-Anleitung

  • zum Installieren und Einrichten von recheck-web mit dem Build-Tool Maven und recheck.cli,
  • zum Erstellen eines ersten ausführbaren Difference-Testing-basierten Java-Testfalls sowie
  • zum Stabilisieren der Testausführung, indem irrelevante Änderungen ignoriert werden.

Darüber hinaus zeigt es einige typische Anwendungsszenarien in der Entwicklung und
Testwartung.

reckeck-web, das Tutorial

  • Installation, Beispieltestfall und Stabilisierung
  • GUI-Elementenerkennung und regelbasiertes Ignorieren von Änderungen
  • Data Driven Testing, Konfiguration und Integration

Am Anfang steht die Installation

Voraussetzung für den Einsatz von recheck-web ist, dass Java und Maven auf dem System installiert sind. Entwickler können das überprüfen, indem sie ein Terminal beziehungsweise CMD öffnen und die folgenden Befehle ausführen:

java -version
mvn --version

Die Ausgabe sollte keinen Fehler enthalten und anzeigen, dass eine Java-Version von 8 oder höher installiert ist. Nun lässt sich ein neuer Ordner (z. B. recheck-web-tutorial) und darin eine einfache pom.xml-Datei mit folgendem Inhalt erstellen:

?<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>recheck-web-tutorial</artifactId>
<version>0.1-SNAPSHOT</version>

<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>de.retest</groupId>
<artifactId>recheck-web</artifactId>
<version>1.0.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

Nach dem Zugriff auf die bevorzugte IDE (z.B. mittels mvn eclipse:eclipse) lässt sich eine erste Testklasse erstellen. Vor dem Ausführen eines Selenium-Tests müssen Entwickler zunächst einen Driver beziehungsweise Browser nach Geschmack und Betriebssystem herunterladen und einrichten, etwa Chrome.

Zur Installation des Chrome-Drivers entpackt man das Archiv auf die Festplatte. Entwickler müssen hier beachten, dass sie zusätzlich eine passende Version von Chrome auf ihrem System benötigen. Danach sollte alles vorbereitet sein.