QF-Test Version 4.1

Video Die neuen Features per Video: 'QF-Test Features 4.1'.

Version 4.1.6 - 27. Oktober 2017

Neue Features:

  • Web Das eingebettete Selenium WebDriver Framework wurde auf Version 3.6.0 aktualisiert, ChromeDriver auf Version 2.33 (unterstützt Chrome bis Version 62) und GeckoDriver auf Version 0.19, welche auch Firefox Versionen 55-57 unterstützt.
  • Web Für Window und Panel Knoten der unterstützten AJAX Toolkits gibt es nun eigene Checks für deren Titel.

Beseitigte Bugs:

  • Es wurde ein Workaround für einen Fehler im Linux JRE 8_152 implementiert, durch den QF-Test beim Start hängen bleiben konnte.
  • Swing Ein Swing-basiertes SUT, welches über die Prozedur qfs.daemon.startRemoteSUT auf einem anderen Rechner gestartet wird, verbindet sich nun auch dann korrekt mit QF-Test, wenn die Option Über QF-Test Agent verbinden im Daemon deaktiviert ist.
  • JavaFX Es wird nun die Interaktion mit der JavaFX HTMLEditor Komponente unterstützt, inklusive Checks für deren rohen HTML-Code und den dargestellten Text.
  • Web Bei der Aufnahme von HTTP-Requests wurden einige Sonderzeichen nicht mit der korrekten Kodierung gespeichert.
  • SWT Die Behandlung von Frames in einem in SWT eingebetteten Browser funktioniert nun wieder.
Version 4.1.5 - 9. August 2017

Neue Features:

  • Der eingebettete ChromeDriver wurde auf Version 2.33 aktualisiert (unterstützt Chrome bis Version 62) und GeckoDriver auf Version 0.19, welche auch Firefox Version 55 und höher unterstützt.

Beseitigte Bugs:

  • Eine Race Condition in der Demo-Testsuite für Lasttests wurde beseitigt.
  • Das Fenster zur Code-Vervollständigung wurde versehentlich auch in Protokollen angezeigt.
  • Die Prozedur qfs.utils.files.readExcelFile in der qfs.qft Standardbibliothek behandelt Excel-Dateien mit leeren Zeilen nun korrekt.
  • Ein von einer Resolver-Methode zurückgelieferter Groovy GString wird zur Weiterverarbeitung nun korrekt in einen Java String konvertiert.
  • Eine Regression in der Performance der Komponenten-Erkennung basierend auf qfs:label wurde korrigiert und die Performance für Swing Tests allgemein verbessert.
  • Bei der Ausführung von manuellen Tests über die Suite ManualTestRunner.qft bleiben Größe und Position der ManualStepDialog Fenster nun erhalten.
  • JavaFX Ein modaler JavaFX Dialog, der beim Abspielen eines WINDOW_CLOSING Event geöffnet wird, konnte zu einer DeadlockTimeoutException führen.
  • JavaFX Der editable Check fehlte für JavaFX ComboBoxen.
  • JavaFX Die Unterstützung für JavaFX SplitMenuButtons wurde verbessert, so dass Klicks auf den Hauptteil des Buttons und den kleinen Pfeil bei der Aufnahme sauber unterschieden werden.
  • Web Das Erzeugen vieler JxBrowser Instanzen konnte zu einem Memory Leak führen.
  • Web Zweimaliges Warten auf das Laden der gleichen Webseite schlug nicht wie erwartet fehl, wenn die Seite zwischendurch nicht aktualisiert wurde.
  • Web Die Wiedergabe eines Auswahl Events für eine Liste im Firefox mit dem QF-Driver-Verbindungsmodus löst nun nur dann einen Change Event aus, wenn sich die Selektion in der Liste wirklich ändert.
Version 4.1.4 - 1. Juni 2017

Neue Features:

  • SWT Es wird nun Eclipse/SWT 4.7 "Oxygen" unterstützt.
  • Web Das eingebettete Selenium WebDriver Framework wurde auf Version 3.4.0 aktualisiert, ChromeDriver auf Version 2.29 (unterstützt Chrome bis Version 58) und GeckoDriver auf Version 0.16.1, welche auch Firefox Version 53 und höher unterstützt.
  • Web Die Unterstützung für das AJAX Toolkit Qooxdoo wurde auf den aktuellen Stand des Konzepts für generische Klassen gebracht.
  • Bei Fortsetzung der Testausführung nach einer Unterbrechung wird nun automatisch von der Anzeige der Variablen auf das Terminal umgeschaltet.
  • Die Reiter in der Projektansicht haben nun ein Kontextmenü und können durch einen Klick mit der mittleren Maustaste geschlossen werden.
  • Web Das Handbuch-Kapitel über die Anpassung des CustomWebResolver für ein AJAX Toolkit wurde auf den aktuellen Entwicklungsstand gebracht (Abschnitt 49.1).
  • Die Prozedur qfs.autowin.acrobat.saveAsText behandelt nun automatisch Warnungen bzgl. des geschützten Modus durch einen Klick auf "Alle Funktionen aktivieren".
  • Mit Hilfe der neuen Methode resolvers.addSpecificExtraFeatureMatcher zum Registrieren eines ExtraFeatureMatcher über das resolvers Modul kann der Name des Features bereits beim Registrieren angegeben werden.

Beseitigte Bugs:

  • Eine mögliche NumberFormatException - eingeschleust in QF-Test 4.1.3 - bei Ausführung im Batchmodus mit -verbose [<level>] wurde beseitigt.
  • Wurde über den erweiterten Suchen/Ersetzen Dialog der reguläre Ausdruck .* durch einen leeren String ersetzt, konnte dies zu einer Exception führen, oder zum Löschen von Tabelleneinträgen ohne vorherige Rückfrage.
  • Die Importskripte für TestLink konnten über Unicode-Zeichen in Testfall-Namen von TestLink stolpern.
  • Wurde Text mit Anführungsstrichen aus der Zwischenablage in Variablen oder andere Tabellen eingefügt, konnten die Anführungsstriche verloren gehen.
  • Bei Ermittlung des weiteren Merkmals qfs:label konnte bei ComboBox, Spinner oder Slider Komponenten fälschlicherweise der Tooltip einem nahestehenden Label vorgezogen werden.
  • Der @rerun Doctag wurde nicht korrekt ermittelt, wenn noch andere Zeilen im Kommentar eines Knotens enthalten waren.
  • Das Kommandozeilenargument -plugindir <Verzeichnis> wurde im Batchmodus ignoriert.
  • Bei Auswahl einer Komponente über den Dialog konnte eine explizite Referenz erstellt werden, obwohl die Komponente in einer inkludierten Testsuite enthalten war.
  • Explizite Referenzen auf Komponenten innerhalb der lokalen Testsuite wurden bei der Suche nach ungenutzten Komponenten nicht berücksichtigt.
  • Die Analyse von Referenzen funktionierte bei relativen Testaufrufen nicht korrekt.
  • Dauer und Echtzeit werden nun beim Zusammenführen von Protokollen korrekt aktualisiert.
  • Falls die Jython Version 2.5 installiert ist, wird der Jython Package Cache nun wieder automatisch aktiviert, wie es in QF-Test 4.0 der Fall war.
  • War die Option Intelligentes Scrollen in Bäumen deaktiviert, wurde der selektierte Knoten im Baum teilweise gar nicht mehr sichtbar gescrollt, z.B. nach einer Suche oder beim Betreten des Debuggers.
  • Web In speziellen Fällen wurden eigene Zuweisungen für Klassen in AJAX Resolvern nicht ausgewertet.
  • Web Die Bibliotheken für hardwaregestützte Grafik im eingebetteten Chrome Browser wurden wieder entfernt, da sie beim Öffnen eines Popup-Fensters zu einem Crash führen konnten.
  • Web Der Attribut-Cache im eingebetteten Chrome Browser funktionierte in QF-Test 4.1.3 für nicht-Standard Attribute nicht korrekt, was in einzelnen Fällen zu Problemen bei der Wiedererkennung führen konnte.
  • Web Viele Debug-Ausgaben von GeckoDriver und Mozilla Marionette werden nun aus dem gemeinsamen Terminal gefiltert.
  • In einzelnen Fällen konnte durch das Löschen des Browser-Caches der Start von Edge minutenlang verzögert werden.
  • JavaFX Der Eintrag zur Anzeige der vorhandenen Methoden fehlte im Menü für die Komponenten-Aufnahme bei JavaFX.
Version 4.1.3 - 29. März 2017

Wichtige Hinweise:

  • Selenium WebDriver für Firefox unterstützt jeweils nur die letzten beiden Firefox Versionen sowie die aktuelle ESR Release. Zum Zeitpunkt dieser QF-Test Release sind das Firefox 51, 52 und 52ESR. Wir tun unser Bestes, um darüber hinaus zu gehen und unterstützen immer noch Firefox 38ESR, 45 und höher, aber ältere Firefox Versionen laufen einfach nicht so stabil wie aktuelle. Es gab einen großen Sprung für Selenium WebDriver zwischen Firefox 47 und 48, so dass WebDriver basierte Tests ab Firefox 48 wesentlich schneller laufen. Für eine längerfristige Unterstützung empfehlen wir aktuell Firefox 52ESR.

Neue Features:

  • Web Ein Schwerpunkt dieser Release ist die Performance, vor allem beim Testen von Web-Anwendungen. Sie wurde für den WebDriver Modus und den JxBrowser drastisch verbessert und auch signifikant für das Testen von Web-Anwendungen allgemein. Einige der erzielbaren Effekte fallen allerdings, abhängig von der Implementierung der jeweiligen Web-Anwendung, unterschiedlich stark aus.
  • Web Dank der verbesserten Performance ist die Aufnahme im WebDriver Modus nun stabil und sollte die gleichen Ergebnisse liefern wie die Aufnahme im QF-Driver Modus.
  • Die Aufnahme und Wiedergabe von Doppelklicks mit der Maus ist nun intuitiver und konsistent für alle GUI Engines. Bisher wurde ein 'Mausevent' Knoten mit dem Event-Typ 'Mausklick' und dem Wert 2 für 'Anzahl Klicks' als 'Doppelklick' dargestellt, obwohl es lediglich der Zweite der beiden Events war, die zur Simulation eines Doppelklicks benötigt wurden. Solche Knoten werden nun als 'Folgeklick' bezeichnet und es gibt den neuen Event-Typ 'Doppelklick', der korrekt alle benötigten Einzelevents simuliert, um einen kompletten Doppelklick mit einem einzigen Knoten durchzuführen.
  • Testsuiten können nun durch einen Klick mit der mittleren Maustaste auf ihren Tab geschlossen werden.
  • Die Prozedur qfs.database.executeSelectStatement in der QF-Test Standardbibliothek qfs.qft wurde im Bezug auf das Setzen einer Property-Gruppe für das Ergebnis verbessert. Die Gruppe wird nun zunächst gelöscht, bevor das aktuelle Ergebnis eingetragen und die Zahl der Ergebniszeilen darin als Property 'count' gesetzt wird.
  • Es können nun Fallback-Werte als Platzhalter im der Template-Datei für die Aufnahme von Prozeduren definiert werden.
  • QF-Test zeigt nun den kompletten Pfad der aktuellen Testsuite sowie die QF-Test Version in der Titelzeile des Hauptfensters an. Über die Option Vollständigen Dateipfad und QF-Test Version in der Titelzeile anzeigen lässt sich dies wieder auf den Dateinamen reduzieren.
  • Web WebDriver wurde für die aktuellen Chrome und Firefox Versionen aktualisiert und QF-Test ist nun kompatibel zur mit dem Windows 10 "Creators Update" kommenden Version des Microsoft Edge Browsers.

Beseitige Bugs:

  • Bisher wurden Resolver stets global registriert und galten für alle GUI-Engines eines SUT-Clients, was bei hybriden Anwendungen zu ungewollten Seiteneffekten führen konnte. Durch Setzen des 'GUI-Engine' Attributs im 'SUT-Skript' Knoten, der einen Resolver registriert, kann der Resolver nun auf eine bestimmte Engine eingeschränkt werden.
  • QF-Test umgeht nun ein Problem in Jython 2.7, das den Start von QF-Test in dem Fall verhinderte, dass das Home-Verzeichnis des Anwenders internationale Zeichen enthält.
  • Groovy wurde zu Version 2.4.8 aktualisiert, in der ein Leck im PermGen Speicher von Java 7 beseitigt wurde.
  • Wurde die Aufnahme zu schnell beendet, konnten die zuletzt aufgenommenen Events, Checks, Komponenten oder Prozeduren verloren gehen. Die Synchronisation mit dem SUT wurde nun verbessert, so dass dies nur noch bei sehr großer Last auftreten sollte.
  • Beim Umschalten zwischen Projekten ging der Status der ausgeklappten Knoten im Baum der Projektansicht verloren.
  • Die Zusammenfassung der Ergebnisse bei der Batchausführung mit -verbose [<level>] stimmte nicht mit den Informationen in der Statuszeile und im Report überein.
  • Web JxBrowser Komponenten, deren Inhalt vor Ihrer Anzeige geladen wurde, werden jetzt korrekt behandelt.
  • Web'Texteingabe' Knoten funktionieren nun auch für eingebettete Browser (FX WebView, JxBrowser und in SWT eingebettete Browser), wenn 'Einzelne Events wiedergeben' deaktiviert ist. Die Wiedergabe von einzelnen Events funktioniert weitgehend, die Events müssen aber hart simuliert werden, was aktuell nur unter Windows möglich ist.
  • Web Im WebDriver Modus wurden in einigen Fällen TEXT Knoten einer Web-Anwendung als deaktiviert angesehen.
  • Web Nach Änderungen an einer Seite in einer Web-Anwendung wies die WebDriver-API einem WebDriver Element nicht mehr zuverlässig die korrekte QF-Test Komponente zu.
  • Web Beim Schließen eines zusätzlichen Fensters im Edge Browser konnte versehentlich der ganze Browser-Prozess beendet werden. Neben diesem wurden einige weitere Probleme beim Schließen verschiedener Browser im WebDriver Modus behoben.
  • Web Es wurden verschiedene Probleme beim Embedded WebView Browser in JavaFX behoben wie Mutation Behandlung, Refresh und Goto Befehle sowie Rückgabewerte von evalJS.
  • Web Die Einstellungen für Firefox werden jetzt nur dann persistent im Test-Profil gespeichert, wenn die System-Property "qftest.web.mozilla.save_profile" beim Start des Browsers auf true gesetzt wird.
  • Web Für den eingebetteten Chrome Browser im QF-Driver Modus werden nun zusätzliche Bibliotheken ausgeliefert, die für hardwaregestützte Grafik benötigt werden.
  • SWT Unter Linux konnten Tests für Eclipse mit eingebetteten JavaFX Komponenten zu einem harten Deadlock auf Gtk Ebene führen. Dieses Problem wurde für Eclipse/SWT-Versionen 4.3 und höher beseitigt.
Version 4.1.2 - 13. Januar 2017

Neue Features:

  • SWT Die Unterstützung für Eclipse/SWT 4.6 "Neon" wurde für Eclipse Version 4.6 SR2 aktualisiert.

    Hinweis Der Mechanismus zur automatischen Skalierung bei Monitoren mit hohen DPI-Werten wird von QF-Test weiterhin per Default deaktiviert, wenn das SWT Plugin durch QF-Test instrumentiert wird. Die System Property zur Reaktivierung wurde in SWT-Version 4.6 SR2 in swt.autoScale umbenannt.

  • Resolver sind eine Art Wundermittel für alle Arten von Problemen bei der Komponentenerkennung. Um das Erstellen von Resolvern zu erleichtern, wurde mit QF-Test 4.1 das resolvers Modul aktualisiert. Mit der nun neu geschriebenen Resolver Dokumentation in Abschnitt 52.1.7 sind diese leichter zugänglich als je zuvor.
  • Die Namen der registrierten Resolver können nun durch den Aufruf der Methode resolvers.listNames() ermittelt werden.
  • Bei der automatischen Wiederausführung von Knoten wird der Start eines Versuchs nun als Meldung und als Anmerkung protokolliert. Die Doctags zur Wiederausführung wurden erweitert, so dass nun eine spezifische Exception gefangen und Meldungen im Protokoll unterdrückt werden können. Details hierzu finden Sie in Abschnitt 23.3.
  • Die 'QF-Test ID' von 'Testfall' oder 'Testfallsatz' Knoten kann nun zur Testausführungszeit mittels ${qftest:testcase.id} bzw. ${qftest:testset.id} ermittelt werden.
  • Es können nun 'Check Elemente' in 'Check selektierbare Elemente' transformiert werden und umgekehrt.
  • Falls der Wert für das Kommandozeilenargument -usercfg <Datei> oder -systemcfg <Datei> auf ein Verzeichnis zeigt, wird die Konfigurationsdatei nun aus diesem Verzeichnis gelesen bzw. dort erstellt.
  • Beim Bearbeiten der Optionen zeigt QF-Test nun eine Warnung an, falls eine der Konfigurationsdateien schreibgeschützt ist.

