QF-Test Version 4.0
Version 4.0.11 - 5. April 2016

Neue Features:

Beseitigte Bugs:

  • QF-Test startet nun auch wieder korrekt mit early access Versionen von Java 9. Dies war nach Änderung der Namenskonventionen bei der Versionierung von Java zunächst nicht mehr möglich, da der Wert "9-ea" für die System Property java.version nicht den von QF-Test erwarteten '.' nach der major Version enthält.
  • In einzelnen Fällen konnte der Aufnahmebutton auch nach Beenden des letzten SUT-Clients aktiv bleiben.
  • Web Tastendrücke für einige spezielle Zeichen, z.B. '.', wurden in QF-Test's Chrome Browser als Einzelevent nicht korrekt wiedergegeben.
  • Web Beim Versuch, eine WebStart-Anwendung aus QF-Test's Chrome Browser heraus zu starten, wurde stattdessen der Download-Dialog für die JNLP Datei angezeigt.
  • Das automatische Wiederherstellen eines minimierten SWT oder Browser-Fensters vor der Wiedergabe konnte unter Linux einen Gtk Fehler auslösen, der zum Absturz des SUT führte.
Version 4.0.10 - 28. Januar 2016

Neue Features:

  • Web Die Unterstützung für die AJAX Toolkits ICEfaces und PrimeFaces wurde für ICEfaces Version 4.1 und PrimeFaces Version 5.3 aktualisiert.
  • Die automatische Behandlung von Sicherheitsdialogen für Java WebStart und Applets wurde um einen neuen Dialog in Java 8 Update 72 ergänzt.
  • JavaFX Das neue Package qfs.autoscreen.fx in der Standardbibliothek qfs.qft enthält Prozeduren zur Abbild-basierten Erkennung von Komponenten in JavaFX-Anwendungen.

Beseitigte Bugs:

  • Exceptions in der toString Methode einer Komponente im SUT konnten die Wiedererkennung blockieren und zu einer ComponentNotFoundException führen.
  • Beim Start von QF-Test sowie beim Laden oder Speichern einer Datei wird die Liste der zuletzt geöffneten Dateien aktualisiert. Falls diese Liste Dateien von einem sehr langsamen oder nicht mehr existierenden Netzlaufwerk enthielt, konnte dies QF-Test für einen unverhältnismäßig langen Zeitraum blockieren.
  • Die Prozeduren im Package qfs.autoscreen werfen nun eine TestException mit detaillierten Informationen, falls beim Aufruf eine ungültige Syntax für den Algorithmus angegeben wurde.
  • QF-Test behandelt nun auch Bilder korrekt, die breiter oder höher als 8192 Pixel sind. Nebenbei wurde die Behandlung von großen PNG Bildern beschleunigt.
  • Gelegentliche Exceptions beim Sortieren einer Spalte in einer Ergebnisliste wurden beseitigt.
  • Eine Suche im - selten genutzten - separaten Debugger-Fenster konnte zu einer Exception führen.
  • Web Die Verwendung von rc.overrideElement in einem Web SUT konnte in speziellen Fällen eine NullPointerException auslösen.
  • Web Dank verschiedener Verbesserungen der Performance sollten Tests für große Webseiten etwas schneller laufen, speziell mit Firefox.
Version 4.0.9 - 17. Dezember 2015

Neue Features:

  • Web Es wird nun Firefox Version 43 unterstützt.

Beseitigte Bugs:

  • QF-Test fängt nun Exceptions sauber ab, die durch Excel-Dateien ausgelöst werden, wenn deren Zellen Funktionen verwenden, die von Apache POI nicht unterstützt werden.
  • JavaFX Beim Abbild-Check einer JavaFX Komponente stellt QF-Test nun sicher, dass diese zunächst sichtbar gescrollt wird und dass durch Fokusrahmen verursachte Abweichungen bei der Geometrie kompensiert werden.
  • JavaFX Die Synchronisation mit JavaFX Events bei der Wiedergabe wurde weiter verbessert.
  • Web Texteingaben im Browser konnten als Mischung von Texteingabe und Tastaturevent Knoten aufgenommen werden.
  • Web Für das AJAX Framework ZK kann nun der enabled/disabled Status von TabFolder Unterelementen geprüft werden.
  • Web Die Erkennung von Komponenten auf Webseiten funktionierte im Fall von FRAME Knoten mit vorangestellten oder angehängten Leerzeichen im Namen nicht.
  • Web Das Setzen des User Agent beim Start des Browsers klappt nun auch für Chrome.
Version 4.0.8 - 4. November 2015

Neue Features:

  • Web Es wird nun Firefox Version 42 unterstützt.
  • Web Manche Web Komponenten mit JavaScript Code, der Events speziell abarbeitet, reagieren nicht auf "weiche" Mausevents. Neben den "harten" Events, welche den Mauszeiger tatsächlich bewegen, implementiert QF-Test auch "semiharte" Events, die auf Ebene des Betriebssystems an das Browserfenster geschickt werden. Die neue Prozedur qfs.web.general.clickIncreasinglyHard in der Standardbibliothek qfs.qft vereinfacht die Wahl der besten Methode und hilft, Tests robuster zu machen.

Beseitigte Bugs:

  • Das Auslesen der Ausgaben eines Client-Prozesses mittels ${qftest:client.output.<name>} konnte vereinzelt innerhalb eines sehr kleinen Zeitfensters direkt nach dem Beenden des Prozesses einen leeren Wert liefern.
  • Die Einstellungen zur Aufnahme von generischen oder System-Klassen sollten keinen Einfluss auf die Wiedergabe von Tests haben. Bei Swing und SWT gab es allerdings einen Sonderfall: Wenn das Merkmal des Popups bzw. der Liste einer ComboBox von der Form "Invoker class: ..." war, wurde dieses nur mit der aktuell aufgenommenen Klasse verglichen und damit abhängig von obigen Einstellungen. Nun wird der Vergleich korrekt mit allen Klassen der zugehörigen Komponente gemacht.
  • Das weitere Merkmal 'qfs:class', welches die spezifischste Klasse einer Komponente angibt, wird nun immer aufgenommen und nicht nur, falls die Aufnahme generischer Klassen aktiviert ist.
  • Wurde eine erfolgreiche Suche durchgeführt, das hervorgehobene Attribut editiert und dann die Suche fortgesetzt, ohne die Änderungen zu bestätigen, gingen diese verloren.
  • Beim Auslesen einer Excel-Datei mit einer Zelle mit benutzerdefiniertem Format, die ein nicht existierendes Ziel referenziert, wurde das Format nicht richtig angewandt. Außerdem wurde die Behandlung von Zellen mit Fehlern verbessert.
  • JavaFX JavaFX Table und TreeTable Komponenten mit verschachtelten Spaltenüberschriften werden nun korrekt unterstützt. Außerdem war das automatische horizontale Scrolling für harte Events und Abbilder in diesen Komponenten nicht ganz korrekt.
  • JavaFX QF-Test umgeht nun ein Java Problem, durch das beim Aufnehmen des Abbilds einer JavaFX Komponente die interne Geometrie des JavaFX Clients durcheinander kommen konnte.
  • JavaFX Die Aufnahme von Events in einem eingebetteten WebView Browser wurde verbessert. Insbesondere wurden der erste Event nach einer Navigation sowie generell Navigation in Frames nicht korrekt behandelt.
  • Web Selbst wenn im 'Ausführbares Programm' Attribut des Knotens 'Browser starten' ein dediziertes Java-Programm angegeben war, nahm QF-Test einzelne Werte aus seiner eigenen Java-Version, was zu Problemen mit Applets im eingebetteten Browser führen konnte.
  • Web In speziellen Fällen konnte die Registrierung des Ext JS Resolvers die Initialisierung einer Web-Anwendung um bis zu 20 Sekunden verzögern.
Version 4.0.7 - 27. August 2015

Neue Features:

  • Web Es wird nun Firefox Version 41 unterstützt.
  • Web Die Unterstützung für das AJAX Toolkit Ext JS wurde für Ext JS Version 6 aktualisiert.

