Trade Federation (w skrócie TF) to platforma ciągłych testów przeznaczona do przeprowadzania testów na urządzeniach z Androidem. Na przykład narzędzie Tradefed służy do uruchamiania Compatibility Test Suite (CTS) i Vendor Test Suite (VTS).
Trade Federation to aplikacja w Javie, która działa na komputerze hosta i komunikuje się z jednym lub wieloma urządzeniami z Androidem za pomocą biblioteki ddmlib (biblioteki obsługującej DDMS) przez adb.
Poniżej znajdziesz listę niektórych głównych funkcji TF oraz kilka przykładowych zastosowań. Jeśli jednak chcesz od razu zacząć, przejdź na stronę Zacznij tutaj.
Funkcje
- modułowy, elastyczny i skalowalny projekt;
- ma wbudowane wsparcie dla wielu różnych typów testów Androida: instrumentacji, uiautomator, natywnych testów gtest, testów JUnit hostowanych itp.
- zapewnia niezawodność i mechanizmy odzyskiwania na poziomie adb
- obsługuje planowanie i przeprowadzanie testów na wielu urządzeniach równolegle;
Najbardziej aktualne informacje o sposobie uruchamiania dotychczasowych testów, takich jak instrumentacja, znajdziesz w artykule Testowanie za pomocą TF.
Przykłady zastosowań
Dzięki modułowej budowie usługę Trade Federation można łatwo wdrożyć w środowiskach z dotychczasową infrastrukturą kompilacji, testowania i raportowania. Poniżej podajemy kilka przykładowych zastosowań, w których tradefed może umożliwić wydajne i skalowalne testowanie.
Najpierw warto przyjrzeć się potencjalnym zastosowaniom pod kątem pytania „które części są modyfikowalne, a które są statyczne?”. Na przykład producent OEM może modyfikować framework, system i sprzęt, ale ma niewielki wpływ na istniejące aplikacje lub nie ma go wcale. Z drugiej strony deweloper aplikacji może modyfikować aplikację, ale ma niewielką kontrolę nad większością aspektów systemu lub frameworku.
W związku z tym w każdym przypadku użycia dany element będzie miał różne cele testów i różne opcje w przypadku niepowodzenia testów. Pomimo tych różnic Trade Federation może pomóc w zwiększeniu efektywności, elastyczności i możliwości skalowania procesów testowania.
Producent OEM urządzenia
Producent OEM urządzenia tworzy sprzęt i często dostosowuje system Android i ramy, aby działały prawidłowo na tym sprzęcie. Producent 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 w ramach nie zakłócą zgodności z istniejącymi aplikacjami.
Producent OEM może wdrożyć moduł programowania urządzenia, który będzie uruchamiany na etapie konfiguracji docelowej cyklu życia. Podczas działania moduł ten będzie mieć pełną kontrolę nad urządzeniem, co pozwoli mu na wymuszenie uruchomienia programu rozruchowego, zapisania danych i następnie ponownego uruchomienia urządzenia w trybie przestrzeni użytkownika. W połączeniu z modułem do integracji z systemem ciągłej kompilacji pozwoli to producentom OEM uruchamiać testy na urządzeniu podczas wprowadzania zmian w oprogramowaniu układowym na poziomie systemu i platformach na poziomie Javy.
Po uruchomieniu urządzenia OEM może użyć istniejących testów opartych na JUnit lub napisać nowe testy, aby zweryfikować interesującą go funkcjonalność. W ramach tego rozwiązania można też napisać co najmniej 1 moduł raportowania wyników, który będzie się łączyć z dotychczasowymi repozytoriami wyników testów lub raportować wyniki bezpośrednio (np. e-mailem).
Deweloper aplikacji
Deweloperzy aplikacji tworzą aplikacje, które muszą działać prawidłowo na różnych wersjach platform i na różnych urządzeniach. Jeśli problem występuje w konkretnej wersji platformy lub na konkretnym urządzeniu, jedynym rozwiązaniem jest dodanie sposobu obejścia problemu i dalsze działanie. W przypadku większych firm proces testowania może zostać włączony do ciągłego procesu kompilacji. W przypadku mniejszych deweloperów może to być wykonywane okresowo lub ręcznie.
Większość deweloperów aplikacji korzysta z modułów testowania instalacji plików APK, które są już dostępne w TF. Dostępna jest 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. Pamiętaj, że ta druga wersja będzie nadal działać prawidłowo z dowolną liczbą instancji TF na tym samym komputerze hosta.
Z powodu umiejętności TF w zakresie obsługi wielu urządzeń można łatwo skategoryzować każdy wynik testu według typu urządzenia użytego do tego testu. W związku z tym TF może potencjalnie wygenerować dwuwymiarową (lub wielowymiarową) tablicę zgodności dla każdej kompilacji aplikacji.
Usługa testowania
Usługa testowa może na przykład umożliwiać deweloperom aplikacji przesyłanie aplikacji i uruchamianie testów na urządzeniach z zainstalowanymi narzędziami do pomiaru zużycia energii, aby określić zużycie energii przez aplikację. Różni się to od 2 poprzednich przypadków użycia, ponieważ twórca usługi nie kontroluje urządzeń ani aplikacji, które są uruchamiane.
Ponieważ Trade Federation może uruchamiać dowolną klasę Java implementującą prosty interfejs IRemoteTest
, napisanie sterowników, które mogą koordynować działanie zewnętrznego sprzętu z testem uruchamianym na urządzeniu, jest bardzo proste. Sam sterownik może tworzyć wątki, wysyłać żądania do innych serwerów lub wykonywać inne czynności. Prostota i wszechstronność interfejsu raportowania wyników (ITestInvocationListener
) sprawia, że do standardowego kanału raportowania wyników można łatwo dołączać dowolne wyniki testów (w tym np. liczbowe dane o mocy).