25. Januar 2016
Kay Grebenstein
0

Testwerkzeuge für JavaFX

Testautomatisierungswerkzeuge sorgen für eine schnelle und kontinuierliche Rückmeldung über den Stand der Qualität der zu testenden Software. Aber bei ihrem Einsatz müssen verschiedene Punkte beachtet werden, z. B. die Eignung für neue Technologien wie JavaFX.

Kritische Fehler, die erst im Rahmen des Live-Betriebes öffentlich werden, stellen ein großes finanzielles Risiko und nicht zuletzt eine negative Werbung für ein Produkt und die beteiligten Unternehmen dar. Um dies zu verhindern ist das Thema Test in der modernen Softwareentwicklung ein grundlegender und integraler Bestandteil. Nur durch eine hohe Testabdeckung und der zeitnahen Rückmeldung von Ergebnissen lässt sich die Qualität und Reife des Produktes ausreichend genau nachweisen und bestätigen.

Eine Lösung ist der Einsatz von Testautomatisierungswerkzeugen, die eine schnelle Durchführung dieser Tests ermöglicht und den Anforderungen moderner Entwicklungsprojekte entspricht. Diese Werkzeuge arbeiten nach dem Prinzip der toolgesteuerten Aufnahme von Informationen über die grafische Oberfläche des Testobjekts und der damit möglichen automatisierten Durchführung von skriptgebunden Interaktionen sowie der daraus resultierenden Prüfung der jeweiligen Applikation.

Einsatz von Testautomatisierungswerkzeugen

Abbildung 1 – Einsatz von Testautomatisierungswerkzeugen

Bei älteren Automatisierungstools wird die Aufnahme der Informationen dadurch erreicht, dass die Positionsdaten des GUI-Elements, wie zum Beispiel eines Buttons, gespeichert und zur Ausführungszeit ein entsprechendes Event abgesetzt wird. Anschließend erstellt die Software ein Screenshot und vergleicht jenes mit einem zuvor erstellten um die Testergebnisse zu verifizieren. Moderne Tools hingegen verfolgen einen anderen Weg. Sie verbinden sich über eine eigene „Engine“ mit der zu testende Applikation. Dadurch sind Sie in der Lage alle Control-Elemente der Oberfläche zu erfassen, deren Eigenschaften auszulesen und diese auch fernzusteuern. Die zugehörigen Daten werden als ein Modell der Applikation in so genannten GUI Maps abgelegt und sind die Grundlage für die anschließende Erstellung von Testskripten.

Der effektive Einsatz einer Testautomatisierungslösung steht und fällt also mit der verwendeten Engine. Diese muss die zu testende Technologie optimal unterstützen. Besonders Entwicklungsprojekte die „neue“ Technologien wie JavaFX einsetzen haben aber die Herausforderung, dass die vorhandenen und bekannten Werkzeuge nicht immer den gleichen Stand wie ihr Arbeitsgegenstand aufweisen.

Es gibt verschiedene Softwarelösungen, die mit unterschiedlichen Ansätzen die Automatisierung von JavaFX Oberflächen in unterschiedlicher Qualität unterstützen. Wir haben die vier Werkzeuge Expecco der Firma Exept Software AG, QF-Test der Firma Quality First Software, Squish der Firma Froglogic und das Opensourceprojekt TestFX auf ihre Tauglichkeit für Entwicklungsprojekte mit JavaFX untersucht und bewertet.

Vorteile
Expecco
  • Werkzeug lässt sich auch für andere Technologien nutzen (HTML, Windows, SAP, Java, Mobile etc.)
  • ausführliche Testberichte in verschiedenen Formaten (HTML, PDF)
  • auch lesbar für Nicht-Programmierer
  • Support in deutscher Sprache
QF-Test
  • gute Bedienbarkeit
  • offizielle Unterstützung durch Oracle
  • Unterstützung von Load-Tests
  • auch lesbar für Nicht-Programmierer
  • Support in deutscher Sprache
Squish
  • für Entwickler geeignet
  • gute Integration in CI/CD
  • Werkzeug lässt sich auch für andere Technologien nutzen (HTML, Windows, Java, Mobile etc.)
TestFX
  • Schnelle und kostengünstige Lösung für entwicklungsnahe Tests
  • Integration in CI/CD

 

Nachteile
Expecco
  • „capture and replay“ fehlt für JavaFX
  • Maske nicht immer intuitiv
QF-Test
  • nur für JAVA geeignet
  • eingeschränkte Erweiterung der Testfalllogik
Squish
  • Testauswertung nur in XML
  • Eingabe durch Skriptsprache
  • Oberfläche sehr Eclipse-ähnlich
  • Support in englischer Sprache
TestFX
  • Tester benötigt Entwickler-KnowHow
  • noch nicht ganz fertig
  • kein Support durch Firma
  • Dokumentation nicht vollständig

 

Preis
Expecco
  • ab 8.000,- €
QF-Test
  • ab 2.000,- €
Squish
  • ab 8.000,- €
TestFX
  • kostenfrei

Zusammenfassend lässt sich sagen, dass es viele Werkzeuge für die Testautomatisierung mit JavaFX gibt und deren Funktionsumfang von einfach bis sehr komfortabel reicht. Jedes der untersuchten Werkzeuge hat seine Vor- und Nachteile sowie Besonderheiten. Darum sollte im Vorfeld geprüft werden, welche Anforderungen das Team bzw. das Projekt an das Werkzeug stellt. In den Überlegungen sollten neben der Unterstützung der eingesetzten Technologien auch die Interessen der späteren Anwender (Entwickler, Tester oder Fachbereich) oder die Frage des Supports einfließen.

Kay Grebenstein ist Diplom-Informatiker und arbeitet als Testmanager für die Saxiona Systems AG, Dresden. Er hat in den letzten Jahren in klassischen und agilen Projekten unterschiedlicher fachlicher Domänen (Telekommunikation, Industrie, Versandhandel, Energie, …) Qualität gesichert und Software getestet. Die gewonnenen Erfahrungen und Erkenntnisse stellt er auf Konferenzen, in Publikationen und auf vielen anderen Wegen vor.

Twitter LinkedIn Google+ Xing 

TeilenTweet about this on TwitterShare on Facebook0Share on Google+0Share on LinkedIn0