Beseitigte Bugs:

  • Der Speicherverbrauch bei der Generierung von XML und HTML-Reports aus geteilten Protokollen wurde weiter reduziert.
  • Beim schrittweisen Ersetzen von Parametern oder Variablen wurden eventuell alle passenden Werte eines Knotens ersetzt und nicht nur die ausgewählten.
  • JavaFX Für manche JavaFX Komponenten waren ItemName- und ItemValueResolver nicht sauber getrennt oder hatten keinen Effekt.
  • Swing Änderungen an der internen API in Java 9 führten zu Problemen bei der forcierten Aktivierung von Fenstern des SUT und bei der Wiedergabe einer Dateiauswahl im AWT FileDialog.
  • SWT Die Wiedergabe eines Auswahl-Events für eine CCombo Komponente innerhalb einer Tree oder Table Zelle konnte aufgrund von Fokus-Problemen fehlschlagen.
  • Web Internet Explorer 10 und älter konnten im Quirksmode abstürzen, hängen oder sich generell komisch verhalten, wenn eine Seite viele verschachtelte IFRAMEs enthielt.
  • Web QF-Test's eingebetteter Internet Explorer behandelt JavaScript Code in href Attributen nun genauso wie der normale Internet Explorer.
Version 4.0.6 - 16. Juli 2015

Neue Features:

  • Windows 10 wird nun offiziell unterstützt. Speziell Internet Explorer bereitete einige Probleme, von Abstürzen zu falschem documentMode, userAgent oder der Sprachauswahl, was nun alles funktionieren sollte.
    Hinweis Der neue Edge Browser von Microsoft wird noch nicht unterstützt.
  • SWT Die Unterstützung für Eclipse/SWT 4.5 wurde für die finale Release von Eclipse 4.5 "Mars" aktualisiert.
  • Web Firefox Version 40 wird nun experimentell unterstützt.
  • Web Die Unterstützung für das AJAX Toolkit RAP wurde für RAP Version 3.0 aktualisiert. Hierfür - und rückwirkend bis RAP Version 2.2 - können nun Namen, die entwicklungsseitig über widget.setData("name", ...) vergeben wurden, analog zu SWT automatisch von QF-Test verwendet werden.

Beseitigte Bugs:

  • JavaFX Für JavaFX unter Mac OS X kann QF-Test nun das Setzen des Fokus in den Fenstern des SUT erzwingen, was eine zentrale Voraussetzung für die stabile und zuverlässige Ausführung von Tests ist.
  • JavaFX JavaFX Table und TreeTable Komponenten mit unsichtbaren Spalten werden nun korrekt behandelt.
  • JavaFX Aufnahmen für editierbare ComboBox Elemente in JavaFX wurden mangels Bezug auf den Button zum Öffnen der Popup-Liste nicht korrekt wiedergegeben. Die Button und TextField Elemente innerhalb der editierbaren ComboBox werden nun automatisch als combo@:Button und combo@:TextField adressiert. Checks für den Wert von ComboBoxen wurden ebenfalls verbessert.
  • JavaFX Selbst implementierte Spaltenüberschriften in JavaFX Tabellen werden nun korrekt behandelt.
  • Web Unter Windows stürzte die finale Release von Firefox 39 mit QF-Test 4.0.5 aufgrund einer Änderung am Speichermanagement von Firefox ab.
  • Web Firefox Version 38.1 ESR wurde von QF-Test 4.0.5 nicht richtig erkannt.
  • SWT Die Geometrie von SWT Widgets innerhalb eines Group Widget mit Titel war für die SWT Versionen 4.4. und 4.5 unter Linux nicht korrekt.
Version 4.0.5 - 12. Mai 2015

Neue Features:

  • Web Es werden nun die Firefox Versionen 38 und 39 unterstützt.
  • Es gibt nun einen Standard-Check für Tooltips.
  • JavaFX Für JavaFX-Anwendungen wurde die Synchronisation der Wiedergabe von QF-Test Events mit dem FX Toolkit stark verbessert, was die Robustheit der Tests deutlich erhöht.
  • Die neue 'Prozedur' qfs.utils.dumpComponents in der Standardbibliothek qfs.qft schreibt Geometrie und Klassen-Informationen zu einer (Teil-)Hierarchie von Komponenten in das Protokoll, was während der Erstellung von Tests von Nutzen sein kann.
  • Drag&Drop Operationen zwischen Komponenten verschiedener GUI-Engines, unabhängigen Anwendungen oder einem SUT und dem Desktop können nun mittels der 'Prozedur' qfs.utils.dragAndDrop durchgeführt werden.

Beseitigte Bugs:

  • Ein Thread-Dump für das SUT kann unter Windows nun auch für 64 Bit Java-VMs ausgelöst werden.
  • Bei der Aufnahme von Prozeduren mit einer Template-Suite, die eine leere Parameterliste für Container-Prozeduren enthielt, waren die resultierenden Prozeduraufrufe so kaputt, dass die Testsuite nicht mehr gespeichert werden konnte.
  • Der Speicherverbrauch bei der Generierung von XML oder HTML-Reports aus geteilten Protokollen wurde deutlich reduziert.
  • Swing Die in QF-Test Version 4.0.4 spürbar langsamere Wiedergabe von Swing Events läuft nun wieder mit der vollen Geschwindigkeit.
  • JavaFX In wenigen speziellen Fällen war die Wiedergabe von Mausevents auf JavaFX Menüs mit Java 8 Update 40 nicht mehr korrekt.
  • JavaFX Die Verbindung mit dem SUT für die FX Engine wird nun erst hergestellt, wenn das FX Toolkit vollständig initialisiert ist. Damit werden auch Anwendungen mit eingebetteten FX Komponenten unterstützt, die beim Start nur einzelne Klassen von FX ansprechen und das FX Toolkit erst dann initialisieren, wenn die erste FX Komponente angezeigt wird.
  • JavaFX Ein mögliches Deadlock für kombinierte Swing und FX-Anwendungen mit gemeinsamem Event Dispatch Thread wurde beseitigt.
  • Web Die Auflösung von Klassen trotz komprimiertem oder obfuskiertem JavaScript wurde deutlich verbessert und beschleunigt, so dass auf dem AJAX Toolkit GWT basierende Web-Anwendungen nun viel schneller laufen.
  • Web In einigen Fällen wurde die Check-Aufnahme im Chrome Browser nicht korrekt beendet, was die weitere Aufnahme von Events blockierte.
  • Web Aufgrund eines Rundungsfehlers konnten Abbild-Checks im Chrome Browser einen Pixel daneben liegen.
  • Web Beim Check von Text in Web-Anwendungen wurden Kombinationen von NBSP und normalen Leerzeichen nicht immer korrekt interpretiert.
  • Web Der QF-Test Browser hatte ein Speicherleck, wenn ein verschachtelter FRAME oder IFRAME bei einer Seitenavigation entladen wurde.
Version 4.0.4 - 5. März 2015

Neue Features:

  • Web QF-Test unterstützt nun das Testen von 64 Bit Firefox Versionen unter Linux.
  • Web Das AJAX UI Framework jQuery EasyUI wird nun dediziert unterstützt.
  • Web Die Firefox Unterstützung wurde für die öffentlich freigegebene Firefox Version 36 aktualisiert und Firefox Version 37 ist neu hinzugekommen.
  • SWT Die Unterstützung für Eclipse/SWT 4.4 "Luna" wurde für die Eclipse 4.4 SR2 Release aktualisiert.
  • Web Die Java-Version zum Start von QF-Test's Browser ist nicht länger auf das Java beschränkt, mit dem QF-Test selbst läuft, sondern über das Attribut 'Ausführbares Programm' im Knoten 'Browser starten' einstellbar. Dadurch wird es einfacher, 32 Bit und 64 Bit Java-Versionen zu mischen oder das System JRE für den Browser zu verwenden, was für Java Applets im QF-Test Browser eine Voraussetzung ist.
  • Mit der speziellen Variablen-Syntax ${qftest:32} (oder deren Alternative ${qftest:32bit}) kann ermittelt werden, ob QF-Test in einer 32-Bit-Java-VM läuft, mit den offensichtlichen Gegenstücken ${qftest:64} bzw. ${qftest:64bit} für eine 64 Bit VM.
  • Über das neue Kommandozeilenargument -daemonrmiport <Port> kann der QF-Test Daemon hinter einer Firewall betrieben werden indem ein dedizierter Port für die RMI Kommunikation zusätzlich zum Daemon Lookup Port angegeben wird, der mittels -daemonport <Port> gesetzt wird.
  • Der Standardwert für die Option Warten auf nicht vorhandene Komponente (ms) wird nun während des Starts des SUT vorübergehend auf mindestens 30000 ms gesetzt. Es wird nach wie vor empfohlen, einen 'Warten auf Komponente' Knoten in die Startsequenz für das SUT einzubauen.

