QF-Test Version 4.2

Video Video zu den neuen Features in Version 4.2: 'QF-Test Features 4.2'.

Version 4.2.5 - 11. Juli 2018

Neue Features:

  • Web Das eingebettete Selenium WebDriver Framework wurde auf Version 3.13.0 aktualisiert und GeckoDriver auf Version 0.21.0, welche auch Firefox Version 61 unterstützt.

Beseitigte Bugs:

  • Wurden durch ein QF-Test Update neue Benutzer- oder Systemeinstellungen eingeführt, so wurden diese verworfen, wenn zwischendurch mit einer älteren QF-Test Version gearbeitet wurde. Ab QF-Test Version 4.2.5 bleiben solche Einstellungen immer erhalten.
  • Web Von Microsoft Edge in einer Hinweiszeile angezeigte Fehler werden nun automatisch geschlossen.
  • Wurde ein Oracle Datenbanktreiber in einer jar-Datei mit defektem Manifest in das Plugin-Verzeichnis von QF-Test kopiert, konnten keine Testsuiten mehr geladen werden.
  • Bei Aktivierung einer Lizenz im Demo-Modus von QF-Test wird der Menüeintrag »Datei«-»Speichern« nun sofort aktiv.
Version 4.2.4 - 14. Juni 2018

Neue Features:

  • Web Das eingebettete Selenium WebDriver Framework wurde auf Version 3.12.0 aktualisiert und ChromeDriver auf Version 2.40 (unterstützt Chrome bis Version 68). Firefox Version 60 wird ebenfalls unterstützt.
  • Web Auf Windows Insider Builds wird nun der neue Mechanismus zur Installation des Microsoft WebDrivers für Edge erkannt und unterstützt.

Beseitigte Bugs:

  • Die Optionen zur interaktiven Auswahl der GUI-Engine-Lizenzen waren auch im Fall einer Lizenz mit gemischten Engines deaktiviert.
  • Datentreiber für sehr große Excel-Dateien brauchen nun weniger Speicher.
  • Der Export eines Test-Projekts aus Testlink für QF-Test wird eine vorhandene node_order Definition nun korrekt behandelt.
  • Im Report wurden erwartete Fehler innerhalb von verschachtelten Testfällen als normale Fehler gezählt. Außerdem sind erwartete Fehler im Protokoll nun besser zu erkennen.
  • Der 'Server-HTTP-Request' Knoten unterstützt nun leere Werte für HTTP Header.
  • Das Beenden von Clients funktioniert nun auch auf Windows Embedded Systemen sauber.
  • Web Der Start von Chrome unter Linux funktionierte in QF-Test Version 4.2.3 nicht zuverlässig.
  • Web Der Versuch, beim Start von Microsoft Edge ein nicht existierendes Cache-Verzeichnis zu entfernen, konnte zu einer Exception führen.
Version 4.2.3 - 3. Mai 2018

Neue Features:

  • Web Das eingebettete Selenium WebDriver Framework wurde auf Version 3.11.0 aktualisiert und ChromeDriver auf Version 2.38 (unterstützt Chrome bis Version 66) und GeckoDriver auf Version 0.20.1, welche auch Firefox Version 59 unterstützt. Die 32 Bit Linux Version von ChromeDriver wurde aus QF-Test entfernt, da diese nicht mehr von den Chrome Entwicklern unterstützt wird. Bei Bedarf kann die letzte verfügbare Version (2.33) vom ChromeDriver Archiv heruntergeladen werden.
  • QF-Test unterstützt nun das Shadow DOM API und somit Interaktionen mit Web-Elementen, die in ein offenes ShadowRoot Element eingebettet sind.
  • Als Überbrückung, bis eine vollwertige Windows Engine für QF-Test verfügbar ist, wurde das qfs.autowin Package in der Standardbibliothek qfs.qft um diverse Prozeduren erweitert, die auf Basis von Windows UIAutomation einfache Tests für native Windows-Anwendungen ermöglichen. Detaillierte Informationen hierzu finden Sie in Kapitel 50.
  • Wird der Mauszeiger über den Menüeintrag für einen verbundenen Client im »Clients« Menü bewegt, wird das Hauptfenster des entsprechenden Clients hervorgehoben.
  • Die neue Variablengruppe ${idlocal:...} ist analog zu ${id:...} mit dem zusätzlichen Effekt, dass die Komponenten nur in der zum Zeitpunkt der Expansion aktuellen Testsuite gesucht wird (siehe Abschnitt 6.5).
  • Die Debug-Ausgaben zur Wiedererkennung von Komponenten im Protokoll sind nun lesbarer formatiert und können - ebenso wie andere Textfelder im Protokoll - über das neue Tastenkürzel [Umschalt-Strg-Return] in einem externen Editor geöffnet werden.

