© Excellent backgrounds/Shutterstock.com
Java Magazin
Das richtige Testwerkzeug für JavaFX

Die Qual der Wahl


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 kommerziellen Werkzeuge expecco, QF-Test, Squish, TestComplete und das Open-Source-Projekt TestFX auf ihre Tauglichkeit für Entwicklungsprojekte mit JavaFX untersucht und bewertet.

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 beachten werden. Es gibt viele Werkzeuge auf dem Markt, die unterschiedliche Ansätze wählen, wie sie sich in den Entwicklungs- und Testprozess integrieren oder welche Technologien sie unterstützen.

Es gibt entwicklungsnahe Werkzeuge, die sich direkt in die Entwicklungswerkzeuge integrieren lassen. Mit diesen Testwerkzeugen werden keine Unit-Tests umgesetzt, da durch die Ansteuerung der grafischen Oberfläche bereits eine zusätzliche Schnittstelle eingebunden wurde. Trotzdem erfolgt ihre Bedienung oder die Beschreibung der Testskripte über das Schreiben von Code. Demgegenüber stehen Testautomatisierungswerkzeuge für den Systemtest. Sie wenden sich in ihrer Bedienung an Anwender, die nicht unbedingt Erfahrung im Programmieren mitbringen müssen. Die Testskripte werden dort „Keyword-driven“ oder „Model-based“ abgebildet. Leider verwenden die Hersteller der Werkzeuge die Bezeichnungen nicht eindeutig und standardisiert. Bei „Keyword-driven“ erfolgt die Interaktion mit den zu testenden Oberflächen über Schlüsselworte, die die Controls ansteuern, z. B. „Klick ButtonXY“ oder „Überprüfe Texteigenschaft von LabelZ“. Bei „Model-based“ werden die Testskripte in einer abstrakten Form abgebildet, z. B. in einem Flussdiagramm oder per Behavior-driven Development (BDD).

Bei der technischen Umsetzung der Ansteuerung und Interaktion mit den zu testenden Oberflächen gibt es kaum Unterschiede. Bei älteren Automatisierungstools wurde die Aufnahme der Informationen dadurch erreicht, dass die Positionsdaten des GUI-Elements, wie z. B. eines Buttons, gespeichert werden und zur Ausführungszeit ein entsprechendes Event abgesetzt wird. Anschließend erstellt die Software einen Screenshot und vergleicht ihn mit einem zuvor erstellten, um die Testergebnisse zu verifizieren. Dieses Vorgehen ist für Probleme bei Änderungen der Oberfläche anfällig. Bereits beim Ändern der Farbe der Controls würden alle Testfälle fehlschlagen. Zusätzlich setzt ...

Java Magazin
Das richtige Testwerkzeug für JavaFX

Die Qual der Wahl

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 kommerziellen Werkzeuge expecco, QF-Test, Squish, TestComplete und das Open-Source-Projekt TestFX auf ihre Tauglichkeit für Entwicklungsprojekte mit JavaFX untersucht und bewertet.

Kay Grebenstein


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 kommerziellen Werkzeuge expecco, QF-Test, Squish, TestComplete und das Open-Source-Projekt TestFX auf ihre Tauglichkeit für Entwicklungsprojekte mit JavaFX untersucht und bewertet.

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 beachten werden. Es gibt viele Werkzeuge auf dem Markt, die unterschiedliche Ansätze wählen, wie sie sich in den Entwicklungs- und Testprozess integrieren oder welche Technologien sie unterstützen.

Es gibt entwicklungsnahe Werkzeuge, die sich direkt in die Entwicklungswerkzeuge integrieren lassen. Mit diesen Testwerkzeugen werden keine Unit-Tests umgesetzt, da durch die Ansteuerung der grafischen Oberfläche bereits eine zusätzliche Schnittstelle eingebunden wurde. Trotzdem erfolgt ihre Bedienung oder die Beschreibung der Testskripte über das Schreiben von Code. Demgegenüber stehen Testautomatisierungswerkzeuge für den Systemtest. Sie wenden sich in ihrer Bedienung an Anwender, die nicht unbedingt Erfahrung im Programmieren mitbringen müssen. Die Testskripte werden dort „Keyword-driven“ oder „Model-based“ abgebildet. Leider verwenden die Hersteller der Werkzeuge die Bezeichnungen nicht eindeutig und standardisiert. Bei „Keyword-driven“ erfolgt die Interaktion mit den zu testenden Oberflächen über Schlüsselworte, die die Controls ansteuern, z. B. „Klick ButtonXY“ oder „Überprüfe Texteigenschaft von LabelZ“. Bei „Model-based“ werden die Testskripte in einer abstrakten Form abgebildet, z. B. in einem Flussdiagramm oder per Behavior-driven Development (BDD).

Bei der technischen Umsetzung der Ansteuerung und Interaktion mit den zu testenden Oberflächen gibt es kaum Unterschiede. Bei älteren Automatisierungstools wurde die Aufnahme der Informationen dadurch erreicht, dass die Positionsdaten des GUI-Elements, wie z. B. eines Buttons, gespeichert werden und zur Ausführungszeit ein entsprechendes Event abgesetzt wird. Anschließend erstellt die Software einen Screenshot und vergleicht ihn mit einem zuvor erstellten, um die Testergebnisse zu verifizieren. Dieses Vorgehen ist für Probleme bei Änderungen der Oberfläche anfällig. Bereits beim Ändern der Farbe der Controls würden alle Testfälle fehlschlagen. Zusätzlich setzt ...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang