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.
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.
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.
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
'Browser starten' Knotens 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 Webanwendung um bis zu 20 Sekunden verzögern.
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.
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.
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
Webanwendungen 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 Webanwendungen 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.
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 'Browser starten' Knoten
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.
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.
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.
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.
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.
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.
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:
| Beschreibung | Weiterfü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 'ID' Attribut 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.
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 eines Jython oder Groovy Terminals für einen SUT Client wird nun die
Historie der Eingaben vom zuletzt geöffneten Jython oder Groovy Terminal 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 Webanwendung 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.
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 'Id' Attribut 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.4). 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 'ID' Attribut 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.
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 Webanwendungen, 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.
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.
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.