Beseitigte Bugs:

  • Der "Veraltet" Warnungsdialog für Java WebStart in Java 9 oder höher wird nun automatisch von QF-Test behandelt.
  • Beim Refactoring oder der Analyse von Testsuite werden rc.callProcedure Aufrufe nun in überall berücksichtigt, d.h. in allen Attributen, die Variablen enthalten können.
  • Eine Datentreiber-Iteration unterhalb eines 'Testschritt' Knotens kann nun wie jede andere Knoten-Iteration in QF-Test durch einen 'Break' Knoten abgebrochen werden.
  • Web Firefox im QF-Driver Modus unter Linux konnte bei der Bearbeitung spezieller nicht-UTF-8-kodierter Zeichenketten abstürzen.
  • Web Mit Chrome im QF-Driver Modus funktionierten Mausklicks mit der rechten Maustaste in qooxdoo Anwendungen nicht korrekt.
  • Web Ein fehlender "http:" Protokoll-Header in einer URL zur automatischen Proxy-Konfiguration wird nun implizit korrigiert.
  • JavaFX Die Ermittlung des Namens für ein eingebettetes Swing Fenster aus dem umgebenen JavaFX SwingNode Element funktioniert nun auch mit dem Java Update 8u171.
Version 4.2.2 - 9. März 2018

Neue Features:

  • Web Das eingebettete Selenium WebDriver Framework wurde auf Version 3.10.0 aktualisiert und ChromeDriver auf Version 2.36 (unterstützt Chrome bis Version 66).
  • Web Für den Mobile Emulation Mode werden nun auch gerätespezifische Ränder unterstützt.
  • JavaFX Es werden nun JavaFX SubScene Komponenten unterstützt.

Beseitigte Bugs:

  • Windows Unter Windows waren die falschen qftest.exe und qftestc.exe Dateien in die Installationspakete gerutscht, so dass das bin Verzeichnis des JRE immer noch vorne zur Environment-Variable PATH hinzufügt wurde, was den Start des SUT behindern konnte. Außerdem war das Kommandozeilenargument -plugindir <Verzeichnis> dadurch außer Kraft gesetzt.
  • Web In QF-Test 4.2.1 konnte das Hervorheben einer Komponente beim Verbindungsmodus WebDriver dazu führen, dass der Browser keine weiteren Eingaben akzeptierte.
  • Web Das webResolvers Modul (siehe Abschnitt 52.2) unterstützt nun auch die Registrierung eines BusyApplicationDetectors.
Version 4.2.1 - 26. Februar 2018

