Cykl życia testu wykonywanego przy użyciu Federacji Handlowej składa się z czterech oddzielnych etapów, zaprojektowanych wokół formalnie zdefiniowanych interfejsów.
Zdefiniowane interfejsy
- Dostawca kompilacji : udostępnia kompilację do przetestowania, w razie potrzeby pobierając odpowiednie pliki.
- Przygotowujący obiekt docelowy : przygotowuje środowisko testowe, w tym prawdopodobnie instalację oprogramowania i konfigurację urządzenia.
- Test : Wykonuje testy i zbiera wyniki testów. Może to być dowolny test JUnit, chociaż nasz interfejs IRemoteTest został specjalnie zaprojektowany do pracy w środowisku Federacji Handlowej.
- Odbiornik wywołania testu (raportowanie wyników) : nasłuchuje wyników testu, zwykle w celu przekazania wyników testu do repozytorium lub wyświetlenia ich osobie uruchamiającej testy.
Podstawową jednostką testującą w TF jest konfiguracja (config). Konfiguracja to plik XML, który deklaruje składniki cyklu życia testu.
To oddzielenie cyklu życia testu ma na celu umożliwienie ponownego wykorzystania. Korzystając z tego projektu, programista może utworzyć test raz, a następnie integrator może utworzyć różne konfiguracje, aby uruchomić ten test w różnych środowiskach. Na przykład mogą utworzyć konfigurację, która uruchomi test na komputerze lokalnym i zrzuci wynik na standardowe wyjście. Następnie mogliby utworzyć drugą konfigurację, która wykonałaby ten sam test, ale do przechowywania wyników testu w bazie danych użyć innego odbiornika wywołania testu. Trzecia konfiguracja może być zaprojektowana do uruchamiania tego testu w sposób ciągły z laboratorium testowego.
Warto tutaj zauważyć, że konfiguracja wraz z jej argumentami wiersza polecenia (dostarczonymi przez program uruchamiający testy) jest znana jako Command . Gdy TF paruje Command z ITestDevice
i wykonuje je, kolejny obiekt jest znany jako Invocation . Krótko mówiąc, wywołanie obejmuje pełne wykonanie testu TF w całym jego cyklu życia.
Dodatkowe komponenty konfiguracyjne
- Odzyskiwanie urządzenia : mechanizm odzyskiwania komunikacji urządzenia w przypadku utraty.
- Logger : zbiera dane z rejestrowania danych pochodzących z handlu.
Wyjście sceniczne i błędy
Każdy etap inwokacji jest wykonywany sekwencyjnie i ma określony cel. W tej sekcji opisano typowe wyjścia i błędy każdego etapu.
Dostawca kompilacji
Ten etap tworzy i generuje obiekt IBuildInfo
, który zawiera wszystkie odwołania do plików wymaganych do skonfigurowania i uruchomienia testów.
Najczęstszym błędem na tym etapie jest niepowodzenie pobierania lub znajdowania żądanych plików.
Błąd na tym etapie powoduje bezpośrednie zgłoszenie błędu i nie uruchamianie testów.
Przygotowanie celu
Na tym etapie ustalane są niezbędne stany testowanego obiektu docelowego. Na tym etapie można zmienić urządzenie lub konfigurację hosta zgodnie z potrzebami danego wywołania testowego.
Typowe błędy na tym etapie zwykle obejmują nieustawienie urządzenia w danym stanie (na przykład nieudane flashowanie) i niemożność znalezienia wymaganych plików do konfiguracji.
Błąd na tym etapie powoduje uruchomienie czyszczenia docelowego, zgłoszenie błędu i brak uruchamiania testów.
Testy
Ten etap uruchamia żądane testy na wcześniej przygotowanym celu i raportuje wszystkie wyniki wykonania testów.
Typowe błędy na tym etapie zwykle dotyczą niedostępności testowanego celu lub jakiegoś błędu powodującego częściowe wykonanie testów. Błędy te to problemy z infrastrukturą, które wpływają na samo wykonanie testu, w przeciwieństwie do niepowodzenia pojedynczego przypadku testowego.
Błąd na tym etapie skutkuje zatrzymaniem wykonywania testu, uruchomieniem czyszczenia docelowego, zgłoszeniem błędu i uzyskaniem częściowych wyników.
Raportowanie wyników
Na tym etapie wyniki i błędy są zgłaszane do skonfigurowanych usług (na przykład serwerów i plików lokalnych).
Chociaż poszczególne osoby zgłaszające wyniki mogą mieć błędy, są od siebie odizolowane (jeden zgłaszający nie widzi błędów drugiego). Błędy te wpływają tylko na raportowanie wyników pojedynczego zgłaszającego, a błędy można przeglądać w dziennikach.