Beseitigte Bugs:

  • Beim automatischen Anpassen von Referenzen nach einem Refactoring wurde bei mehrstufiger Syntax für Unterelemente nach der zweiten Stufe abgeschnitten.
  • Die neue Operation "Ungenutzte auffindbare Knoten finden/löschen" stufte Prozeduren, die nur aus Abhängigkeiten aufgerufen wurden, als ungenutzt ein.
  • Swing Die Umgehung der Fokus-Probleme von Java 8 unter Windows greift jetzt direkt an der Wurzel des Problems statt zu versuchen, die Störeffekte unter Kontrolle zu halten.
  • Web Die Prozeduren im Package qfs.web.browser.settings der Standardbibliothek prüfen nun explizit den Parameter "browser" auf Gültigkeit, statt still und leise ohne Effekt fehlzuschlagen.
  • Web Chrome kann nun 'Server-HTTP-Request' und 'Browser-HTTP-Request' aufnehmen.
  • Web Chrome konnte bei der Navigation zu einer bereits vorher besuchten Seite abstürzen.
  • Web In einzelnen Fällen konnte das automatische Expandieren von Baumknoten in Chrome zu einem Deadlock führen.
  • Web Beim Erstellen einer neuen Startsequenz mit dem Schnellstart-Assistenten für das AJAX Toolkit GWT wurde die Version für den GWT Resolver fälschlich auf 1 statt 2 gesetzt. Das gleiche Problem betraf die automatische Erkennung von GWT.
  • Web Das AJAX Toolkit jQuery UI war bei der automatischen Erkennung der AJAX Resolver nicht erfasst worden.
Version 4.0.3 - 29. Januar 2015

Neue Features:

  • Web Die Firefox Unterstützung wurde für die öffentlich freigegebene Firefox Version 35 aktualisiert und Firefox Version 36 ist neu hinzugekommen.
  • Web Eine Neuimplementierung des Resolvers für das AJAX Framework GWT bringt eine deutlich breitere Unterstützung der GWT Komponenten auf Basis von GWT Version 2.7.
  • SWT Es wird nun Eclipse/SWT 4.5 "Mars" unterstützt, basierend auf Eclipse Version 4.5M4.
  • JavaFX Die Aufnahme von Drag&Drop ist nun auch für JavaFX implementiert.
  • JavaFX Neben der Einbettung von JavaFX Komponenten in Swing werden nun auch hybride Anwendungen mit dem umgekehrten Ansatz unterstützt, die Swing Komponenten in JavaFX einbetten. Dazu gehört auch Unterstützung für die gemeinsame Nutzung des Event Dispatch Thread durch JavaFX und Swing.
  • Die neue Operation "Ungenutzte auffindbare Knoten finden/löschen" wurde eingeführt, um Prozeduren, die nicht verwendet werden, aus den Testsuiten entfernen zu können.
  • Die neue Prozedur qfs.check.compareDates in der Standardbibliothek qfs.qft dient zum Vergleich von zwei Datumsangaben in beliebigem Format.
  • Die Prozedur qfs.utils.xml.compareXMLFiles hat zwei neue Parameter zum Entfernen von Leerzeichen und zur Behandlung von Namespace-Definitionen.
  • Die Diagnoseinformationen, die für jeden Fehler und jede Exception in das Protokoll geschrieben werden, beinhalten nun auch einen kompletten Thread Dump des SUT sowie Angaben zur Java Speichernutzung des SUT und der aktuellen Systemlast.
  • Wird QF-Test im Batchmodus zur Generierung von Reports oder für andere Kommandos gestartet, die keine Tests ausführen, läuft QF-Test nun im AWT Headless-Modus, sofern das Kommandozeilenargument -nomessagewindow angegeben wird. Dies ist z.B. für die Ausführung aus einem Continuous Integration Server heraus sinnvoll, der selbst ohne Display läuft.
  • 'Server-HTTP-Request' Knoten können nun die Syntax http://user:passwd@mydomain.com verwenden, um einen Request an einen gesicherten Server zu senden.
  • Die Standard-Einstellung des für QF-Test verfügbaren Java Speichers ist nun 512 MB, der Java Speicher für QF-Test's Browser wurde auf 256 MB heraufgesetzt.
  • Über das neue ResetListener API kann das Verhalten des Befehls »Wiedergabe«-»Alles zurücksetzen« beeinflusst werden, um zum Beispiel einen bestimmten Client-Prozess nicht abzuschießen oder um zusätzliche Aufräumarbeiten wie das Löschen von Jython oder Groovy Variablen anzustoßen. Details finden Sie in Abschnitt 52.8.

Beseitigte Bugs:

  • Die Reihenfolge von 'Catch' Knoten unterhalb eines 'Try' Knotens konnte nach Einführung des optionalen 'Else' Knotens in QF-Test Version 4.0.2 nicht mehr verändert werden.
  • Die Anzeige großer Textausgaben des SUT im Terminal konnte QF-Test und die Testausführung stark ausbremsen, wenn die RichText-Formatierung für das Terminal aktiviert war.
  • In sehr seltenen Fällen konnte unter Windows die Testausführung im Batchmodus hängen bleiben, wenn das SUT in ein Deadlock lief.
  • Abhängig vom Timing wurden beim Beenden von QF-Test manchmal nicht alle Client-Prozesse terminiert.
  • Der Import von Testsuiten konnte extrem langsam werden, wenn der tolerante Vergleich von Klassen aktiviert war.
  • Wenn ein Excel-Tabellenblatt sehr tief verschachtelte Funktionen enthält, wirft QF-Test nun eine TestException statt solche Zellen zu ignorieren. Für die korrekte Behandlung solcher Excel-Dateien muss QF-Test mit größerem Speicherplatz für den Thread Stack gestartet werden, z.B. über das Kommandozeilenargument -J-Xss512k.
  • Bei der Aufnahme von Prozeduren wurden einzelne Platzhalter in verschachtelten Sequenzen der Vorlage nicht korrekt ersetzt.
  • Bei der Prozedur-Aufnahme sind nun auch Container-Prozeduren mit normalen Event-Knoten und Sequenzen möglich, ohne sich auf komponentenspezifische Prozeduren zu beziehen.
  • Wurde bei der Ausführung eines 'Server-HTTP-Request' Knotens wegen eines Status-Codes > 399 eine HTTP Exception geworfen, waren die Variablen 'responseDate' und 'statusCode' nicht korrekt gesetzt.
  • Der horizontale Scrollbar des internen Skripteditors wurde falsch angezeigt, wenn harte TAB Zeichen im Code enthalten waren.
  • Das Warten auf die Abwesenheit von mehrstufigen Unterelementen funktioniert nun korrekt.
  • Für WebStart-Anwendungen behandelt QF-Test nun auch die deutsche Variante der HTTPS Zertifikat-Warnung automatisch.
  • HTML-Reports, testdoc und pkgdoc Dokumente konnten durch mehrzeilige HTML Kommentare zerschossen werden, falls das Durchreichen von HTML aktiviert war.
  • Die Deklaration und die tatsächliche Kodierung von XML-Reports, testdoc und pkgdoc Dokumenten waren inkonsistent, falls die Standard-Kodierung von QF-Test's Java-VM eine andere als ISO-8859-1 war.
  • Das Tool für die "QF-Test Java Konfiguration" konnte keine Werte in der Windows Registry speichern, wenn nicht zuvor wenigstens einmal setup.exe ausgeführt worden war.
  • Swing Bei der Aufnahme in Swing-Anwendungen mit einer großen Anzahl von Komponenten konnte die Performance stark einbrechen.
  • Swing Bei Swing-Anwendungen unter Java 8 konnte die Anzeige des Menüs für die Check-Aufnahme anschließend Eingaben in Textfelder verhindern.
  • Swing Die Umgehung des Fokus Bugs in Java 8 unter Windows beim Ändern des Topmost-Status von Fenstern wurde verbessert und schließt nun einen weiteren Sonderfall ein.
  • JavaFX Bei hybriden JavaFX und Swing-Anwendungen wird beim Abspielen eines Events auf eine eingebettete Komponente nun das umgebende Fenster des anderen Toolkits korrekt nach vorne gebracht und aktiviert, was die Stabilität solcher Tests erhöht.
  • JavaFX Bei der Wiedergabe einer Dateiauswahl zum Speichern einer Datei in JavaFX wird nun der ExtensionFilter passend zur Endung der gewählten Datei gesetzt.
  • SWT Der Versuch, einen Check direkt auf den Kopf einer SWT Tabelle aufzunehmen, führte zu einer Exception.
  • Web Plugins und Erweiterungen wurden in Firefox 30 und höher nicht korrekt initialisiert.
  • Web Die Auflösung von Listenelementen funktioniert nun auch für <SELECT> Knoten und generische ComboBox Elemente, die in einer anderen Liste enthalten sind.
  • Web Der Resolver für das AJAX Framework ZK wurde zu Version 1.1.1 aktualisiert, die einige kleinere Probleme beseitigt und die Behandlung von MenuItems verbessert.
  • Web Die Wiedergabe von semiharten Mausevents mit Modifiern wie [Strg] wurde korrigiert.
  • SWT Checks für Tabellenzellen in KTable Komponenten wurden nicht korrekt aufgenommen.
