Der Lebenszyklus eines mit Trade Federation ausgeführten Tests besteht aus vier separaten Phasen, die auf formal definierten Schnittstellen basieren.
Definierte Schnittstellen
- Build-Anbieter : Stellt einen Build zum Testen bereit und lädt bei Bedarf entsprechende Dateien herunter.
- Zielvorbereiter : Bereitet die Testumgebung vor, möglicherweise einschließlich Softwareinstallation und Gerätekonfiguration.
- Test : Führt Tests aus und sammelt Testergebnisse. Dies kann ein beliebiger JUnit-Test sein, obwohl unsere IRemoteTest- Schnittstelle speziell für den guten Betrieb in der Trade Federation-Umgebung entwickelt wurde.
- Testaufruf-Listener (Ergebnisberichterstattung) : Hört auf Testergebnisse, normalerweise zum Zweck der Weiterleitung der Testergebnisse an ein Repository oder der Anzeige für den Test Runner.
Die grundlegende Testeinheit in TF ist eine Konfiguration (config). Eine Konfiguration ist eine XML-Datei, die die Lebenszykluskomponenten eines Tests deklariert.
Diese Trennung des Testlebenszyklus soll eine Wiederverwendung ermöglichen. Mit diesem Design kann der Entwickler einen Test einmal erstellen und der Integrator kann dann verschiedene Konfigurationen erstellen, um diesen Test in verschiedenen Umgebungen auszuführen. Sie könnten beispielsweise eine Konfiguration erstellen, die einen Test auf einem lokalen Computer ausführt und das Ergebnis auf stdout ausgibt. Sie könnten dann eine zweite Konfiguration erstellen, die denselben Test ausführt, aber einen anderen Testaufruf-Listener verwendet, um die Testergebnisse in einer Datenbank zu speichern. Eine dritte Konfiguration könnte so konzipiert sein, dass der Test kontinuierlich von einem Testlabor aus ausgeführt wird.
An dieser Stelle ist es sinnvoll zu beachten, dass eine Konfiguration zusammen mit ihren Befehlszeilenargumenten (wie vom Test Runner bereitgestellt) als Command bezeichnet wird. Wenn TF einen Befehl mit einem ITestDevice
koppelt und ausführt, wird das nachfolgende Objekt als Invocation bezeichnet. Kurz gesagt umfasst ein Aufruf eine vollständige TF-Testausführung über den gesamten Lebenszyklus.
Zusätzliche Konfigurationskomponenten
- Gerätewiederherstellung : Mechanismus zur Wiederherstellung der Gerätekommunikation bei Verlust.
- Logger : sammelt handelsübliche Protokollierungsdaten.
Bühnenausgabe und Fehler
Jede Phase eines Aufrufs wird nacheinander ausgeführt und hat ein bestimmtes Ziel. In diesem Abschnitt werden die üblichen Ausgaben und Fehler jeder Stufe beschrieben.
Build-Anbieter
In dieser Phase wird ein IBuildInfo
Objekt erstellt und ausgegeben, das alle erforderlichen Dateiverweise zum Einrichten und Ausführen der Tests enthält.
Der häufigste Fehler in dieser Phase ist, dass die angeforderten Dateien nicht heruntergeladen oder gefunden werden können.
Ein Fehler in dieser Phase führt dazu, dass der Fehler direkt gemeldet wird und keine Tests ausgeführt werden.
Zielvorbereitung
In dieser Phase werden die erforderlichen Zustände für das zu testende Ziel eingerichtet. In dieser Phase kann das Gerät oder das Host-Setup je nach Bedarf für den jeweiligen Testaufruf geändert werden.
Häufige Fehler in dieser Phase sind in der Regel das Versäumnis, das Gerät in einen bestimmten Zustand zu versetzen (z. B. fehlgeschlagenes Flashen) und das Versäumnis, die für die Einrichtung erforderlichen Dateien zu finden.
Ein Fehler in dieser Phase führt dazu, dass die Zielbereinigung ausgeführt wird, der Fehler gemeldet wird und keine Tests ausgeführt werden.
Tests
In dieser Phase werden die angeforderten Tests auf dem zuvor vorbereiteten Ziel ausgeführt und alle Ergebnisse der Testausführung gemeldet.
Häufige Fehler in dieser Phase sind in der Regel die Nichtverfügbarkeit des zu testenden Ziels oder ein Fehler, der zu einer teilweisen Ausführung der Tests führt. Bei diesen Fehlern handelt es sich um Infrastrukturprobleme, die sich auf die Testausführung selbst auswirken und nicht auf das Scheitern eines einzelnen Testfalls.
Ein Fehler in dieser Phase führt dazu, dass die Testausführung angehalten wird, die Zielbereinigung ausgeführt wird, der Fehler gemeldet wird und Teilergebnisse erhalten werden.
Ergebnisberichterstattung
In dieser Phase werden die Ergebnisse und Fehler an die konfigurierten Dienste (z. B. Server und lokale Dateien) gemeldet.
Obwohl einzelne Ergebnisberichterstatter Fehler haben können, sind sie voneinander isoliert (ein Berichterstatter sieht die Fehler eines anderen nicht). Diese Fehler wirken sich nur auf die eigene Ergebnisberichterstattung eines einzelnen Reporters aus und die Fehler können in den Protokollen eingesehen werden.