Projekt Android Open Source (AOSP) udostępnia kilka narzędzi i pakietów testów do testowania różnych części implementacji. Zanim zaczniesz korzystać ze stron w tym sekcji, zapoznaj się z tymi terminami:
- Urządzenie zgodne z Androidem
- Urządzenie, na którym można uruchomić dowolną aplikację innej firmy napisaną przez zewnętrznych deweloperów za pomocą pakietu SDK i NDK Androida. Urządzenia zgodne z Androidem muszą spełniać wymagania opisane w Dokumentie definicji zgodności (CDD) i przejść Zgodność z pakietem CTS. Urządzenia zgodne z Androidem mogą korzystać z ekosystemu Androida, w tym potencjalnej licencji na Google Play, potencjalnej licencji na zestaw aplikacji i interfejsów API Google Mobile Services (GMS) oraz znaku towarowego Androida. Każdy może używać kodu źródłowego Androida, ale aby urządzenie było uznawane za część ekosystemu Androida, musi być zgodne z Androidem.
- artefakt
- Dziennik związany z kompilacją, który umożliwia rozwiązywanie problemów lokalnie.
- Dokument definicji zgodności (CDD)
- Dokument, który zawiera wymagania dotyczące oprogramowania i sprzętu dla urządzenia zgodnego z Androidem.
- Compatibility Test Suite (CTS)
Bezpłatny pakiet testów o jakości komercyjnej, który można pobrać w formie binarnej lub kodu źródłowego w AOSP. CTS to zestaw testów jednostkowych zaprojektowanych tak, aby można je było zintegrować z Twoim codziennym przepływem pracy. Celem testów CTS jest wykrywanie niezgodności i zapewnienie zgodności oprogramowania przez cały proces rozwoju.
Testy CTS i testy platform nie wykluczają się wzajemnie. Oto kilka ogólnych wskazówek:
- Jeśli test sprawdza poprawność funkcji lub zachowania interfejsu API frameworku i powinien być stosowany przez wszystkich partnerów OEM, powinien być uwzględniony w CTS.
- Jeśli test ma wychwytywać regresje podczas tworzenia platformy, a jego przeprowadzenie może wymagać uprzywilejowanych uprawnień i może być zależne od szczegółów implementacji (zgodnie z AOSP), powinien to być test platformy.
- Usługi mobilne Google (GMS)
Kolekcja aplikacji i interfejsów API Google, które można wstępnie zainstalować na urządzeniach.
- GoogleTest (GTest)
Platforma testowania i mockowania w języku C++. Pliki binarne GTest zwykle uzyskują dostęp do niższych warstw abstrakcji lub wykonują bezpośrednie operacje IPC na różnych usługach systemowych. Podejście do testowania w przypadku GTest jest zwykle ściśle powiązane z testowanym serwisem. Tabela CTS zawiera platformę GTest.
- test z instrumentacją
Specjalne środowisko wykonywania testów uruchamiane poleceniem
am instrument
, w którym docelowy proces aplikacji jest ponownie uruchamiany i inicjowany z użyciem podstawowego kontekstu aplikacji, a w maszynie wirtualnej procesu aplikacji uruchamiany jest wątek instrumentacyjny. CTS zawiera testy instrumentacji.- Logcat
Narzędzie wiersza poleceń, które tworzy dziennik wiadomości systemowych, w tym zrzuty stosu z czasu wystąpienia błędu na urządzeniu oraz wiadomości zapisane w aplikacji za pomocą klasy
Log
.- logowanie
prowadzenie dziennika, aby śledzić zdarzenia w systemie komputerowym, takie jak błędy; Rejestrowanie na Androidzie jest skomplikowane ze względu na różnorodność standardów używanych w narzędziu Logcat.
- test po przesłaniu
Test Androida, który jest wykonywany, gdy nowa poprawka jest przydzielana do wspólnej gałęzi jądra. Wpisz
aosp_kernel
jako częściową nazwę gałęzi, aby wyświetlić listę gałęzi jądra z dostępnymi wynikami. Na przykład wyniki dlaandroid-mainline
można znaleźć na stronie https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid.- test przed przesłaniem
Test służący do zapobiegania wprowadzania błędów do wspólnych jąder.
- Federacja handlowa
Nazwa ta odnosi się do ciągłego testowania, czyli frameworku do przeprowadzania testów na urządzeniach z Androidem. Na przykład Tradefed służy do uruchamiania testów Compatibility Test Suite i Vendor Test Suite.
- Zestaw testów dostawcy (VTS)
Zestaw rozbudowanych funkcji do testowania Androida, promowania procesu programowania opartego na testowaniu oraz automatyzacji testów warstwy abstrakcji sprzętowej (HAL) i jądra systemu operacyjnego.
Typy testów platformy
Test platformy zwykle współdziała z co najmniej 1 usługą systemu Android lub warstwą HAL, sprawdza funkcje testowanego obiektu i sprawdza poprawność wyników testu. Test platformy może:
- (Typ 1) Wykorzystywanie interfejsów API frameworku za pomocą frameworku Androida. Do interfejsów API, których dotyczy ta funkcja, należą:
- publiczne interfejsy API przeznaczone do aplikacji innych firm,
- Ukryte interfejsy API przeznaczone dla aplikacji uprzywilejowanych, czyli interfejsy API systemu lub prywatne interfejsy API (
@hide
,protected
,package private
)
- (Typ 2) Wywołaj usługi systemowe Androida bezpośrednio za pomocą nieprzetworzonego wiązania lub serwerów proxy IPC.
- (Typ 3) Interakcja bezpośrednio z listami HAL za pomocą niskopoziomowych interfejsów API lub interfejsów IPC.
Testy typu 1 i 2 to zwykle testy instrumentacji, a testy typu 3 to zwykle testy G.
Co dalej?
Oto lista dokumentów, które możesz przeczytać, aby uzyskać więcej informacji:
Jeśli nie znasz architektury Androida, zapoznaj się z artykułem Omówienie architektury.
Jeśli tworzysz urządzenie zgodne z Androidem, zapoznaj się z omówieniem Programu zgodności z Androidem.
Aby zintegrować testy instrumentacji, testy funkcjonalne, testy danych i testy hosta JAR z usługą ciągłego testowania platformy, zapoznaj się z przepływem pracy dotyczącym tworzenia testów.
Aby wykrywać luki w zabezpieczeniach i zwiększać odporność urządzeń na nie, zapoznaj się z artykułem Testowanie bezpieczeństwa.
Więcej informacji o testowaniu implementacji HAL i jądra znajdziesz w artykule Pakiet testów dostawcy (VTS) i infrastruktura.
Aby dowiedzieć się więcej o testowaniu aplikacji, przeczytaj artykuł Podstawy testowania aplikacji na Androida i wykonaj Android w Kotlinie zaawansowanym 05.1:podstawy testowania, korzystając z próbek.
Dowiedz się więcej o podstawowym testowaniu przed przesłaniem, które jest dostępne za pomocą haków repozytorium. Za pomocą tych funkcji możesz uruchamiać narzędzia do sprawdzania kodu, sprawdzać formatowanie i uruchamiać testy jednostkowe przed kontynuowaniem, np. przed przesłaniem zatwierdzenia. Te uchwyty są domyślnie wyłączone. Więcej informacji znajdziesz w artykule AOSP Preupload Hooks (w języku angielskim).
Więcej informacji o logowaniu znajdziesz w artykule Omówienie logowania.
Aby dowiedzieć się, jak debugować kod na Androida, przeczytaj artykuł Debugowanie natywnego kodu na platformę Androida.