Cykl życia testu realizowanego za pomocą Federacji Handlowej składa się z czterech odrębnych etapów, zaprojektowanych wokół formalnie zdefiniowanych interfejsów.
Zdefiniowane interfejsy
- Dostawca kompilacji : zapewnia kompilację do przetestowania, pobierając odpowiednie pliki, jeśli to konieczne.
- Osoba przygotowująca obiekt docelowy : Przygotowuje środowisko testowe, łącznie z 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, aby dobrze działać w środowisku Federacji Handlowej.
- Odbiornik wywołania testu (raportowanie wyników) : nasłuchuje wyników testu, zwykle w celu przesłania wyników testu do repozytorium lub wyświetlenia ich uruchamiającemu test.
Podstawową jednostką testującą w TF jest konfiguracja (config). Konfiguracja to plik XML, który deklaruje komponenty cyklu życia testu.
To oddzielenie cyklu życia testu ma na celu umożliwienie jego ponownego wykorzystania. Korzystając z tego projektu, Programista może raz utworzyć Test, 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 użyłaby innego odbiornika wywołania testu do przechowywania wyników testu w bazie danych. Można zaprojektować trzecią konfigurację, która będzie przeprowadzać ciągłe testy w jakimś laboratorium testowym.
Warto w tym miejscu zauważyć, że konfiguracja wraz z jej argumentami wiersza poleceń (podanymi przez uruchamiającego test) jest znana jako Command . Kiedy TF łączy polecenie z ITestDevice
i wykonuje je, kolejny obiekt nazywany jest wywołaniem . Krótko mówiąc, wywołanie obejmuje pełne wykonanie testu TF w całym jego cyklu życia.
Dodatkowe elementy konfiguracyjne
- Odzyskiwanie urządzenia : mechanizm odzyskiwania komunikacji z urządzeniem w przypadku utraty.
- Logger : zbiera przekazane dane rejestrowania.
Wyjście sceniczne i błędy
Każdy etap wywołania jest wykonywany sekwencyjnie i ma określony cel. W tej sekcji opisano typowe wyniki i błędy każdego etapu.
Dostawca kompilacji
Na tym etapie tworzony jest i wyprowadzany obiekt IBuildInfo
, który zawiera wszystkie odniesienia do plików wymaganych do skonfigurowania i uruchomienia testów.
Najczęstszym błędem na tym etapie jest niepowodzenie w pobraniu lub znalezieniu żądanych plików.
Błąd na tym etapie powoduje bezpośrednie zgłoszenie błędu i brak uruchomienia testów.
Przygotowanie celu
Na tym etapie konfigurowane są niezbędne stany testowanego obiektu docelowego. Na tym etapie można zmienić konfigurację urządzenia lub hosta zgodnie z potrzebami danego wywołania testowego.
Najczęstsze błędy na tym etapie polegają zazwyczaj na niepowodzeniu w doprowadzeniu urządzenia do danego stanu (np. nieudane flashowanie) i braku znalezienia wymaganych plików do instalacji.
Błąd na tym etapie powoduje uruchomienie czyszczenia celu, zgłoszenie błędu i brak uruchomienia testów.
Testy
Na tym etapie przeprowadzane są żądane testy na wcześniej przygotowanym celu i raportowane są wszystkie wyniki wykonania testów.
Najczęstsze błędy na tym etapie dotyczą zazwyczaj niedostępności testowanego obiektu lub wystąpienia błędu powodującego częściowe wykonanie testów. Błędy te to problemy z infrastrukturą, które wpływają na samo wykonanie testu, a nie na niepowodzenie pojedynczego przypadku testowego.
Błąd na tym etapie powoduje zatrzymanie wykonywania testu, uruchomienie czyszczenia celu, zgłoszenie błędu i uzyskanie częściowych wyników.
Raportowanie wyników
Na tym etapie raportowane są wyniki i błędy do skonfigurowanych usług (na przykład serwerów i plików lokalnych).
Chociaż poszczególni reporterzy wyników mogą mieć błędy, są od siebie odizolowani (jeden reporter nie widzi błędów drugiego). Błędy te wpływają wyłącznie na raporty wyników poszczególnych reporterów, a błędy można przeglądać w dziennikach.