Version 4.0.2-p2

Neue Features:

  • Web Die Firefox Unterstützung wurde für die öffentlich freigegebene Firefox Version 34 aktualisiert und Firefox Version 35 ist neu hinzugekommen.

Beseitigte Bugs:

  • Web In QF-Test Version 4.0.2-p1 war der vom Firefox Browser gelieferte User Agent unvollständig.
Version 4.0.2-p1

Beseitigte Bugs:

  • Web Die Unterstützung für Firefox 33 wurde aktualisiert und kommt nun auch mit dem neuen Firefox Versionsschema zurecht, das mit Firefox 33.1 eingeführt wurde.
Version 4.0.2 - 22. Oktober 2014

Neue Features:

  • Web Es werden nun die Firefox Versionen 33 und 34 unterstützt.
  • SWT Die Unterstützung für Eclipse/SWT 4.4 "Luna" wurde für die Eclipse 4.4 SR1 Release aktualisiert.
  • JavaFX Die Unterstützung für JavaFX wurde an einige Änderungen an FX in Java Update 8u20 angepasst.
  • Der QF-Test Agent Mechanismus ist nun kompatibel zu den schärferen Sicherheitsvorkehrungen in Java Updates 8u25 und 7u71/7u72.
  • JavaFX JavaFX Charts werden nun vollständig unterstützt, mit verbesserten Komponenten für deren Bestandteile und mit verschiedenen speziellen Checks.
  • Web Die AJAX Toolkits Ext JS und PrimeFaces werden nun auch jeweils für Ext JS Version 5 und PrimeFaces Version 5 unterstützt.
  • Die Rückwärtskompatibilität für die Aufnahme von Komponenten mit generischen Klassen in Testsuiten mit vor QF-Test 4.0 Komponenten wurde erweitert, so dass nun auch der Import von solchen Komponenten funktioniert.
  • Das 'Try'/'Catch'/'Finally' Konstrukt wurde um einen optionalen 'Else' Knoten erweitert, der ausgeführt wird, wenn der Inhalt des 'Try' Knotens keine Exception wirft.
  • 'Fenster' Knoten unterstützen das 'Weitere Merkmale' Attribut nun ebenso wie 'Komponente' und 'Webseite' Knoten.
  • Die Ermittlung von generischen Klassen durch QF-Test kann nun durch Implementieren eines GenericClassNameResolvers, wie in Abschnitt 52.1.8 beschrieben, beeinflusst werden.
  • Web Mit Abschnitt 49.1 gibt es nun einen eigenen Abschnitt im Handbuch, der erklärt, wie Resolver für AJAX Web Toolkits, die QF-Test noch nicht out-of-the-box unterstützt, relativ einfach selbst erstellt werden können.

Beseitigte Bugs:

  • In manchen Fällen blieb der Aufnahme-Button aktiv, selbst wenn kein SUT-Client mehr mit QF-Test verbunden war.
  • Auf einer Windows Maschine, auf der nur ein 64 Bit Java installiert ist, sucht QF-Test nun explizit nach der 64 Bit Java Installation in "C:\Programme", falls es kein javaw.exe Programm im PATH findet.
  • Die Prozeduren im Package qfs.utils.ssh verwendeten nicht die korrekte known_hosts Datei.
  • Der 'Excel-Datei' Knoten behandelt die Zeichenkodierung in alten .xls Dateien nun korrekt.
  • Die runid wurde nicht korrekt im Protokoll gespeichert, falls ein Batch-Test durch Angabe des Kommandozeilenarguments -splitlog=false ohne Unterstützung für geteilte Protokolle ausgeführt wurde.
  • Checks auf die Sichtbarkeit von Unterelementen konnten fälschlicherweise mit einer IndexNotFoundException fehlschlagen, statt einen erfolgreichen oder fehlgeschlagenen Check zu melden.
  • Die proc-builder Konfigurationsdatei konnte bei der Bearbeitung in QF-Test beschädigt werden, wenn gleichzeitig neue Prozeduren aufgenommen und die Datei bearbeitet wurde.
  • Der Context-Diff für einen fehlgeschlagenen 'Check Elemente' Knoten war in wenigen speziellen Fällen unvollständig.
  • Swing Der Start von WebStart und Applets ist nun noch robuster. Auch eine selten in Applets auftretende ClassCastException wurde beseitigt.
  • Swing Die neu eingeführte Unterstützung für spezielle, mittels JTabbedPane.setTabComponent erstellte Tab-Komponenten konnte die korrekte Wiedergabe von bestehenden Aufnahmen für solche Tabs verhindern.
  • SWT Zellen einer Nebula Grid Komponente können nun auch an einem durch Scrollen verschobenen Ort aufgenommen werden und die Adressierung solcher Zellen mit negativen Indizes wird nun ebenfalls unterstützt.
  • JavaFX Bei SWT basierten SUTs mit eingebetteten FX Komponenten entstehen keine Duplikate mehr bei der Aufnahme von Events auf solche FX Komponenten und Checks auf dieselben können nun ganz normal aufgezeichnet werden.
  • Web Der standardmäßig eingestellte Kompatibilitätsmodus im Internet Explorer 10 und höher ist nun korrekt. Zudem entspricht der vom IE für document.documentMode gelieferte User Agent nun immer dem aktuell eingestellten Kompatibilitätsmodus.
  • Web Das Warten auf einen dynamisch eingefügten FRAME und sein Dokument funktioniert nun in allen Browsern korrekt.
  • Web QF-Test verwendet nun in allen Browsern eine neue Methode zur Ermittlung der Geometrie von TEXT Knoten, die effizienter und weniger invasiv ist. Die alte Methode konnte in speziellen Fällen zu Konflikten mit dem JavaScript Code einer Webseite führen.
  • Web Es gab eine knifflige Race Condition insbesondere im Zusammenhang mit einer speziellen Art von Download, der über das Öffnen einer temporären Webseite ausgelöst wird, die sofort wieder automatisch geschlossen wird. QF-Test behandelt solche Situationen und diese Art von Download nun korrekt.
  • Web Der Chrome Browser zeigt nun einen Bestätigungsdialog an, wenn ein Fenster geschlossen werden soll, für das ein onbeforeunloadhandler registriert ist.
  • Web Die Aufnahme von Komponenten und Prozeduren im Chrome Browser erfolgt jetzt deutlich schneller.
  • Web Der eingebettete Chrome Browser kann nun Videos darstellen.
  • Web Doppelklicks werden jetzt auch im Chrome Browser korrekt aufgenommen.
Version 4.0.1 - 28. August 2014