Beseitige Bugs:

  • QF-Test protokolliert nun eine Warnung, falls eine mit rc.getComponent in einem 'SUT-Skript' Knoten ermittelte Komponente nicht zu der GUI-Engine gehört, in welcher das Skript ausgeführt wurde. Ab dem Medium Upgrade QF-Test 4.2 wird hier eine Exception geworfen. Der Versuch, eine Komponente der falschen GUI-Engine an rc.overrideElement zu übergeben, wird bereits jetzt mit einer Exception unterbunden.
  • Wurden Details eines Knotens bearbeitet und die Testsuite geschlossen, ohne die Änderungen zu bestätigen, wurden diese verworfen.
  • Falls ein Resolver mit einer Exception scheitert, werden nun wie in QF-Test 4.0 weitere registrierte Resolver trotzdem ausgeführt.
  • QF-Test entfernt nun temporäre Dateien, die von WebDriver Implementierungen erstellt werden.
  • JavaFX Zellen in speziellen Table Komponenten mit ungewöhnlicher Sortierung werden jetzt korrekt adressiert.
  • SWT QF-Test konnte bei Eclipse/SWT-Anwendungen mit mehreren Display Instanzen ein Deadlock auslösen.
  • Web Beim Auslesen der Geometrie eines Unterelements in einer Web-Anwendung wurden fälschlicherweise die Werte der übergeordneten Komponente zurückgeliefert.
  • Web Bei Web-Anwendungen werden Leerzeichen vor und nach Namen, die von einem NameResolver geliefert werden, nun automatisch entfernt.
  • Web Das automatische Scrollen von Unterelementen für Abbild-Checks funktionierte nicht mehr korrekt.
Version 4.1.1 - 23. November 2016

Neue Features:

  • Die Projektansicht verfügt nun über einen Filter oben am Baum, der sich auf die Namen von Testsuiten bezieht und die Hierarchie entsprechend einschränkt, was sehr hilfreich bei der Suche nach Testsuiten in großen Projekten ist.
  • Unter macOS sollten nun alle Tastaturkürzel zum Systemstandard passen und Mac freundliche Modifier-Tasten verwenden.
  • Web Selenium WebDriver wurde zu Version 3.0.1 aktualisiert.
  • Die Dokumentation und Beispiele für schlüsselwort-getriebenes Testen wurden um ein neues Beispiel für Behavior-Driven Testing (BDT) ergänzt (siehe Abschnitt 29.4).
  • Die Parameter für das @rerun Doctag wurden um die Option newerrorlevel=keep und den neuen Parameter keepfirst ergänzt. Weitere Information finden Sie in Abschnitt 23.3.2.
  • Das Attribut 'Maximale Ausführungszeit' ist nun auch für 'Testschritt' Knoten verfügbar.

Beseitige Bugs:

  • QF-Test startete nicht, wenn die Java-Version für QF-Test noch durch eine ältere QF-Test Version (vor 4.1) instrumentiert war. Auch wenn die Instrumentierung des JRE schon seit Jahren überflüssig ist, kann dieser Fall noch auftreten. Er wird nun erkannt und die Deinstrumentierung angeboten.
  • Der Test auf BusyPanes fehlte, wenn ein Check über den in QF-Test 4.1.0 eingeführten Generic Retry Mechanismus ausgeführt wurde.
  • Bei der interaktiven Auswahl einer Zielkomponente für einen Event-Knoten war das bestehende Ziel nicht vorausgewählt.
  • Fehlgeschlagene Checks aus einer Fehlerliste heraus zu aktualisieren führte zu einer unerwarteten Exception, wenn das zugehörige Protokoll bereits geschlossen war.
  • Bei Verwendung der API databinder.bindList für datengetriebenes Testen ignoriert QF-Test nun leere Listen anstatt eine einzelne Iteration ohne Daten durchzuführen.
  • Beim Import von Testergebnissen in TestLink werden übersprungene Testfälle nun korrekt als übersprungen angezeigt.
  • Die bisherige WebDriver API wurde in WebDriverConnection (vgl. Abschnitt 52.12) umbenannt, um Verwechslungen mit dem WebDriver Objekt von Selenium zu vermeiden.
  • Die Fehlermeldung nach dem Ablauf eines über das Kommandozeilenargument -timeout <Millisekunden> angegebenen Wertes bezieht sich nun korrekt auf das -timeout <Millisekunden> Argument des Batchlaufs statt auf den Wurzelknoten der Testsuite.
  • In großen Projekten treten beim Bearbeiten von Komponenten IDs in Tabellen nun keine Verzögerungen mehr auf, während QF-Test nach der hervorzuhebenden Komponente sucht.
  • Wurde bei der Suche in einem Projekt ein ungültiger regulärer Ausdruck verwendet, wurden statt einer einzigen Fehlermeldung viele angezeigt.
  • Kurze Timeouts für visible false Checks auf Komponenten wurden nicht eingehalten.
  • Swing Ist die Option AWT EventQueue instrumentieren aktiv, stellt QF-Test nun eine Verbindung mit der awt:security Engine her, wenn von Java WebStart ein Authentifizierungsdialog angezeigt wird. In einem solchen Fall muss das Attribut 'GUI-Engine' des 'Warten auf Client' Knotens auf awt:security gesetzt werden.
  • Web Die Auflösung von Klassen für AJAX Toolkits funktionierte in einigen speziellen Fällen nicht richtig.
  • Web Für TextField Komponenten im PrimeFaces Toolkit funktionierte der editable Check nicht.
  • Web Im WebDriver Modus war bei der Aufnahme eines Klicks im Browser, der einen Alert Dialog auslöst, die Reihenfolge der aufgenommenen Events nicht immer korrekt.
  • Web Die automatische Erkennung für AJAX Toolkit Resolver wurde verbessert. Sie gibt nun konsistente Meldungen in das Terminal aus und behandelt den Fall, dass kein Toolkit erkannt wird, korrekt.
