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 41.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:

  1. Analysieren Sie das Protokoll, insbesondere die Bildschirmabbilder und Meldungen.
  2. Wenn Sie die Fehlerquelle nicht sofort sehen können, dann springen Sie zur fehlerhaften Stelle in der Testsuite mit der Tastenkombination [Strg-T].
  3. Setzen Sie einen Breakpoint vor dem fehlerhaften Schritt.
  4. Versichern Sie sich, dass der Debugger von QF-Test eingeschaltet ist.
  5. Starten Sie den fehlerhaften Test.
  6. 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.
  7. Vielleicht sehen Sie jetzt auch sofort den Fehler im SUT.
  8. Wenn Sie immer noch keine Fehlerursache erkennen können, dann führen Sie den fehlerhaften Schritt aus.
  9. 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.