Neue Features:

  • Es wird nun auch das Testen von SUTs mit Java 10 unterstützt.
  • Web Das eingebettete Selenium WebDriver Framework wurde auf Version 3.9.1 aktualisiert, ChromeDriver auf Version 2.35 (unterstützt Chrome bis Version 64) und GeckoDriver auf Version 0.19.1, welche auch Firefox Version 58 unterstützt.
  • Web Chrome kann mit Hilfe der neuen 'Prozedur' qfs.web.browser.general.openMobileEmulation in der Standardbibliothek qfs.qft nun auch im Mobile Emulation Mode gestartet werden.
  • Web Proxy Einstellungen werden für Firefox und Chrome nun auch beim Verbindungsmodus WebDriver unterstützt.
  • Bei Verschachtelung von Testfällen über 'Testaufruf' Knoten entscheidet nun das neue Attribut 'Verhalten wie Prozeduraufruf' darüber, wie Exceptions innerhalb des Aufrufs behandelt werden. Die somit überflüssige Kompatibilitäts-Option "Testaufrufe innerhalb von Testfällen nicht wie Prozeduraufrufe behandeln" wurde entfernt.
  • Die neue 'Prozedur' qfs.utils.waitForOneOfNComponents in der Standardbibliothek qfs.qft ermöglicht das Warten auf eine von mehreren möglichen Komponenten.
  • Die 'Prozedur' qfs.utils.readTextFromFile in der Standardbibliothek qfs.qft kann über den optionalen Parameter fileencoding nun Dateien mit unterschiedlichen Kodierungen verarbeiten.
  • Marken und Breakpoints können nun über Doctags @breakpoint, @red, @green etc. persistent gemacht werden. Nähere Informationen zu Doctags finden Sie in Abschnitt 60.1.
  • Die Parameter errorlevel und newerrorlevel des @rerun Doctags sind nun optional (vgl. Abschnitt 23.3.2).
  • Das Attribut 'Datenbankpasswort' des 'Datenbank' Knotens kann nun verschlüsselt werden.
  • Unter macOS unterstützt QF-Test nun die Anzeige im nativen Vollbildmodus, erreichbar über den Menüeintrag »Ansicht«-»Vollbildmodus« oder das Tastenkürzel [⌃⌘-F]
  • Unter macOS wurde das Tastenkürzel zum erneuten Laden einer Testsuite zu [⌘-R] geändert.
  • Linux Unter Linux unterstützt der eingebettete Skript-Editor nun das Einfügen von Text über die mittlere Maustaste.

Beseitigte Bugs:

  • Das PDF-Anzeigeprogramm kann nun rotierte Dokumente darstellen.
  • In Groovy Skripten funktionierte der Aufruf rc.callProcedure bei Verwendung von Keyword-Argumenten nicht mehr.
  • In Groovy Skripten lieferte rc.getNum versehentlich einen long statt einem int Wert.
  • In einzelnen Fällen konnte durch eine von QF-Test falsch gesetzte System Property der Start des SUT gestört werden.
  • Das bin Verzeichnis des JRE, mit dem QF-Test ausgeführt wird, wird für das SUT nun am Ende der Umgebungsvariable PATH hinzugefügt und nicht vorne, wie dies in QF-Test Versionen vor 4.2 der Fall war.
Highlights in Version 4.2

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