Highlights

Die folgenden wichtigen neuen Features wurden für Version 4.1 von QF-Test implementiert:

BeschreibungWeitere Info
Zusätzliche Browser via Selenium WebDriver Darunter Firefox 44 und höher, Edge und Safari sowie Chrome unter Linux und macOS (Testen von Webseiten), Selenium Skripte können über QF-Test ausgeführt werden, auch beide Ansätze gemischt (Abschnitt 52.12). Performanz und Funktionsumfang noch nicht auf dem Stand von QF-Driver, erfordert Java 8
Eigene QF-Test App für macOS Unterstützung für Swing, JavaFX und Web (im WebDriver Modus für Safari, Chrome und Firefox). Aktuell keine Unterstützung für SWT.
Eclipse Plugin Spezielle Run Configurations kombinieren den Start des SUT, den Start von QF-Test und das Ausführen initialer Testschritte direkt aus Eclipse heraus (Abschnitt 27.1).
Jython Update auf Version 2.7,
Groovy auf Version 2.4.7
Siehe Abschnitt B.9.7.8 zu Inkompatibilitäten und Rückgriff auf Jython 2.5 / Groovy 2.1.
Lizenzserver Mechanismus Lizenzen können global verteilt genutzt werden statt nur im lokalen Netz. Bei Interesse kontaktieren Sie bitte QFS via sales@qfs.de
Unterstützung für 64-Bit-Browser auf allen Systemen Beim Verbindungsmodus QF-Driver müssen Browser und JRE von der gleichen Architektur sein (Kapitel 14)
Unterstützung für das AJAX Framework Kendo UI
Verbesserte Synchronisation für Webtests QF-Test verfolgt HTTP-Requests im Browser um zu verhindern, dass Events ausgelöst werden während AJAX Anfrage noch offen sind (Optionen Mit HTTP-Requests synchronisieren, Timeout für Synchronisierung mit HTTP-Requests (ms) und Erweitertes HTTP-Request-Timeout für neue Dokumente (ms)). Nur QF-Driver Modus.
Web Komponentenerkennung via XPath und CSS-Selektoren Adressierung mit XPath und/oder CSS-Selektoren
Alternativer Verbindungsmechanismus für Swing Löst viele Problemfälle mit Java WebStart, Applets oder eigenen EventQueues (AWT EventQueue instrumentieren)
Beschränkung der Ausführungszeit Maximale Ausführungszeit für einzelne Sequenzen, Testfälle, Testfallsätze oder ganze Batchläufe (Attribut 'Maximale Ausführungszeit', Kommandozeilenargument -timeout <Millisekunden>)
Wiederausführung: Fehlgeschlagene Sequenzen oder Testfälle automatisch oder manuell aus dem Protokoll heraus erneut anstoßen Erneute Ausführung von Knoten (Rerun)
Zusammenführen von Protokollen Protokolle zusammenführen
Generic Retry Intelligentere Wiedergabe von Events, die Timing-Probleme besser löst, speziell wenn Komponenten gerade dann verschwinden oder durch andere ersetzt werden, wenn QF-Test versucht darauf zuzugreifen.
Finden von Prozeduren oder Komponenten mit variablen Namen/IDs Variablenexpansion ist nun auch in einem statischen Kontext möglich, so dass Sprünge von einem Prozeduraufruf wie "checksFor${qftest:testcase.name}" zur korrekten Prozedur funktionieren. Zu diesem Zweck puffert QF-Test sogar die Werte der Variablen der letzten Testausführung.
Updates für das QF-Test Handbuch mit neuen Kapiteln zu schlüsselwortgetriebenem Testen und Lasttests, einer kompletten Überarbeitung wichtiger Themen und umfassender Dokumentation zu QF-Test's pseudo DOM API und zur Erstellung von Resolvern aller Art. Aufbau und Organisation einer Testsuite, 'Abhängigkeit' Knoten, Schlüsselwortgetriebenes bzw. Keyword-Driven Testing mit QF-Test, Durchführung von Lasttests mit QF-Test, Pseudo DOM API für Web-Anwendungen, Das NameResolver Interface
Tabelle B.4:  Highlights in QF-Test Version 4.1
Änderungen mit möglichen Auswirkungen auf die Testausführung
Jython 2.7

Das Update auf Jython 2.7 war durch Konflikte mit nativen Bibliotheken im WebDriver Modul unvermeidlich. Zudem war Jython 2.5 schon sehr veraltet und die Python Module von Jython 2.7 sind deutlich moderner und ausgereifter. Falls daraus zu große Probleme resultieren, können Sie zu Jython 2.5 zurückkehren, indem Sie die Datei https://archive.qfs.de/pub/qftest/jython-2.5.1.jar herunterladen und damit die Datei lib/jython.jar in QF-Test's Installationsverzeichnis überschreiben.

  • Java 7 oder höher benötigt.
  • Keine Unterstützung mehr für Wildcard Import (z.B. from java.util import *), alle importierten Klassen müssen explizit aufgeführt werden.
  • Weitere Unterschiede zwischen Jython 2.5 und 2.7 finden Sie in den Jython Release Notes der Jython Versionen 2.6 und 2.7. Sie finden die Release Notes zu Jython 2.6 auf https://docs.python.org/3.0/whatsnew/2.6.html und die Release Notes zu Jython 2.7 auf https://docs.python.org/3.2/whatsnew/2.7.html.
