Timing

Ein weiteres Problem von automatischen Testläufen sticht zunächst nicht ins Auge: Das Timing. Bei jedem Durchgang ist das Laufzeitverhalten des SUT anders. Das hat verschiedene Ursachen, darunter vor allem die Belastung des Rechners durch andere Programme. Das kann dazu führen, dass eine Zielkomponente für einen von QF-Test zu simulierenden Event noch gar nicht geöffnet wurde.

Um unnötige Fehler dieser Art zu verhindern kombiniert QF-Test mehrere Methoden:

  • Events werden mit der AWT EventQueue synchronisiert, das heißt es wird so lange kein weiterer Event an das SUT geschickt, bis alles, was sich als Folge des letzten Events in der EventQueue angesammelt hat, abgearbeitet ist.
  • In manchen Fällen, vor allem bei asynchronen Updates der Oberfläche, reicht dies nicht aus. Kann eine Komponente nicht gefunden werden, wartet QF-Test eine gewisse Zeit auf deren Erscheinen, bevor ein Fehler ausgelöst wird. Diese Zeitspanne ist mittels der Option Warten auf nicht vorhandene Komponente (ms) einstellbar.
  • Eine analoge Verzögerung gibt es mit der Option Warten auf nicht vorhandenes Element (ms) für Unterelemente von komplexen Komponenten wie Baumknoten oder Tabellenzellen.
  • Für besonders lange Wartezeiten kann explizit mit Hilfe eines 'Warten auf Komponente' auf eine Komponente gewartet werden.