BeschreibungWeitere Info
Unterstützung für Java 9 und Java 10 Aktuell nur SUT. Auch das neue Java Modulsystem "Project Jigsaw" wird unterstützt
Testen von PDF-Dokumenten Siehe Kapitel 17
JavaScript als neue Skriptsprache Äquivalent zu Jython und Groovy, siehe Abschnitt 11.5
Unterstützung für Angular Inklusive der UI Toolkits Bootstrap und AngularJS Material, siehe Abschnitt 49.2
Unterstützung für Smart GWT Siehe Abschnitt 49.2
Spezielle Knoten für statische und live Unittests Siehe 'Unit-Test' Knoten
Webtests mit headless Browsern Nur WebDriver Modus, benötigt Chrome 60 oder höher bzw. Firefox 56 oder höher
Testen von REST Services Unterstützt GET, POST, HEAD, OPTIONS, PUT, DELETE und TRACE siehe 'Server-HTTP-Request' Knoten
Das QF-Test Tutorial wurde komplett neu geschrieben Tutorial
Tabelle B.3:  Highlights in QF-Test Version 4.2
Änderungen mit möglichen Auswirkungen auf die Testausführung
  • Die kombinierte Funktion des Knotens 'Browser starten/Browserfenster öffnen' wurde durch eigenständige 'Web-Engine starten' und 'Browser-Fenster öffnen' Knoten ersetzt. Die Konvertierung erfolgt automatisch, sofern die Attribute des alten Knotens nicht widersprüchlich sind. In diesem Fall bleibt der alte Knoten erhalten und funktioniert wie gehabt. Solche Knoten sollten bei Gelegenheit manuell durch die neuen Varianten ersetzt werden.
  • Ein weiteres etwas überraschendes Feature beim Start des Browsers ist nun veraltet: Alle Prozeduren im Package qfs.web.browser.startup erfordern nun eine bereits gestartete Web Engine. Zur Rückwärtskompatibilität kann das implizite Starten eines Browsers über den neuen Parameter 'startBrowserIfNotRunning' wieder aktiviert werden.
  • Die Implementierung des rc Skript API wurde für alle Skriptsprachen vereinheitlicht. Dies kann bei Jython zu kleinen Unterschieden führen, wenn Boolean Werte als Strings interpretiert werden, die zwischen "True", "true" und "1" bzw. "False", "false" und "0" variieren. Problematisch ist dies nur bei ungeschickt als Stringvergleich formulierten Boolean Tests wie "$(x)" == "false" an Stelle von not $(x).
  • Boolean Attribute, die mittels des '$' Buttons editierbar gemacht werden können, werden nun analog zum 'Bedingung' Attribut von 'If'-Knoten als Jython Ausdruck evaluiert. In einzelnen Fällen kann dies zu abweichenden Ergebnissen führen. Falls bestehende Tests nur an wenigen Stellen betroffen sind, sollten diese angepasst werden, da das neue Verhalten flexibler und konsistenter ist. Alternativ kann das alte Verhalten durch Aktivieren der Option Ausdrücke in variablen Boolean-Attributen nicht evaluieren (vor 4.2) wieder hergestellt werden.
  • Der alte 'Test' Knoten wurde nun ausgemustert. Seine verbleibenden Spezialfunktionen stehen anderweitig zur Verfügung: Für Datentreiber unterhalb der Testfall-Ebene können nun 'Datentreiber' Knoten in einen 'Testschritt' Knoten platziert werden und das @noreport Doctag kann verwendet werden, um einen 'Testfall' Knoten vom Report auszuschließen (siehe Kapitel 60 für weitere Informationen zu Doctags).
  • Die allgegenwärtigen Warnungen zu nicht-ganz-perfekter Wiedererkennung von Komponenten wurden nun zu Meldungen herabgestuft. Bei Bedarf können die Warnungen über die Option Warnung anstelle von Meldung ausgeben wieder hergestellt werden.
  • Werden Testfälle durch 'Testaufruf' Knoten verschachtelt, verhält sich der innere 'Testfall' Knoten nun wie eine Prozedur. Dadurch ergeben sich minimale Abweichungen bei der Behandlung von Exceptions. Im Problemfall kann das alte Verhalten über die Option "Testaufrufe innerhalb von Testfällen nicht wie Prozeduraufrufe behandeln" wieder hergestellt werden.
  • Web Kommt für Web-Anwendungen ein CustomWebResolver zum Einsatz, liefern 'Text auslesen' und 'Check Text' für TextField und TextArea Komponenten nun denselben Text. Zudem wird für Zellen von Tabellen, Bäumen oder Listen, die als TextField oder TextArea implementiert sind, nun der sichtbare Text ermittelt, so dass eventuell einige Checks nachgezogen werden müssen. Dieser Bugfix kann über die Option Textermittlung von generischen Klassen nicht mit generischem Ansatz durchführen (vor 4.2) deaktiviert werden.
  • Swing Für Swing-Anwendungen werden Tooltips nun generell als leer angesehen, wenn der Swing TooltipManager deaktiviert wird.
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 mit einem auf Java 6 basierenden SUT, aber wir können für Systeme, die von deren Herstellern nicht mehr unterstützt werden, keinen umfassenden Support bieten.

Java 5 wird nicht mehr unterstützt. SUTs auf Basis von Java 6 können noch ausgeführt werden, indem automatisch auf ältere Versionen von Jython und Groovy zurückgegriffen wird.

Bibliotheken für die Firefox Versionen 44-51 und die Eclipse/SWT-Versionen 3.6 und älter sind nicht Teil der Standard-Installation von QF-Test. Sie werden noch gepflegt, aber nur eingeschränkt getestet. Für Eclipse/SWT 3.5 - 3.6 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.