Groovy 2.4

Diese Update war zwar nicht zwingend erforderlich, aber es ist besser, nicht zu weit hinter die offizielle Groovy Release zurückzufallen. Groovy 2.4 funktioniert zwar noch weitgehend mit Java 6, so dass dass ein echtes Problem nur zu erwarten ist, wenn Sie noch alte Anwendungen mit Java 5 testen müssen. In diesem Fall können Sie die Datei https://archive.qfs.de/pub/qftest/groovy-all-2.1.0.jar herunterladen und damit die Datei lib/groovy-all.jar in QF-Test's Installationsverzeichnis überschreiben.

  • Java 6 oder höher benötigt (Java 7 oder höher empfohlen).
Neuer Verbindungsmechanismus für Swing
Dieser Mechanismus sollte besser mit besonders kniffligen Swing SUTs klar kommen, die ihre eigene EventQueue implementieren, speziell in Kombination mit WebStart oder Applets. Er ist standardmäßig aktiv und kann bei Problemen mit dem SUT über die Option AWT EventQueue instrumentieren deaktiviert werden.
Chrome unterstützt keine Java Applets mehr
Google hat die Unterstützung für Java Applets komplett aus Chrome entfernt. Dies gilt auch für den von QF-Test im QF-Driver Modus eingebetteten Chrome Browser, der auf CEF Version 45 aktualisiert wurde.
Nicht mehr unterstützte Software

Hinweis Eine detaillierte Aufstellung der Systemvoraussetzungen und der unterstützten Technologieversionen finden Sie in Abschnitt 1.1.

QFS bemüht sich um Rückwärtskompatibilität auch mit sehr alter Software. QF-Test läuft nach wie vor z.B. unter Windows XP und - nach Downgrade von Jython und Groovy - mit einem auf Java 5 oder 6 basierenden SUT, aber wir können für Systeme, die von deren Herstellern nicht mehr unterstützt werden, keinen umfassenden Support bieten.

Bibliotheken für die unten aufgeführten Firefox und Eclipse/SWT-Versionen sind nicht mehr Teil der Standard-Installation von QF-Test. Sie werden zum größten Teil noch weiter gepflegt, aber nur eingeschränkt getestet. Für Eclipse/SWT 3.5 - 3.8 können Sie https://archive.qfs.de/pub/qftest/swt_legacy.zip herunterladen und in das swt Verzeichnis Ihrer QF-Test Installation entpacken. Für die Unterstützung älterer Browser wenden Sie sich bitte via support@qfs.de an QFS.

Offiziell nicht mehr unterstützt werden Java 5, Java 6, Internet Explorer 10 und älter, Firefox 37 und älter sowie Eclipse/SWT 3.8 und älter.

Version 4.1.0 - 6. Oktober 2016

Neue Features:

  • Die Möglichkeiten zur Wiederausführung von Tests sind nun offiziell verfügbar und in Abschnitt 23.3 dokumentiert.
  • Das Jenkins Plugin für QF-Test wurde für Jenkins Version 2.1 aktualisiert.
  • Unter macOS verwendet QF-Test nun die Standard-Tastenkürzel für dieses System. Anwender, die Windows-Kürzel bevorzugen (oder sich ganz einfach an die nicht-Mac Kürzel von QF-Test gewöhnt haben), können über das Kommandozeilenargument -keybindings=classic darauf zurückschalten.
  • Die QF-Test macOS App beinhaltet nun ein eigenes JRE, die manuelle Installation eines JRE ist damit nicht länger nötig.
  • Web Die Unterstützung für das AJAX Toolkit Vaadin wurde aktualisiert, so dass der Vaadin Resolver nun wie in Abschnitt 49.1 beschrieben individuell erweitert werden kann.
  • Beim Debuggen von Tests zeigt QF-Test nun eine Warnung an, wenn 'Ausführung hier fortsetzen' für einen Knoten gewählt wird, der nicht zum aktuellen Ausführungs-Stapel gehört, da durch diese Aktion die aktuellen Variablendefinitionen verloren gehen.
  • Auswahl-Dialoge verfügen nun über einen Suchfilter.
  • Über das Popupmenü für eine QF-Test ID in einer Variablen-Tabelle oder einem rc.getComponent Ausdruck in einem SUT-Skript kann die Zielkomponente im SUT nun direkt hervorgehoben werden.

Beseitige Bugs:

  • Im Dialog für die Java Konfiguration von QF-Test (qfconfig) wurde beim Start immer die Standard Java Installation angezeigt.
  • Die kleinen Pfeile zur Anzeige des Ausführungszustands von Baumknoten wurden nicht immer korrekt dargestellt.
  • Fehler durch Überschreiten der maximalen Ausführungszeit wurden im Report nicht korrekt dargestellt.
  • Web Im WebDriver Modus vermeidet QF-Test nun den Start von zwei Chrome Instanzen mit demselben Verzeichnis für das Nutzerprofil.
  • Web Jars im Plugin Verzeichnis von QF-Test konnten den Start eines WebDriver basierten SUT verhindern.
  • Web Alert Dialoge werden nun in allen WebDriver basierten Browsern korrekt behandelt. en/
Version 4.1.0-rc2 - 2. September 2016

