Cykl życia testów TF

Cykl życia testu wykonywanego za pomocą Trade Federation składa się z 4 oddzielnych etapów, które zostały opracowane na podstawie formalnie zdefiniowanych interfejsów.

Zdefiniowane interfejsy

  • Dostawca kompilacji: udostępnia kompilację do testowania, pobierając w razie potrzeby odpowiednie pliki.
  • Target Preparer: przygotowuje środowisko testowe, w tym ewentualnie instalację oprogramowania i konfigurację urządzenia.
  • Test: wykonuje testy i zbiera ich wyniki. Może to być dowolny test JUnit, chociaż nasz interfejs IRemoteTest został zaprojektowany specjalnie pod kątem współpracy z otoczeniem Trade Federation.
  • Wynik wywołania testu (raportowanie wyników): nasłuchuje wyników testu, zwykle w celu ich przekazania do repozytorium lub wyświetlenia w Test Runnerze.

Podstawowym elementem testowania w TF jest konfiguracja (config). Konfiguracja to plik XML, który określa komponenty cyklu życia testu.

Takie rozdzielenie cyklu życia testu ma umożliwić jego ponowne użycie. Dzięki temu rozwiązaniu deweloper może utworzyć test tylko raz, a integrator może tworzyć różne konfiguracje do jego uruchamiania w różnych środowiskach. Na przykład mogą utworzyć konfigurację, która przeprowadzi test na lokalnym komputerze i wyświetli wynik na wyjściu standardowym. Następnie można utworzyć drugą konfigurację, która będzie wykonywać ten sam test, ale używać innego odbiornika wywołania testu do przechowywania wyników testu w bazie danych. Trzecia konfiguracja może być zaprojektowana tak, aby test był przeprowadzany w ciągły sposób w laboratorium testowym.

Warto pamiętać, że konfiguracja wraz z argumentami wiersza poleceń (dostarczone przez Test Runner) jest nazywana poleceniem. Gdy TF łączy polecenie z elementem ITestDevice i wykonuje je, kolejny obiekt jest nazywany wywołaniem. Krótko mówiąc, wywołanie obejmuje pełne wykonanie testu TF przez cały jego cykl życia.

Dodatkowe komponenty konfiguracji

  • Odzyskiwanie urządzenia: mechanizm umożliwiający odzyskanie komunikacji z urządzeniem w przypadku jego utraty.
  • Logger: zbiera dane logowania tradefed.

Wyniki i błędy etapu

Każdy etap wywołania jest wykonywany sekwencyjnie i ma określony cel. W tej sekcji opisano typowe dane wyjściowe i błędy na poszczególnych etapach.

Dostawca kompilacji

Na tym etapie tworzony jest obiekt IBuildInfo , który zawiera wszystkie wymagane pliki odniesienia do konfigurowania i uruchamiania testów.

Najczęstszym błędem na tym etapie jest niemożność pobrania lub znalezienia żądanych plików.

Błąd na tym etapie powoduje bezpośrednie zgłoszenie błędu i nie powoduje uruchomienia żadnych testów.

Przygotowanie docelowych

Na tym etapie konfigurujesz stany docelowe, które będą testowane. Na tym etapie można zmienić ustawienia urządzenia lub hosta w sposób odpowiedni do danego wywołania testowego.

Typowe błędy na tym etapie to zwykle nieprawidłowe skonfigurowanie urządzenia (np. nieudane flashowanie) i niemożność znalezienia plików wymaganych do konfiguracji.

Błąd na tym etapie powoduje uruchomienie czyszczenia docelowego, zgłoszenie błędu i brak testów.

Testy

Na tym etapie żądane testy są przeprowadzane na wcześniej przygotowanym obiekcie docelowym i sporządzany jest raport ze wszystkimi wynikami ich wykonania.

Na tym etapie zwykle występują błędy związane z niedostępnością testowanego obiektu lub błędem powodującym częściowe wykonanie testów. Są to błędy infrastruktury, 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 docelowego czyszczenia, zgłoszenie błędu i uzyskanie częściowych wyników.

Raportowanie wyników

Na tym etapie wyniki i błędy są przekazywane do skonfigurowanych usług (np. serwerów i plików lokalnych).

Chociaż poszczególne raporty wyników mogą zawierać błędy, są one od siebie odseparowane (jeden raport nie zawiera błędów z innego). Te błędy wpływają tylko na raportowanie wyników przez danego zgłaszającego, a błędy te można wyświetlić w dziennikach.