Version 4.2.0 - 10. Januar 2018

Änderungen im Vergleich zu QF-Test Version 4.1.6:

Neue Features:

  • QF-Test kann nun auf Java 9 basierende Anwendungen testen. Dies beinhaltet Unterstützung für das neue Java 9 Modulsystem ("Project Jigsaw"), ohne dass dafür auf den "Big Kill Switch", also das Kommandozeilenargument --illegal-access, zurückgegriffen werden muss.
  • PDF-Dokumente können nun wie eine normale Anwendung getestet werden, mit textuellen und grafischen Checks für einzelne Elemente.
  • JavaScript wurde als neue, zu Jython und Groovy gleichwertige Skriptsprache für 'Server-Skript' und 'SUT-Skript' Knoten eingeführt. Der ECMAScript 8 Standard wird unterstützt und es sind JavaScript Varianten aller QF-Test Module und Skript APIs wie Resolver, rc oder autowin vorhanden.
  • Web Es wird nun das beliebte AJAX Framework Angular inklusive der UI Toolkits Bootstrap und AngularJS Material unterstützt.
  • Web Es wird nun das AJAX Framework Smart GWT unterstützt.
  • Über den neuen 'Unit-Test' Knoten können JUnit-Tests ausgeführt und deren Ergebnisse so in das QF-Test Protokoll und den Report integriert werden. Tests können in Java oder als Skript implementiert und statisch oder dynamisch ausgeführt werden, also 'live' im SUT als Alternative zum Schreiben von Mocks.
  • Web Es werden nun headless Webtests auf Basis der headless Varianten von Chrome und Firefox unterstützt.
  • Web Der 'Server-HTTP-Request' Knoten unterstützt nun das Testen von REST Services über die zusätzlichen Methoden HEAD, PUT, DELETE, TRACE und CONNECT. Zudem können nun eigene Header für den HTTP-Request angegeben werden.
  • Das QF-Test Tutorial wurde komplett neu geschrieben.
  • Der neu implementierte Schnellstart-Assistent verbindet einen stringenten Ablauf mit verbessertem Design.
  • Der »Hilfe«-»Info« Dialog hat einen neuen Reiter namens "Systeminfo", unter dem viele QF-Test Einstellungen und Systeminformationen angezeigt werden.
  • Attribute wie die 'Bedingung' eines 'If' Knotens, welche im Jython-Interpreter evaluiert werden, unterstützen nun Syntaxhervorhebung und Code-Vervollständigung.
  • Web Der eingebettete Chrome Browser für die Ansteuerung mit dem QF-Driver wurde zu CEF Version 57 aktualisiert.
  • Das Kommandozeilenargument -run funktioniert nun auch im interaktiven Modus und startet dort die Testausführung automatisch beim Start von QF-Test. Zudem kann über das neue Argument -suitesfile <Datei> für Batch- und interaktiven Modus nun eine Textdatei angegeben werden, welche die auszuführenden Testsuiten und Tests beinhaltet.
  • Mit folgenden neuen Argumenten kann eine laufende QF-Test Instanz von der Kommandozeile aus kontrolliert werden. Mittels -interrupt-running-instances kann ein laufender Test auf der lokalen Maschine angehalten werden und -kill-running-instances beendet sauber alle laufenden QF-Test Instanzen - auch interaktive - sofern diese mit dem Argument -allowkilling gestartet wurden. Sauber bedeutet hier, dass Batch Tests beendet, Abhängigkeiten abgebaut und Protokolle geschrieben werden.
  • Windows Das neue Windows Setup-Programm für QF-Test folgt den aktuellen Windows-Konventionen zur Aufteilung von unterschiedlichen Dateien auf verschiedene Ordner. Es gibt weiterhin eine Option, um das alte Layout mit allen Dateien an einem Ort beizubehalten.
  • Mac Unter macOS können Programm-Parameter für QF-Test nun in den Allgemeinen Optionen in QF-Test selbst definiert werden.
  • Mac Eine macOS App kann nun direkt im Attribut 'Ausführbares Programm' eines 'SUT-Client starten' Knotens angegeben werden.
  • Ein 'Sequenz' Knoten kann nun auch in eine 'Schleife' oder einen 'While' Knoten transformiert werden.
  • Aufrufe von veralteten Prozeduren oder Testfällen werden in der Baumansicht nun ebenfalls durchgestrichen dargestellt.
  • Der 'Properties laden' Knoten unterstützt mit seinem neuen Attribut 'Zeichenkodierung der Datei ist UTF-8' nun auch das Laden von Properties-Dateien in UTF-8-Kodierung.
  • Komponenten im SUT werden nun immer automatisch hervorgehoben, wenn eine Komponente oder ein Event-Knoten im Baum angeklickt wird, unabhängig davon, ob der Knoten schon selektiert war oder nicht. Falls das automatische Hervorheben über die Option Selektierte Komponente im SUT hervorheben ausgeschaltet ist, kann es nun auch explizit über das Kontextmenü eines Knotens oder der QF-Test ID einer Komponente in Parameter-Tabellen oder Skripten ausgelöst werden.
  • Die Boolean Werte im 'Weiteres Merkmal' Attribut einer 'Komponente' oder dem 'Elemente' Attribute eines 'Check Elemente' Knotens können nun auch per Variable definiert werden. Die Zellen können hierzu per Doppelklick editierbar gemacht werden.
  • Web Das neue webResolvers Modul ermöglicht die Implementierung von Resolvern in JavaScript Code, der direkt im Browser ausgeführt wird. Detaillierte Informationen und Beispiele hierzu finden Sie in Abschnitt 52.2.
  • Das weitere Merkmal qfs:label bezieht sich nun auch auf Window und Dialog Komponenten.
  • Es gibt einige neue (oder neu dokumentierte) Kommandozeilenargumente zum Überschreiben der für QF-Test relevanten Verzeichnisse QF-Test, darunter -userdir <Verzeichnis>, -systemdir <Verzeichnis>, -jythondir <Verzeichnis>, -groovydir <Verzeichnis>, -javascriptdir <Verzeichnis>, -plugindir <Verzeichnis> und -logdir <Verzeichnis>.
  • Die qftest Property-Gruppe wurde um Definitionen für einige Verzeichnisse der QF-Test Installation erweitert, z.B. ${qftest:dir.log} für das Verzeichnis, in dem Protokolle abgelegt werden. Eine vollständige Auflistung finden Sie in Abschnitt 6.5.
  • Die Sortierreihenfolge von Parameter-Tabellen wie dem 'Variablendefinitionen' Attribut eines 'Prozeduraufruf' Knotens kann über das Popupmenü der Tabelle nun auf die Anordnung der Parameter im aufgerufenen Knoten zurückgesetzt werden.

