Cykl życia testu wykonywanego za pomocą Trade Federation 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.
- Target Preparation : Przygotowuje środowisko testowe, w tym ewentualnie 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łań testowych (raportowanie wyników) : nasłuchuje wyników testów, zwykle w celu przekazania wyników testów do repozytorium lub wyświetlenia ich Biegaczowi Testów.
Podstawową jednostką testową 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 ponownego użycia. 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. Mogą na przykład 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 detektora wywołań testowych do przechowywania wyników testów w bazie danych. Trzecia konfiguracja może być zaprojektowana do ciągłego uruchamiania tego testu z laboratorium testowego.
W tym miejscu warto zauważyć, że konfiguracja wraz z argumentami wiersza polecenia (podane przez program uruchamiający testy) jest znana jako Command . Kiedy TF łączy Command z ITestDevice
i wykonuje je, kolejny obiekt jest znany jako Invocation . Krótko mówiąc, Inwokacja obejmuje wykonanie kompletnego testu TF w całym jego cyklu życia.
Dodatkowe elementy konfiguracji
- Odzyskiwanie urządzenia : mechanizm przywracania komunikacji urządzenia w przypadku jej utraty.
- Logger : gromadzi dane rejestrowania w handlu.
Wyjście sceny i błędy
Każdy etap wywołania jest wykonywany sekwencyjnie i ma określony cel. W tej sekcji opisano typowe dane wyjściowe i błędy każdego etapu.
Dostawca kompilacji
Ten etap tworzy i wyprowadza obiekt IBuildInfo
, który zawiera wszystkie wymagane odwołania do plików w celu skonfigurowania i uruchomienia testów.
Najczęstszym błędem na tym etapie jest niepowodzenie pobrania lub znalezienia żądanych plików.
Błąd na tym etapie skutkuje bezpośrednim zgłoszeniem błędu i brakiem uruchomienia testów.
Przygotowanie celu
Ten etap określa niezbędne stany testowanego celu. Na tym etapie można zmienić konfigurację urządzenia lub hosta zgodnie z potrzebami dla danego wywołania testowego.
Typowe błędy na tym etapie zwykle polegają na nieustawieniu urządzenia w zadanym stanie (na przykład nieudane flashowanie) i nieznalezieniu wymaganych plików do konfiguracji.
Błąd na tym etapie skutkuje uruchomieniem czyszczenia celu, zgłoszeniem błędu i brakiem uruchomienia testów.
Testy
Ten etap uruchamia wymagane 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. Te błędy to problemy z infrastrukturą, które wpływają na samo wykonanie testu, w przeciwieństwie do awarii pojedynczego przypadku testowego.
Błąd na tym etapie skutkuje zatrzymaniem wykonywania testu, uruchomieniem czyszczenia celu, zgłoszeniem błędu i uzyskaniem częściowych wyników.
Raportowanie wyników
Ten etap zgłasza wyniki i błędy skonfigurowanym usługom (na przykład serwerom i plikom lokalnym).
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 mają wpływ tylko na raportowanie wyników przez pojedynczego zgłaszającego, a błędy można przeglądać w dziennikach.
,Cykl życia testu wykonywanego za pomocą Trade Federation 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.
- Target Preparation : Przygotowuje środowisko testowe, w tym ewentualnie 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łań testowych (raportowanie wyników) : nasłuchuje wyników testów, zwykle w celu przekazania wyników testów do repozytorium lub wyświetlenia ich Biegaczowi Testów.
Podstawową jednostką testową 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 ponownego użycia. 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. Mogą na przykład 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 detektora wywołań testowych do przechowywania wyników testów w bazie danych. Trzecia konfiguracja może być zaprojektowana do ciągłego uruchamiania tego testu z laboratorium testowego.
W tym miejscu warto zauważyć, że konfiguracja wraz z argumentami wiersza polecenia (podane przez program uruchamiający testy) jest znana jako Command . Kiedy TF łączy Command z ITestDevice
i wykonuje je, kolejny obiekt jest znany jako Invocation . Krótko mówiąc, Inwokacja obejmuje wykonanie kompletnego testu TF w całym jego cyklu życia.
Dodatkowe elementy konfiguracji
- Odzyskiwanie urządzenia : mechanizm przywracania komunikacji urządzenia w przypadku jej utraty.
- Logger : gromadzi dane rejestrowania w handlu.
Wyjście sceny i błędy
Każdy etap wywołania jest wykonywany sekwencyjnie i ma określony cel. W tej sekcji opisano typowe dane wyjściowe i błędy każdego etapu.
Dostawca kompilacji
Ten etap tworzy i wyprowadza obiekt IBuildInfo
, który zawiera wszystkie wymagane odwołania do plików w celu skonfigurowania i uruchomienia testów.
Najczęstszym błędem na tym etapie jest niepowodzenie pobrania lub znalezienia żądanych plików.
Błąd na tym etapie skutkuje bezpośrednim zgłoszeniem błędu i brakiem uruchomienia testów.
Przygotowanie celu
Ten etap określa niezbędne stany testowanego celu. Na tym etapie można zmienić konfigurację urządzenia lub hosta zgodnie z potrzebami dla danego wywołania testowego.
Typowe błędy na tym etapie zwykle polegają na nieustawieniu urządzenia w zadanym stanie (na przykład nieudane flashowanie) i nieznalezieniu wymaganych plików do konfiguracji.
Błąd na tym etapie skutkuje uruchomieniem czyszczenia celu, zgłoszeniem błędu i brakiem uruchomienia testów.
Testy
Ten etap uruchamia wymagane 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. Te błędy to problemy z infrastrukturą, które wpływają na samo wykonanie testu, w przeciwieństwie do awarii pojedynczego przypadku testowego.
Błąd na tym etapie skutkuje zatrzymaniem wykonywania testu, uruchomieniem czyszczenia celu, zgłoszeniem błędu i uzyskaniem częściowych wyników.
Raportowanie wyników
Ten etap zgłasza wyniki i błędy skonfigurowanym usługom (na przykład serwerom i plikom lokalnym).
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 mają wpływ tylko na raportowanie wyników przez pojedynczego zgłaszającego, a błędy można przeglądać w dziennikach.