Neue Features:

  • JavaFX Die JavaFX TreeTableView Komponente, die mit Java 8 eingeführt wurde, wird nun vollständig unterstützt.
  • Swing Bei JTabbedPane Komponenten unterstützt QF-Test nun die Aufnahme und Checks auch für solche Tabs, die über die Methode setTabComponent als spezielle Komponenten implementiert sind.
  • Ist das 'Kodierung der Datei' Attribut eines 'CSV-Datei' Knotens auf "UTF-8" gesetzt, versucht QF-Test nun selbst herauszufinden, ob die angegebene Datei mit einem Byte Order Mark (BOM) beginnt oder nicht und dies entsprechend zu behandeln. Auch ein 'Kodierung der Datei' Attribut mit dem Wert "x-UTF-8-BOM" oder "x-UTF-8-No-BOM" behandelt QF-Test korrekt, obwohl Java diese Encodings nicht direkt unterstützt.
  • Wird der Mauszeiger über ein Abbild in einer Testsuite oder einem Protokoll bewegt, zeigt QF-Test nun die (X,Y) Koordinaten und Farbwerte des zugehörigen Pixels an.

Beseitigte Bugs:

  • Die über die Option Warten auf nicht vorhandenes Element (ms) definierte implizite Wartezeit wurde in einigen Fällen ignoriert, z.B. bei Checks mit einem Timeout.
  • Ein 'Weiteres Merkmal' mit Variablen für einen Regulären Ausdruck konnte fälschlicherweise eine BadRegexpException auslösen.
  • In QF-Test Version 4 werden führende und nachgestellte Leerzeichen aus den Namen von Unterelementen entfernt. Kompatibilität für die Wiedergabe war für die meisten Fälle sicher gestellt, aber nicht für alle. Dies sollte nun konsistent funktionieren.
  • Der Context-Diff für einen fehlgeschlagenen 'Check selektierbare Elemente' Knoten im Protokoll stellt nun auch den erwarteten und erhaltenen selected Status der Elemente dar und wird auch dann korrekt angezeigt, wenn die Abweichungen ausschließlich den selected Status betreffen.
  • Für Formeln in Excel-Dateien, die Boolean Werte liefern oder verschachtelte Formeln mit mehrfachem Typwechsel, liefern 'Excel-Datei' Knoten und die Prozedur qfs.utils.files.readExcelFile nun korrekte Werte.
  • Swing In einer hybriden Anwendung mit Swing und JavaFX-Komponenten war die Behandlung von Swing JTable Komponenten durch den ItemResolver für JavaFX Tabellen gestört.
  • JavaFX Die Aufnahme von Elementen in einem JavaFX Tree, dessen Wurzelknoten nicht angezeigt wird, ist nun korrekt.
  • SWT Das Hervorheben von Komponenten im Check-Aufnahme-Modus funktionierte bei Eclipse / SWT Anwendungen nicht mehr.
  • SWT Es gab immer noch eine Abhängigkeit von einer neuen glibc Version in den Instrumentierungs-Dateien für 64 Bit Versionen von Eclipse, die zu Fehlern auf einigen Linux Systemen mit einer alten glibc Version führte, z.B. RHEL 6.5.
  • Web Tests mit den Firefox Versionen 27 und 28 funktionierten nicht korrekt.
  • Web Text Checks für Tabellenüberschriften funktionierten in einigen Web Tabellen nicht mehr.
  • Web Eine Proxy-Auto-Config-Datei (PAC-Datei), die über einen Aufruf der Prozedur qfs.web.browser.settings.setProxy definiert wurde, interpretiert QF-Test nun korrekt.
  • Web Im Chrome Browser wird nun ein Bestätigungsdialog angezeigt, wenn ein Fenster geschlossen wird, für das ein onbeforeunload Handler definiert ist.
  • Web JavaScript Fehler im Chrome Browser werden nun nicht mehr in das QF-Test Terminal geschrieben, sondern in das Protokoll.
  • Web Im Chrome Browser waren die Koordinaten innerhalb eines IFRAMEs versetzt, falls der Frame einen Rahmen hatte. Dies führte zu Verschiebungen beim Hervorheben von Komponenten und zu Fehlern bei Abbild-Checks durch ungenügendes automatisches Scrolling.
  • Web Drag&Drop mit Hilfe der Prozedur qfs.web.general.dragFromTo funktioniert nun auch im Chrome Browser.
  • Web Das Löschen des Browser-Cache funktionierte mit Firefox Version 32 nicht.
  • Web Die Prozedur qfs.web.table.getRowCount konnte in dem seltenen Fall fehlschlagen, wenn die erste Spalte einer Tabelle unsichtbar ist.
Wesentliche neue Features in Version 4

Hinweis Eine detaillierte Aufstellung der Neuigkeiten finden Sie in den Release Notes für QF-Test Version 4.0.0-beta1 bis Version 4.0.0 weiter unten.

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

BeschreibungWeiterführende Informationen
Neue GUI-Engine: JavaFX Volle Unterstützung für JavaFX-Anwendungen
Unterstützung für Chrome Browser Aktuell nur unter Windows
Verbesserte Unterstützung für Java WebStart und Applets Schneller und zuverlässiger Start und Verbindung über Java Agent
Unterstützung für das AJAX Framework jQuery UI Besondere Unterstützung für verschiedene Web-Komponentenbibliotheken
Generische Klassen für Komponenten Einheitliche Klassen für alle GUI-Engines (Abschnitt 5.4.1.1)
Konzept für mehrstufige Unterelemente QPath Konzept, vergleichbar mit XPath (Adressierung mit QPath)
Unterstützung für eingebettete Browser JavaFX WebView und JxBrowser 4
Verbesserte Oberfläche mit farbigen Syntax-Hervorhebungen Option Syntax-Hervorhebungen für Baumknoten, Terminal Optionen
Neues Package für clientseitige ssh Verbindungen Standardbibliothek qfs.qft, Package qfs.utils.ssh
Tabelle B.5:  Neue Features in QF-Test Version 4

Änderungen mit möglichen Auswirkungen auf die Testausführung:

  • Der 'Warten auf Komponente' Knoten wartet implizit auf die Verbindung mit dem entsprechenden SUT-Client und der benötigten GUI-Engine. Falls das Warten fehlschlägt, wird eine ComponentNotFoundException geworfen, deren Meldung erklärt, ob die Komponente nicht gefunden wurde, der SUT-Client nicht verbunden ist oder keine passende GUI-Engine für diesen Client zur Verfügung steht. Über das Attribut 'Erwartete Meldung' eines 'Catch' Knotens kann zwischen diesen Fällen unterschieden werden.
    In früheren QF-Test Versionen gab es eine Inkonsistenz im Verhalten bei fehlendem Client: Abhängig davon, ob der Client früher schon einmal verbunden war oder nicht, wurde eine ComponentNotFoundException oder eine ClientNotConnectedException geworfen. Falls Ihr Test eine ClientNotConnectedException erwartet, müssen Sie entweder den 'Catch' Knoten ändern, einen weiteren 'Catch' Knoten einfügen oder dem 'Warten auf Komponente' Knoten einen 'Warten auf Client' Knoten voranstellen.
  • Über die neue Option Behandlung von ausgeschalteten Komponenten wird festgelegt, wie QF-Test damit umgeht, wenn bei der Wiedergabe ein deaktivierter 'Komponente' Knoten referenziert wird. In früheren QF-Test Versionen wurde dieser Zustand ignoriert, was zu Überraschungen führen konnte. Nun wird standardmäßig ein Fehler in das Protokoll geschrieben. Konsequenterweise werden nun deaktivierte 'Komponente' Knoten bei der Aufnahme nicht mehr wiederverwendet.
  • Die neue Option Standard-Wartezeit für Checks (ms) definiert - wie ihr Name sagt - den Standardwert für das 'Wartezeit' Attribut von 'Check' Knoten, bei denen dieses Attribut nicht explizit gesetzt ist. Sie verbessert die Stabilität der Ausführung von Checks generell. Falls Ihre Tests viele 'Check' Knoten ohne explizite 'Wartezeit' enthalten, bei denen davon ausgegangen wird, dass sie fehlschlagen, kann die Ausführungszeit Ihrer Tests darunter leiden. In diesem Fall können Sie diese Option oder - bevorzugt - das 'Wartezeit' Attribut der betreffenden Knoten auf 0 setzen.
  • Web Das AJAX Toolkit RAP definiert IDs nicht im Attribut 'ID' des DOM-Knotens, daher hatte die Option Alle Ziffern aus 'ID'-Attributen eliminieren bisher für RAP keinen Einfluss. Dies wurde nun korrigiert, so dass bei aktivierter Option ebenfalls Ziffern aus den für RAP Elemente ermittelten IDs entfernt werden. Sollte dies zu Problemen mit bestehenden Tests führen, deaktivieren Sie einfach die Option Alle Ziffern aus 'ID'-Attributen eliminieren.

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 1.5 oder 1.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. Falls Sie die jeweilige Unterstützung benötigen, wenden Sie sich bitte via support@qfs.de an QFS.