Beseitigte Bugs:

  • Beim Konvertieren in einen regulären Ausdruck wird im Attribut 'QF-Test ID der Komponente' nun korrekt zwischen der ID selbst und der Syntax für Unterelemente unterschieden.
  • Unter Ubuntu Linux konnten keine Thread Dumps vom SUT genommen und keine Unterprozesse des SUT terminiert werden.
  • Unicode-Zeichen außerhalb der Basic Mulitilingual Pane (BMP) werden nun korrekt behandelt.
  • Swing TooltipResolver werden nun auch für nicht-Swing AWT Komponenten aufgerufen.
  • Web Die Prozedur qfs.web.general.integrateFirebug lädt Firebug nun über https statt http, wodurch Probleme mit Inhalt aus verschiedenen Quellen vermieden werden.
  • Web In einzelnen Fällen konnte der Text eines MenuItems in einer Web-Anwendung fälschlicherweise auch den Text seiner untergeordneten MenuItems enthalten.
  • Web Das Erzeugen vieler eingebetteter WebView oder SWT Browser Instanzen konnte zu einem Memory Leak führen.
  • JavaFX Die Ausführung eines JavaFX SUT über WebStart konnte zu IllegalAccessExceptions führen.
  • JavaFX Namen für die Reiter eines JavaFX TabPanel beziehen sogenannte Graphic Elemente nun korrekt ein.