Neue Features:

  • Groovy wurde auf Version 2.4.7 aktualisiert. Ein Rückgriff auf Groovy 2.1.0 ist möglich und in Abschnitt B.9.7.8 beschrieben.
  • Web Die Anbindung von WebDriver wurde deutlich verbessert und ist nun um einiges performanter. Firefox 48 funktioniert nun dank des Selenium Updates für Firefox Marionette ebenfalls.
  • Web Für Web unterstützt QF-Test nun die Komponentenerkennung mittels XPath und CSS-Selektoren. Näheres hierzu in Adressierung mit XPath und/oder CSS-Selektoren.
  • Die Prozedur qfs.utils.xml.compareXMLFiles wurde um bessere Filterung und die Möglichkeit ergänzt, fehlende Tags oder Attribute zu ignorieren, wenn sie im "noCheck" Parameter angebeben sind.
  • Web Unter Windows können 'Texteingabe' Knoten nun im JxBrowser wiedergegeben werden.
  • Die Prozedur qfs.utils.email.sendEmail in der Standardbibliothek qfs.qft unterstützt nun auch Dateianhänge.
  • Jython wurde so angepasst, dass NotImplementedErrors abgefangen werden, die durch nur teilweises Implementieren von Interfaces entstehen, was mit Jython 2.5 kein Problem war. Dieses Verhalten kann durch Setzen der System Property qftest.workarounds.abstractMethodsHandling auf einen der Werte "ignore", "warning", "error" oder "exception" modifiziert werden.

Beseitige Bugs:

  • JavaFX Nicht gefangene Exceptions auf dem JavaFX Application Thread wurden von QF-Test zwar korrekt erkannt und gemeldet, in manchen Fällen aber nicht korrekt weitergereicht, was Fehler im SUT verstecken oder zumindest das Testen der SUT-eigenen Behandlung von solchen Exceptions verhindern konnte.
  • Gelegentlich konnte ein Aufruf von DaemonLocator.locateInstance(long timeout) einen Daemon zwar finden, ihn aber bis zum Ablauf des Timeouts wieder "vergessen" und so kein Ergebnis liefern.
Version 4.1.0-rc1 - 29. Juli 2016

Änderungen im Vergleich zu QF-Test Version 4.0.11:

