Testausführung
Dieses Kapitel gibt Ihnen Hinweise, wie Sie Ihre Tests implementieren können um eine stabile und verlässliche Testausführung zu erreichen.
Abhängigkeiten
Das 'Abhängigkeiten' Konzept von QF-Test ermöglicht es, dass alle Vorbedingungen eines Testfalles vor der eigentlichen Ausführung des Testfalles sichergestellt werden. Es bietet auch Möglichkeiten, auf ein unerwartetes Verhalten zu reagieren, z.B. Schließen eines unerwarteten Fehlerdialogs.
Dieses Konzept ist im Abschnitt 42.3 beschrieben. Im Tutorial können Sie einen Anwendungsfall im Kapitel 'Abhängigkeiten' finden.
Sie sollten zumindest eine Abhängigkeit implementieren, die verantwortlich ist das SUT zu starten. Diese Abhängigkeit sollte eine Vorbereitung Sequenz, die das SUT startet, eine Aufräumen Sequenz für das normale Beenden des SUTs und darüber hinaus noch einen Catch Knoten, um auf unerwartetes Verhalten zu reagieren, beinhalten.
Hinweis Wenn Sie eine Aufräumen Sequenz implementieren, versuchen Sie zuerst das SUT normal zu beenden. Nur wenn das nicht klappt, sollten Sie versuchen das SUT mit einem Programm beenden Knoten abzuschießen.
Für SWING und SWT Applikationen, verwenden Sie bitte die Prozeduren
qfs.cleanup.swing.closeAllModalDialogs
und
qfs.cleanup.swt.closeAllModalDialogsAndShells
aus der Standardbibliothek
qfs.qft
um unerwartete Fehlerdialoge zu schließen.
Wartezeiten und Verzögerungen
Zur Optimierung der Ausführungszeit sollten Sie anstatt der Attribute 'Verzögerung vorher' und 'Verzögerung nachher' Synchronisationsknoten von QF-Test verwenden.
Die erste Art von Synchronisationsknoten sind die 'Warte'-Knoten wie Warten auf Komponente, Warten auf Client, Warten auf Laden des Dokuments und Warten auf Programmende. Hier können Sie das Attribut Wartezeit setzen, um auf eine Komponente, einen Prozess oder ein Dokument zu warten. Der Warten auf Komponente Knoten bietet sogar die Möglichkeit, auf das Verschwinden von Komponenten zu warten.
Die zweite Art sind 'Check'-Knoten, bei denen Sie auch wieder das Attribut Wartezeit setzen können. Diese Knoten können verwendet werden, um einen Test erst fortsetzen, wenn eine GUI-Komponente einen bestimmten Status erreicht hat.
Was soll man tun, wenn das Protokoll einen Fehler enthält?
Wenn der Testreport eine Fehlermeldung oder eine Exception enthält, dann sollten Sie folgende Schritte ausführen, um die Fehlerquelle schnell zu finden:
- Analysieren Sie das Protokoll, insbesondere die Bildschirmabbilder und Meldungen.
- Wenn Sie die Fehlerquelle nicht sofort sehen können, dann springen Sie zur fehlerhaften Stelle in der Testsuite mit der Tastenkombination Strg+T.
- Setzen Sie einen Breakpoint vor dem fehlerhaften Schritt.
- Versichern Sie sich, dass der Debugger von QF-Test eingeschaltet ist.
- Starten Sie den fehlerhaften Test.
- Wenn QF-Test den Breakpoint erreicht und die Ausführung stoppt, öffnen Sie das Debugger-Fenster und kontrollieren die aktuellen Variablenbelegungen, vielleicht beinhaltet diese ja falsche Werte.
- Vielleicht sehen Sie jetzt auch sofort den Fehler im SUT.
- Wenn Sie immer noch keine Fehlerursache erkennen können, dann führen Sie den fehlerhaften Schritt aus.
- Wenn Sie nun immer noch einen Fehler bekommen, dann müssen Sie eventuell einige Schritte vor dem eigentlichen Fehler debuggen. Verwenden Sie hierzu wenn möglich die Aktion 'Ausführung hier fortsetzen' aus dem Kontextmenü, um zu einem beliebigen Knoten in der Testsuite zu springen anstatt eines Neustarts des kompletten Tests.
3.1+ Seit QF-Test Version 3.1 ist es möglich Knoten mittels Kontextmenü »Marke setzen« zu markieren oder ein Lesezeichen mittels der Kontextmenüaktion »Lesezeichen hinzufügen« zu setzen. Diese Features ermöglichen es Ihnen schnell die wichtigsten Knoten wiederzufinden.
Wenn Sie Probleme mit der Komponentenerkennung haben, dann schauen Sie bitte in die Kapitel Abschnitt 5.10 und Abschnitt 5.3.