Offiziell nicht mehr unterstützt werden Java 1.5, Internet Explorer 7 und älter, Firefox 25 und älter (mit Ausnahme von Firefox 24 ESR) sowie Eclipse/SWT 3.6 und älter.

Version 4.0.0 - 31. Juli 2014

Neue Features:

  • Web Es werden nun die Firefox Versionen 31 und 32 unterstützt.
  • Eine etwas anwenderfreundlichere Methode zum Update einer QF-Test Lizenz steht nun über das Menü »Hilfe«-»Lizenz aktualisieren...« zur Verfügung.
  • Beim Öffnen einer Jython oder Groovy-Konsole für einen SUT-Client wird nun die Historie der Eingaben von der zuletzt geöffneten Jython oder Groovy-Konsole kopiert. Dies vereinfacht das Ausprobieren des gleichen Skripts bei wiederholtem Neustart des SUTs.
  • Beim Import von QF-Test Ergebnissen in TestLink kann nun die 'QF-Test ID' zur Assoziation mit Testfällen verwendet und die Plattform ausgelassen werden.
  • Beim Start von QF-Test zeigt der Aufnahme-Button nun zunächst ein kleines "Hilfe" Icon, das den Schnellstart-Assistenten für das SUT öffnet. Dieses Feature soll Erstanwender von QF-Test unterstützen, die sich oft vergeblich fragen, warum sie nicht gleich mit der Aufnahme starten können.
  • Web Die Prozedur qfs.web.ajax.installToolkitResolver erlaubt nun die Angabe von Defaultwerten für die zu installierende Version eines automatisch erkannten AJAX Toolkit Resolvers. Dadurch wird dem versehentlichen Update zu einer möglicherweise inkompatiblen Resolver-Version im Zuge eines QF-Test Updates vorgebeugt.
  • Web Die Default-Fehlerstufe für einen JavaScript Fehler in einer Webseite ist nun "Warnung". Aktuelle Browser ignorieren JavaScript Probleme einfach, so dass deren Behandlung seitens QF-Test als Fehler zu Irritationen führte. Diese Einstellung kann über die Option Behandlung von Fehlern in einer Web-Anwendung geändert werden.

Beseitigte Bugs:

  • SWT Auf Linux Systemen mit einer alten glibc Version, z.B. RHEL 6.5, konnte die instrumentierte 64 Bit Version von Eclipse nicht starten. Diese Abhängigkeit von einer neueren glibc Version wurde beseitigt.
  • SWT Falls der QF-Test Agent aktiviert war, wurde eine Eclipse / SWT-Anwendung mit eingebetteten Swing Komponenten fälschlicherweise als zwei SUT-Clients statt einem SUT mit zwei GUI Engines erkannt.
  • JavaFX De Spaltenköpfe in JavaFX Tabellen werden nun korrekt adressiert.
  • JavaFX CheckBox Elemente innerhalb von JavaFX Tabellenzellen oder Baumknoten werden nun mit der neuen Syntax @:CheckBox aufgenommen.
  • Web Der Check für den editable Status von TextField, PasswordField und TextAreas Knoten fehlte bei Web-Clients.
  • Web Wurde durch die Auswahl in einer ComboBox in einer Webseite zu einer anderen Seite navigiert, konnte Internet Explorer abstürzen.
  • Web Die Aufnahme von Checks im Browser war in Bereichen nicht möglich, die von einem unsichtbaren IFRAME überdeckt wurden.
  • Web Die Synchronisation von Events für das AJAX Toolkit Ext JS berücksichtigt modale Dialoge nun korrekt.
  • Web Beim Festlegen der Proxy-Einstellungen für den Internet Explorer über die Prozedur qfs.web.browser.settings.doStartupSettings wurden proxy.pac Dateien nicht korrekt interpretiert.
  • Swing In neueren Java und Browser Versionen hat sich das Verhalten beim Start eines Applets dahingehend verändert, dass manchmal zwei JRE Versionen gleichzeitig starten. Je nach Timing konnte dies dazu führen, dass sich das eigentliche Applet als $(client):2 anstatt $(client) verbindet. QF-Test umgeht dieses Problem nun, indem es sich zu Applets erst verbindet, wenn diese sichtbar sind.
  • Swing Der "Alle Zeilen" Check wurde für Swing JTextArea Komponenten nicht korrekt aufgenommen, wenn unterhalb der ersten Zeile geklickt wurde.
  • Swing Es gibt nun zwei unterschiedliche Text-Checks für JEditorPane Komponenten, die HTML darstellen, den "Text" Check für den sichtbaren Text und den "HTML-Quelltext" Check für das zu Grunde liegende HTML. In vielen Fällen ist der erste Check für den reinen Text hilfreicher als der frühere Standard-Check für den HTML-Quelltext. Außerdem wurde der Text Check für JEditorPane Komponenten korrigiert, die RTF darstellen.
  • Wird die Bearbeitung eines Knotens in der Detailansicht oder das Hinzufügen eines neuen Knotens abgebrochen, prüft QF-Test nun, ob bereits Modifikationen vorgenommen wurden und fragt nach Bestätigung, bevor diese verworfen werden. Dieser Bestätigungsdialog kann über die Option Vor dem Verwerfen von Änderungen in den Details nachfragen unterdrückt werden.
  • Beim Ein- oder Ausschalten des selektierten Knotens im Baum wurden noch nicht bestätigte Modifikationen in der Detailansicht stillschweigend verworfen.
Version 4.0.0-rc1 - 4. Juli 2014

Neue Features:

  • QF-Test unterstützt nun mehrstufige Unterelemente, um Komponenten innerhalb von Unterelementen zu adressieren. Ein typisches Beispiel ist ein Textfeld innerhalb einer Tabellenzelle, das nun als table@Header&row@:TextField angesprochen werden kann. Die verwendete Syntax ist sehr mächtig und wird weiter ausgebaut werden, um QF-Test's Repräsentation mit einer XPath-ähnlichen Syntax zu mischen (siehe Adressierung mit QPath).
  • Das vormalige Attribut 'Id' von 'Fenster' und 'Komponente' Knoten heißt nun 'QF-Test ID', um es klar von den verschiedenen IDs zu unterscheiden, die von den unterstützten GUI-Engines verwendet werden.
  • Web Generische Klassen werden nun auch ohne dedizierten AJAX Resolver für HTML-Knoten verwendet.
  • Web Die Unterstützung für das AJAX Toolkit RichFaces wurde für RichFaces Version 3 aktualisiert.
  • SWT Die Unterstützung für Eclipse/SWT wurde für Eclipse Version 4.4 "Luna" aktualisiert.
  • SWT Die Nebula Grid Komponente wird nun standardmäßig unterstützt und automatisch erkannt.
  • Es kann nun ein eigenes Verzeichnis für die Ablage von temporären Protokollen im interaktiven Modus angegeben werden, entweder über die Option Verzeichnis für Protokolle oder beim Start von QF-Test über das Kommandozeilenargument -runlogdir <Verzeichnis>.
  • Die neue Option Verweise zwischen Verzeichnissen mit Testsuiten dient dazu, Verzeichnisse mit Testsuiten aufeinander abzubilden. Das ist besonders hilfreich, wenn ein Protokoll von einer Maschine mit unterschiedlicher Verzeichnisstruktur analysiert wird (z.B. Windows vs. Unix), da QF-Test mit korrekt definierten Verweisen durch diese Option ohne manuelle Hilfe direkt in die betreffenden Testsuiten springen kann.
  • Mit zwei neuen Variablengruppen können Sonderzeichen bequem geschützt werden. ${quoteitem:...} kümmert sich um Zeichen wie '@' oder '&' im textuellen Index eines Unterelements und ${quoteregexp:...} behandelt '.', '(', '[' etc. in einem regulären Ausdruck.
  • Bei Lesezeichen kann nun auch ein Verzeichnis als Ziel angegeben werden (siehe Abschnitt 39.1.5). Bei Auswahl eines solchen Lesezeichens wird dann der Dateiauswahldialog direkt für dieses Verzeichnis geöffnet.