Neue Features:

  • Web Durch den neuen Verbindungsmodus via Selenium WebDriver werden viele weitere Browser unterstützt, darunter Firefox 44 und höher, Edge und Safari, dazu Chrome nun auch unter Linux und macOS.
  • Selenium Skripte können über QF-Test ausgeführt werden. Auch das Mischen von QF-Test und Selenium basierten Tests ist möglich. In Abschnitt 52.12 finden Sie Informationen zum Zugriff auf die WebDriver API von 'SUT-Skript' Knoten aus.
  • QF-Test unterstützt nun offiziell Swing, JavaFX und Webtests unter macOS. Eine eigene Installationsdatei für macOS steht nun ebenfalls zur Verfügung.
  • Jython wurde auf Version 2.7.0 aktualisiert. QF-Test benötigt damit nun mindestens Java 7. Ein Rückgriff auf Jython 2.5.1 ist möglich und in Abschnitt B.9.7.8 beschrieben.
  • Mit Hilfe unseres neuen Lizenzserver-Mechanismus können Lizenzen nun auch global verteilt werden, nicht nur im lokalen Netz. Bei Interesse wenden Sie sich bitte an QFS via sales@qfs.de.
  • Web 64-Bit-Browser werden nun auf allen Systemen unterstützt.
  • Web Es wird nun das AJAX-Framework Kendo UI unterstützt.
  • Viele bestehende AJAX-Resolver wurden aktualisiert und generalisiert, so dass sie nun einfacher erweitert werden können. Weitere Information dazu in Besondere Unterstützung für verschiedene Web-Komponentenbibliotheken und Verbesserte Komponentenerkennung mittels CustomWebResolver.
  • Web Im Verbindungsmodus QF-Driver kann QF-Test Webtests auf Basis ausstehender HTTP-Requests synchronisieren. Das genaue Verhalten kann über die Optionen Mit HTTP-Requests synchronisieren, Timeout für Synchronisierung mit HTTP-Requests (ms) und Erweitertes HTTP-Request-Timeout für neue Dokumente (ms) festgelegt werden.
  • Swing Der neue Verbindungsmechanismus für Swing löst viele Problemfälle mit Java WebStart, Applets oder eigenen EventQueues. Er kann mittels der Option AWT EventQueue instrumentieren deaktiviert werden.
  • Die maximale Ausführungszeit für einzelne Sequenzen, Testfälle, Testfallsätze oder ganze Batchläufe kann über das Attribut 'Maximale Ausführungszeit' und das Kommandozeilenargument -timeout <Millisekunden> begrenzt werden.
  • Protokolle können nun zusammengeführt werden (Protokolle zusammenführen).
  • Die Event-Wiedergabe verwendet für alle Engines nun einen neuen Ansatz,den wir Generic Retry nennen. Er ermöglicht flexiblere Reaktionen bei Timing-Problemen, speziell wenn Komponenten gerade dann verschwinden oder durch andere ersetzt werden, wenn QF-Test versucht darauf zuzugreifen.
  • Variablenexpansion ist nun auch in einem statischen Kontext möglich, so dass Sprünge von einem Prozeduraufruf wie "checksFor${qftest:testcase.name}" zur korrekten Prozedur funktionieren. QF-Test puffert hierzu QF-Test die Werte der Variablen der letzten Testausführung, so dass dies sogar dynamisch gebundenen Werten klappt.
  • Die verschiedenen Daten Knoten wie 'Datenbank' oder 'Excel-Datei' können nun auch außerhalb eines Datentreibers ausgeführt werden, um die Werte direkt als Variablen zu binden statt über die Zeilen zu iterieren. In diesem Fall definiert das Attribut 'Name' des Knotens gleichzeitig die Property-Gruppe, in welche die Variablen gebunden werden.
  • Swing Die JxBrowser Unterstützung wurde für JxBrowser Version 6 aktualisiert.
  • Abhängig von der Aufteilung des Bildschirms kann es hilfreich sein, im Fenster von QF-Test mehr Platz für den Baum oder für das Terminal zur Verfügung zu haben. Der neue Menüeintrag »Ansicht«-»Terminal«-»Baum dem Terminal vorziehen« schaltet den Bereich links unten im Fenster zwischen beiden um.
  • Verbessertes Packen von Mausevents sollte zu klareren Aufnahmen mit weniger Streuevents führen. Für Sonderfälle, in denen es auf einzelne MOUSE_PRESSED oder MOUSE_RELEASED Events ankommt, kann über die Option Vereinfachte Aufnahme von 'Mausklick'-Events auf die alte Methode zurückgestellt werden.
  • Einige Kapitel im Handbuch wurden hinzugefügt (Schlüsselwortgetriebenes bzw. Keyword-Driven Testing mit QF-Test, Durchführung von Lasttests mit QF-Test) oder neu geschrieben (Aufbau und Organisation einer Testsuite, 'Abhängigkeit' Knoten und Pseudo DOM API für Web-Anwendungen.
  • Der eingebettete Skripteditor bietet nun die Tastaturkürzel [Umschalt-Hoch/Runter] zum verschieben einzelner oder mehrerer selektierter Zeilen sowie [Umschalt-Eingabe] zum Einfügen einer neuen Zeile nach dem Ende der aktuellen Zeile an.
  • In der Werkzeugleiste gibt es einen neuen Button zum Öffnen des letzten Protokolls.
  • Fehlgeschlagene boolean Checks haben nun eine aussagekräftigere Fehlermeldung, die den Checktyp beinhaltet.
  • Die DOMProcessor Erweiterungs-API kann nun auch zur Anpassung der Zusammenfassungs-Dokumente verwendet werden.
  • Skript APIs wurden in Vorbereitung für weitere unterstützte Skriptsprachen vereinheitlicht. Die Implementierung und Registrierung von Resolvern wurde vereinfacht und Module wie autowin und ssh sind nun auch für Groovy verfügbar.
  • Web Es gibt nun einen generischen String Check für Attribute von DOM-Knoten, die mit getAttribute ausgelesen werden können. Setzen Sie einfach den 'Name des Check-Typs' auf attribute:NAME wobei NAME der Name des zu prüfenden Attributs ist.
  • Durch Drücken von [Strg-C] im Projektbaum oder auf dem Wurzelknoten einer Testsuite wird nun der Pfad der Testsuite in die Zwischenablage kopiert.
  • Die Suche nach Referenzen funktioniert nun auch für 'Package' Knoten. Die Ergebnisliste umfasst dann Referenzen für alle in dieser Hierarchie enthaltenen 'Prozeduren'.
  • Beim Einfügen von Knoten in eine Testsuite ist QF-Test nun flexibler. Falls die aktuelle Position für den einzufügenden Knotentyp nicht geeignet, das korrekte Ziel aber implizit klar ist, wird einfach an der richtigen Stelle eingefügt.
  • Web Die mit QF-Test gelieferte Chrome Version für QF-Driver basierte Webtests wurde zu CEF Version 45 aktualisiert.
  • Die Prozeduren qfs.utils.getDate, qfs.utils.getTime und qfs.check.compareDates in der Standardbibliothek qfs.qft haben nun alle Parameter zur Angabe der landesspezifischen Formatierung.
  • Alle getRowCount Prozeduren für Swing, JavaFX und SWT Bäume wurden überarbeitet um die Zahl der sichtbaren Knoten zu liefern. Der neue Parameter "countOnlyVisibleNodes" schränkt dazu die Suche auf sichtbare Knoten unterhalb des angegebenen Knoten ein. Hinzugekommen sind außerdem die Prozeduren ...tree.getChildNodeCount mit ähnlicher Funktionalität sowie ...tree.check.checkChildNodeCount zum Prüfen der Zahl der Kindknoten eines Knotens.
  • Das Verzeichnis zum Austausch von Dateien mit einem externen Editor kann nun explizit über die Option Verzeichnis zur Übergabe temporärer Dateien an externen Editor angegeben werden.
  • Einige Tabellen in der Detailansicht von QF-Test wurden zur besseren Sichtbarkeit neu arrangiert. Zudem kann in allen Tabellen nun eine neue Zeile auch durch Doppelklick im freien Bereich der Tabelle hinzugefügt werden.

Beseitige Bugs:

  • JavaFX Änderungen der ID einer JavaFX Komponente wurden nicht korrekt erkannt.
  • JavaFX Das weitere Merkmal "imagehash" ist nun auch für JavaFX implementiert.
  • Die interne Verwaltung von Abbildern in Testsuiten und Protokollen benötigt nun wesentlich weniger Speicher.
  • Web Checks für den enabled-Status von DOM-Knoten berücksichtigt nun auch umgebende FIELDSET Knoten.
  • Web Expliziter Bezug von Label Elementen über deren "for" Attribut wird nun besser erkannt.
  • Wurde im Debugger "Ausführung hier fortsetzen" auf einer 'Prozedur' verwendet, die von einer anderen Suite aus aufgerufen wurde, konnte der Ausführungskontext durcheinander geraten.