Przegląd federacji handlowych

Trade Federation (Tradefed lub w skrócie TF) to ciągłe środowisko testowe przeznaczone do uruchamiania testów na urządzeniach z Androidem. Na przykład Tradefed jest używany do uruchamiania zestawu testów zgodności (CTS) i zestawu testów dostawcy (VTS) .

Trade Federation to aplikacja Java, która działa na komputerze-hoście i komunikuje się z jednym lub wieloma urządzeniami z Androidem za pomocą ddmlib (biblioteki za DDMS) przez adb.

Poniżej wymieniliśmy niektóre z głównych funkcji TF, wraz z kilkoma przykładowymi przypadkami użycia. To powiedziawszy, jeśli chcesz od razu wskoczyć i zacząć, możesz od razu przejść do strony Zacznij tutaj .

funkcje

  • modułowa, elastyczna, skalowalna konstrukcja
  • ma wbudowane wsparcie dla uruchamiania wielu różnych typów testów Androida: instrumentacja , uiautomator , natywny / gtest, JUnit oparty na hoście itp.
  • zapewnia niezawodność i mechanizmy odzyskiwania oprócz adb
  • obsługuje planowanie i uruchamianie testów na wielu urządzeniach równolegle

Zobacz Testowanie za pomocą TF, aby uzyskać najbardziej aktualne informacje o tym, jak uruchomić istniejące testy, takie jak oprzyrządowanie .

Przypadków użycia

Modułowość Trade Federation sprawia, że ​​można łatwo dopasować się do środowisk z istniejącą infrastrukturą kompilacji, testowania i raportowania. Poniżej podajemy kilka przykładowych przypadków użycia, w których handel mógłby umożliwić wydajne, skalowalne praktyki testowe.

Po pierwsze, warto rozważyć krajobraz potencjalnych przypadków użycia pod kątem pytania „które części są modyfikowalne, a które statyczne?” Na przykład producent OEM urządzenia może modyfikować strukturę, system i sprzęt, ale ma niewielki lub żaden wpływ na istniejące aplikacje. Z drugiej strony programista aplikacji może modyfikować aplikację, ale ma niewielką kontrolę nad większością aspektów systemu lub frameworka.

W rezultacie jednostka w każdym przypadku użycia będzie miała różne cele testowe i będzie miała różne opcje w przypadku zestawu niepowodzeń testów. Pomimo tych różnic Trade Federation może pomóc uczynić każdy z procesów testowych wydajnym, elastycznym i skalowalnym.

Urządzenie OEM

Producent OEM urządzenia tworzy sprzęt i często dostosowuje system Android i struktury, aby działały dobrze na tym sprzęcie. OEM może dążyć do osiągnięcia tych celów, zachowując stabilność i wydajność na poziomie sprzętu i systemu oraz upewniając się, że zmiany struktury nie naruszają zgodności z istniejącymi aplikacjami.

Producent OEM może zaimplementować moduł flashowania urządzenia, który będzie wykonywany na etapie konfiguracji docelowej w cyklu życia . Moduł ten miałby pełną kontrolę nad urządzeniem w czasie jego wykonywania, co pozwoliłoby mu potencjalnie wymusić włączenie urządzenia do programu ładującego, flashowanie, a następnie wymuszenie ponownego uruchomienia urządzenia w trybie przestrzeni użytkownika. W połączeniu z modułem łączącym się w system ciągłej kompilacji, pozwoliłoby to producentowi OEM na uruchamianie testów na swoim urządzeniu podczas wprowadzania zmian w oprogramowaniu układowym na poziomie systemu i strukturach na poziomie Java.

Gdy urządzenie zostanie w pełni uruchomione, producent OEM będzie mógł wykorzystać istniejące testy oparte na JUnit lub napisać nowe, aby zweryfikować funkcjonalność będącą przedmiotem zainteresowania. Wreszcie, mogą napisać jeden lub więcej modułów raportowania wyników, aby powiązać je z istniejącymi repozytoriami wyników testów lub bezpośrednio raportować wyniki (na przykład pocztą elektroniczną ).

Deweloper aplikacji

Programista aplikacji tworzy aplikację, która musi dobrze działać na różnych platformach i na różnych urządzeniach. Jeśli problem pojawi się na określonej wersji platformy i / lub urządzeniu, jedynym rozwiązaniem jest dodanie obejścia i przejście dalej. W przypadku większych programistów proces testowania można włączyć do ciągłej sekwencji kompilacji. W przypadku mniejszych programistów może być uruchamiany okresowo lub ręcznie.

Większość programistów aplikacji użyłaby modułów instalacyjnych testów apk, które już istnieją w TF. Istnieje wersja, która instaluje się z lokalnego systemu plików , a także wersja, która może instalować apki pobrane z usługi kompilacji . Należy zauważyć, że ta ostatnia wersja nadal działałaby poprawnie z dowolnie wieloma instancjami TF działającymi na tym samym komputerze hosta.

Ze względu na biegłość TF w posługiwaniu się wieloma urządzeniami, byłoby łatwo sklasyfikować każdy wynik testu według typu urządzenia, które zostało użyte do tego testu. Zatem TF może potencjalnie wygenerować dwuwymiarową (lub wielowymiarową) macierz kompatybilności dla każdej kompilacji aplikacji.

Usługa testowania

Usługa testowa może na przykład pozwolić programistom aplikacji na przesyłanie aplikacji i uruchamianie testów na urządzeniach wyposażonych w narzędzia do pomiaru mocy w celu określenia zużycia energii przez aplikację. Różni się to od poprzednich dwóch przypadków użycia tym, że konstruktor usług nie kontroluje urządzeń ani aplikacji, które są uruchamiane.

Ponieważ Trade Federation może uruchamiać każdą klasę Java, która implementuje prosty interfejs IRemoteTest , napisanie sterowników, które mogą koordynować jakiś zewnętrzny element sprzętu z przypadkiem testowym, który jest uruchamiany na urządzeniu, jest trywialne. Sam sterownik może tworzyć wątki, wysyłać żądania do innych serwerów lub robić wszystko, czego może potrzebować. Co więcej, prostota i wszechstronność interfejsu raportowania wyników, ITestInvocationListener , oznacza, że ​​równie łatwo jest przedstawić dowolne wyniki testów (w tym na przykład liczbowe wskaźniki mocy) w standardowym potoku raportowania wyników.