Beseitigte Bugs:

  • Web Es können nun mehrere Instanzen des Chrome Browsers auf einem Rechner ausgeführt werden.
  • Web Performanz, Stabilität und die Menge der unterstützten Funktionen für eingebettete Browser via JavaFX WebView und JxBrowser wurden weiter verbessert.
  • Web Das AJAX Toolkit RAP definiert IDs nicht im Attribut 'ID' des DOM-Knotens, daher hatte die Option Alle Ziffern aus 'ID'-Attributen eliminieren bisher für RAP keinen Einfluss. Dies wurde nun korrigiert, so dass bei aktivierter Option ebenfalls Ziffern aus den für RAP Elemente ermittelten IDs entfernt werden. Sollte dies zu Problemen mit bestehenden Tests führen, deaktivieren Sie einfach die Option Alle Ziffern aus 'ID'-Attributen eliminieren.
  • Mit der Unterstützung für JavaFX und dessen Swing InterOp Einbettungsmöglichkeiten sowie der Unterstützung für eingebettete Browser kommt es immer öfter vor, dass ein SUT mehr als eine GUI-Engine beinhaltet. Dies führte zu Problemen mit 'SUT-Skript' Knoten in der Standardbibliothek qfs.qft, die generell die Standard GUI Engine verwendeten. Alle Prozeduren mit 'SUT-Skript' Knoten haben nun einen optionalen Parameter namens guiengine der korrekt vordefiniert ist, so dass z.B. eine Prozedur im qfs.web Package auch in einem eingebetteten Browser automatisch funktioniert. Im außergewöhnlichen Fall eines SUT-Clients mit mehr als einer GUI-Engine desselben Typs können Sie mit dem guiengine Parameter dediziert die gewünschte Engine ansprechen.
  • Nach der Einführung von generischen Klassen funktionierte die Wiedergabe für den Fall nicht mehr, dass von Hand eine anonyme innere Klasse für eine Komponente angegeben worden war.
  • Während der Auflösung von Abhängigkeiten wurden die 'Standardwerte für Parameter' von 'Abhängigkeit' Knoten nicht korrekt gebunden.
  • Die Geschwindigkeit der Testausführung im interaktiven Modus litt durch Repaint-Probleme im Zusammenhang mit den neuen Syntax-Hervorhebungen im Baum.
Version 4.0.0-beta3 - 13. Mai 2014

Neue Features:

  • Web Es wird nun Firefox Version 30 unterstützt.
  • JavaFX Die Aufnahme von Prozeduren ist für FX nun vollständig unterstützt.
  • Web Für Web-Anwendungen, die auf dem AJAX Framework ZK basieren, löst QF-Test nun die von der Entwicklung vergebenen IDs auf und übernimmt diese als Namen.
  • Web Die Unterstützung für den Chrome Browser wird immer besser. Up- und Download werden nun vollständig unterstützt, ebenso Login-Dialoge, das Schließen von Browserfenstern und Texteingabe inklusive Modifier und Cursorposition. Zudem wird nun ein lokales Verzeichnis für das Profil verwendet, um Testautomatisierung und normalen Gebrauch von Chrome zu trennen, womit nun auch das Löschen des Cache und von Cookies funktioniert, sowie Sprach- und Proxyeinstellungen.
  • Web Eingebettete Browser im JavaFX WebView oder via JxBrowser machen ebenfalls große Fortschritte und es können nun mehrere in einem Fenster eingebettete Browser korrekt angesprochen werden.
  • Einfach, aber äußerst nützlich: Der nach einem Fehler oder einer Exception angezeigte Dialog enthält nun einen Button, um direkt zur entsprechenden Stelle im Protokoll zu springen.
  • JavaFX Es gibt nun einen Check für den "ausgewählt" Status einer CheckBox in einer JavaFX Tabellenzelle, einem Baumknoten oder einem Listeneintrag.
  • Die neue Prozedur qfs.web.general.dragFromTo bietet HTML5 Drag&Drop ohne dabei die Anwendung zu blockieren, alternativ auf JavaScript Ebene oder mittels harter Events.
  • Für die TestLink Integration können Sie beim ImportResults Skript nun den Buildnamen direkt beim Import angeben, das Überschreiben der Runid beim Testlauf ist nicht länger nötig.

Beseitigte Bugs:

  • SWT Die Einführung von generischen Klassen führte bei SWT zu einem ernsthaften Performance-Problem, welches nun beseitigt wurde.
  • SWT Bei SWT weigerte sich QF-Test, harte Events auf negative Koordinaten abzuspielen, was allerdings nötig sein kann, um unter Windows ein Fenster auf einem zweiten Bildschirm zu erreichen, der links vom primären Monitor aufgestellt ist.
  • Web Der Druckdialog wird im Firefox nun korrekt angezeigt.
  • In sehr speziellen Fällen konnte ein Test im QF-Test Daemon an einer fehlenden Engine-Lizenz scheitern, obwohl die Lizenz eigentlich vorhanden war.
Version 4.0.0-beta2 - 11. April 2014

Neue Features:

  • Generische Klassen sind nun auch für Swing und SWT implementiert.
  • QF-Test nimmt nun die generische Klasse, die konkrete Klasse und die Systemklasse einer Komponente als weiteres Merkmal namens qfs:genericclass, qfs:class oder qfs:systemclass auf. Dies ist als Information hilfreich und kann genutzt werden, wenn eine Komponente auf eine mehr oder weniger spezifische Klasse umgestellt werden soll. Falls eine generische Klasse einen konkreten Untertyp besitzt, nimmt QF-Test diesen als weiteres Merkmal qfs:type auf, z.B. "PanelTitle" für ein Label, das der Titel eines TitledPanel ist.
  • Web Für Chrome werden nun auch Downloads, die Behandlung von Prompt- und Bestätigunsdialogen sowie das Auslesen und Setzen der Cursorposition in einem Textfeld unterstütze. Letzteres ist Voraussetzung für die Aufnahme von Mausevents relativ zu einem Zeichenposition und für 'Texteingabe' Knoten, die Text innerhalb von bereits bestehendem Text einfügen.
  • Als eingebettete Browser werden nun JavaFX WebView und JxBrowser 4 unterstützt. Dieses Feature befindet sich noch in der Entwicklung, Aufnahme und Wiedergabe von Mausevents ist aber bereits möglich.
  • Web Beim Start aus QF-Test akzeptiert Chrome nun ebenfalls automatisch SSL Zertifikate für HTTPS Verbindungen.
  • Es stehen nun verschiedene Anordnungen der Testsuiten im Auswahldialog für 'Prozeduren' zur Verfügung.

Beseitigte Bugs:

  • JavaFX Dank verbessertem Fokus-Management sollte die Wiedergabe für JavaFX unter Linux nun stabiler funktionieren, insbesondere die Auswahl von Menüeinträgen.
  • JavaFX Die Wiedergabe von harten Mausklicks mit der mittleren oder rechten Taste funktionierte für JavaFX nicht korrekt.
  • Ein Tabellenblatt in Excel 2010 mit einer Referenz auf eine Zahl in einem anderen Tabellenblatt wird nun vom 'Excel-Datei' Knoten korrekt behandelt.
Version 4.0.0-beta1 - 26. März 2014

Neue Features:

  • JavaFX JavaFX ist der Nachfolger von Swing als Standard-Oberfläche in Java 8. QF-Test Version 4.0 bietet mit der neu eingeführten Produktlinie QF-Test/fx volle Unterstützung für das Testen von JavaFX-Anwendungen. Diese GUI-Engine ist nahezu komplett. Aktuell fehlt noch die Aufnahme von Prozeduren und die Anbindung von WebView Komponenten als vollwertige QF-Test Web Engine ist noch nicht vollständig.
  • Die Unterstützung für den Chrome Browser unter Windows ist weit fortgeschritten und im Wesentlichen stabil. Wie zuvor mit Internet Explorer und Firefox ist es das Ziel, Unterschiede zwischen den Browsern zu verbergen und zu ermöglichen, dass ein Test unverändert auf allen drei Browsern lauffähig ist. Zu diesem Zeitpunkt sind einige Browser-Dialoge sowie Datei Up- und Download noch nicht implementiert. Außerdem kann aktuell nur eine Instanz von Chrome parallel von QF-Test aus gestartet werden.
  • Das Konzept der generischen Klassen, welches zunächst nur für die Web Engine verfügbar war, wurde erweitert, um zunächst auch JavaFX und demnächst alle GUI-Engines zu unterstützen. Es bietet die Grundlage für Tests, die unverändert für verschiedene GUI Engines lauffähig sind, erhöht den Abstraktionsgrad und bietet eine flexiblere und robustere Wiedererkennung von Komponenten. Die Aufnahme von generischen Klassen wird über die Option Generische Klassen für Komponenten aufzeichnen gesteuert.
    Sehen Sie hierzu auch das Video Die Explosion der Komplexität in der Web Testautomatisierung eindämmen, welches die Explosion der Komplexität in AJAX Oberflächen lebhaft veranschaulicht. Es trifft analog für JavaFX zu, welches die Probleme bei der Automatisierung von Oberflächen mit sehr vielen kleinen Komponenten teilt und für das QF-Test's Ansatz mit generischen Klassen hervorragend funktioniert.
  • Toleranter Vergleich von Klassen bei der Aufnahme: Bestehende Knoten in QF-Test's Komponentenhierarchie werden wiederverwendet, sofern ihre Klasse einer der Klassen der aufzunehmenden Komponente entspricht. Dadurch kann zur Aufnahme von generischen Klassen übergegangen werden, ohne dass alle Komponenten neu aufgezeichnet werden. Die Funktion 'Komponenten aktualisieren' ist davon nicht betroffen, sie bringt die betreffenden Komponenten immer auf den Stand, der den aktuellen Aufnahme-Einstellungen entspricht.
  • Die Verbindung mit dem SUT wird nun standardmäßig über den Java Agent Mechanismus hergestellt. Er ist schneller, stabiler - insbesondere für Java WebStart und Applets - und wesentlich flexibler und mächtiger. In Problemfällen kann der Java Agent Mechanismus über die Option Über QF-Test Agent verbinden deaktiviert werden.
  • Farbige Syntax-Hervorhebungen der Baumknoten verbessern die Lesbarkeit von Testsuiten deutlich.
  • Für das gemeinsame Terminal von QF-Test können Schriftsatz und Größe nun individuell festgelegt werden. Zudem werden die verschiedenen Arten von Meldungen nun mit unterschiedlichen Farben hervorgehoben, auch das Filtern von Meldungen ist möglich. Die entsprechenden Einstellungen sind in der Gruppe Terminal Optionen zusammengefasst.
  • Beim Start des SUT werden Jython und Groovy nun erst bei Bedarf geladen, wodurch der Start schneller und stabiler wird. Speziell Jython war für einige der Probleme mit Java WebStart verantwortlich. Zudem reduziert sich Overhead und Speicherverbrauch, falls eine Sprache gar nicht verwendet wird.
  • Web Es wird nun das AJAX Framework jQuery UI unterstützt.
  • SWT Es wird nun Eclipse/SWT-Version 4.4 "Luna" unterstützt.
  • SWT Die Nebula NatTable Komponente wird nun standardmäßig unterstützt und automatisch erkannt.
  • Es können nun Breakpoints auf 'Komponente' Knoten gesetzt werden, um einen Test im Debugger anzuhalten, sobald ein solcher Knoten referenziert wird.
  • Für einen fehlgeschlagenen 'Check Elemente' Knoten wird in Protokoll und Report nun ein Context-Diff der erwarteten und erhaltenen Werte angezeigt, wodurch sich alle Abweichungen schnell erkennen lassen.
  • Es werden nun auch relative 'Testaufrufe' mit führendem '.' im Attribut 'Name des Tests' unterstützt.
  • Wo QF-Test reguläre Ausdrücke unterstützt, z.B. 'Text', 'Merkmal' oder 'Elemente', kann normaler Text nun durch einen Rechts-Klick und Auswahl von 'Text in einen regulären Ausdruck konvertieren' in einen gleichwertigen, korrekt maskierten regulären Ausdruck umgewandelt werden.
  • Der Umgang mit mehrzeiligem Text in Unterelementen wie Baumknoten, Tabellenüberschriften oder -zellen, Listeneinträgen etc. wurde verbessert.
  • Such- und Ersetzungsvorgänge für Variablen können nun auch getrennt auf den Namen oder den Wert von Variablen begrenzt werden.
  • Das Kapitel im Handbuch über die Integration mit HP ALM - QualityCenter wurde komplett überarbeitet: Abschnitt 26.1.

Änderungen mit möglichen Auswirkungen auf die Testausführung:

  • Der 'Warten auf Komponente' Knoten wartet implizit auf die Verbindung mit dem entsprechenden SUT-Client und der benötigten GUI-Engine. Falls das Warten fehlschlägt, wird eine ComponentNotFoundException geworfen, deren Meldung erklärt, ob die Komponente nicht gefunden wurde, der SUT-Client nicht verbunden ist oder keine passende GUI-Engine für diesen Client zur Verfügung steht. Über das Attribut 'Erwartete Meldung' eines 'Catch' Knotens kann zwischen diesen Fällen unterschieden werden.
    In früheren QF-Test Versionen gab es eine Inkonsistenz im Verhalten bei fehlendem Client: Abhängig davon, ob der Client früher schon einmal verbunden war oder nicht, wurde eine ComponentNotFoundException oder eine ClientNotConnectedException geworfen. Falls Ihr Test eine ClientNotConnectedException erwartet, müssen Sie entweder den 'Catch' Knoten ändern, einen weiteren 'Catch' Knoten einfügen oder dem 'Warten auf Komponente' Knoten einen 'Warten auf Client' Knoten voranstellen.
  • Über die neue Option Behandlung von ausgeschalteten Komponenten wird festgelegt, wie QF-Test damit umgeht, wenn bei der Wiedergabe ein deaktivierter 'Komponente' Knoten referenziert wird. In früheren QF-Test Versionen wurde dieser Zustand ignoriert, was zu Überraschungen führen konnte. Nun wird standardmäßig ein Fehler in das Protokoll geschrieben. Konsequenterweise werden nun deaktivierte 'Komponente' Knoten bei der Aufnahme nicht mehr wiederverwendet.
  • Die neue Option Standard-Wartezeit für Checks (ms) definiert - wie ihr Name sagt - den Standardwert für das 'Wartezeit' Attribut von 'Check' Knoten, bei denen dieses Attribut nicht explizit gesetzt ist. Sie verbessert die Stabilität der Ausführung von Checks generell. Falls Ihre Tests viele 'Check' Knoten ohne explizite 'Wartezeit' enthalten, bei denen davon ausgegangen wird, dass sie fehlschlagen, kann die Ausführungszeit Ihrer Tests darunter leiden. In diesem Fall können Sie diese Option oder - bevorzugt - das 'Wartezeit' Attribut der betreffenden Knoten auf 0 setzen.

Neue Packages und Prozeduren in der Standardbibliothek qfs.qft:

Nicht mehr unterstützte Software:

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 1.5 oder 1.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. Falls Sie die jeweilige Unterstützung benötigen, wenden Sie sich bitte via support@qfs.de an QFS.

Offiziell nicht mehr unterstützt werden Java 1.5, Internet Explorer 7 und älter, Firefox 25 und älter (mit Ausnahme von Firefox 24 ESR) sowie Eclipse/SWT 3.7 und älter.