Android Open Source Project (AOSP) udostępnia kilka narzędzi i pakietów testowych do testowania różnych elementów implementacji. Przed użyciem stron w tej musisz znać następujące terminy:
- Urządzenie zgodne z Androidem
- Urządzenie, na którym można uruchomić dowolną aplikację innej firmy napisaną przez dewelopera za pomocą pakietu SDK na Androida i pakietu NDK. Urządzenia zgodne z Androidem muszą spełniać wymagania wymagania programu Dokument definicji zgodności (CDD) i przekazać Compatibility Test Suite (CTS). Zgodność z Androidem urządzeń mogą uczestniczyć w ekosystemie Androida, który obejmuje m.in. potencjalna licencja na Google Play, potencjalna licencja pakietu Usług mobilnych Google (GMS), aplikacji i interfejsów API oraz użycia znaku towarowego Android. Każdy jest mile widziany wykorzystują kod źródłowy Androida, ale są uważane za część ekosystemu Androida, urządzenie musi być zgodne z Androidem.
- artefakt
- Dziennik związany z kompilacją, który umożliwia lokalne rozwiązywanie problemów.
- Dokument definicji zgodności (CDD)
- Dokument z listą wymagań dotyczących oprogramowania i sprzętu do urządzenie z Androidem.
- Compatibility Test Suite (CTS)
Bezpłatny komercyjny pakiet testów dostępny do pobrania jako plik binarny jako źródła w AOSP. CTS to zestaw testów jednostkowych zaprojektowanych do integracji codzienną pracę. Celem narzędzia CTS jest wykrycie niezgodności. zapewnić zgodność oprogramowania przez cały proces programowania.
Pomiar CTS i testy platformy nie wzajemnie się wykluczają. Oto kilka ogólnych wytycznymi:
- Jeśli test ma potwierdzić poprawność funkcji lub zachowań platformy interfejsu API, a test powinien być egzekwowany u partnerów OEM, a także w klasyfikacji CTS.
- Jeśli test ma wychwytywać regresje podczas tworzenia platformy, i mogą wymagać uprzywilejowanych uprawnień do przeprowadzenia i mogą być zależne w szczegółach implementacji (zgodnie z publikacją AOSP). Musi to być platforma test.
- Usługi mobilne Google (GMS)
Zbiór aplikacji i interfejsów API Google, które można wstępnie zainstalować na urządzeniach.
- Test Google (GTest)
Platforma do testowania i ściągania w C++. Zwykle pliki binarne GTest uzyskać dostęp do warstw abstrakcji niższego poziomu lub wykonać nieprzetworzony wskaźnik IPC w odniesieniu do różnych systemów usług Google. Metoda testowania w GTest jest zwykle ściśle powiązana z testowanej usługi. Tabela CTS zawiera platformę GTest.
- test instrumentacji
Specjalne środowisko wykonywania testów uruchamiany przez polecenie
am instrument
, w którym docelowy proces aplikacji jest uruchamiany ponownie i zainicjowany z podstawowym kontekstem aplikacji, wątek instrumentacji uruchamia się w wirtualnym procesie aplikacji na komputerze. Pakiet CTS zawiera testy z instrumentacją.- LogCat
Narzędzie wiersza poleceń tworzące dziennik komunikatów systemowych, w tym ślady stosu błędów oraz komunikaty o błędach napisanych z poziomu aplikacji za pomocą klasy
Log
.- logowanie
Korzystanie z dziennika do śledzenia zdarzeń systemowych komputera, takich jak jako błędów. Logowanie się na urządzeniu z Androidem jest skomplikowane ze względu na połączenie standardów są łączone w narzędziu Logcat.
- test po przesłaniu
Test Androida, który jest wykonywany, gdy nowa poprawka jest instalowana jaka jest wspólna gałąź jądra. Wpisanie
aosp_kernel
jako częściowej nazwy gałęzi pozwala może wyświetlić listę gałęzi jądra z dostępnymi wynikami. Na przykład wyniki adresu e-mailandroid-mainline
można znaleźć na stronie https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid- test przed przesłaniem
Test, który ma zapobiegać wprowadzaniu błędów do systemu i popularnych jąder.
- Federacja handlowa
Inaczej nazywany Tradefed (test ciągły). platforma zaprojektowana do przeprowadzania testów na urządzeniach z Androidem. Przykład: Tradefed służy do przeprowadzania testów Compatibility Test Suite i Vendor Test Suite.
- Vendor Test Suite (VTS)
Zestaw zaawansowanych funkcji do Testowanie na Androidzie, promowanie procesu programowania nastawionego na testy i automatyzacja w warstwie abstrakcji sprzętowej (HAL) i w jądrze systemu operacyjnego.
Typy testów platform
Test platformy zwykle współdziała z co najmniej 1 systemem Android lub warstwy HAL, ćwiczy funkcji testowanego podmiotu i potwierdza ich poprawność wyniku testu. Test platformy może:
- (Typ 1) Interfejsy API platformy do ćwiczeń przy użyciu platformy Androida. Określone interfejsy API
mogą obejmować:
- publiczne interfejsy API przeznaczone do aplikacji innych firm,
- Ukryte interfejsy API przeznaczone dla aplikacji z podwyższonymi uprawnieniami, czyli systemowe interfejsy API,
prywatne interfejsy API (
@hide
, lubprotected
,package private
)
- (Typ 2) Wywołaj usługi systemowe Androida przy użyciu nieprzetworzonego wiązania lub serwerów proxy IPC bezpośrednio.
- (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 z narzędziami, a testów typu 3 – zwykle GTests.
Co dalej?
Oto lista dokumentów, z którymi możesz się zapoznać, aby uzyskać bardziej szczegółowe informacje:
Jeśli nie znasz jeszcze architektury Androida, zobacz Omówienie architektury.
Jeśli tworzysz urządzenie zgodne z Androidem, zapoznaj się z artykułem omówienie Programu zgodności z Androidem.
integrowanie testów z instrumentacją, testami funkcjonalnymi, wskaźnikowymi i testami hosta JAR w usługę ciągłego testowania na platformie, zobacz Proces tworzenia testów.
Aby wykryć i zabezpieczyć urządzenia przed lukami w zabezpieczeniach, Więcej informacji: Testowanie zabezpieczeń.
Więcej informacji o testowaniu implementacji HAL i jądra znajdziesz w tych artykułach: Vendor Test Suite (VTS) i infrastruktura
Informacje o testowaniu aplikacji znajdziesz w artykule Podstawy testowania Androida i przeprowadzić testowanie zaawansowanych aplikacji na Androida w kotlinie 05.1. Podstawy za pomocą przykłady.
Poznaj podstawowe testy przed przesłaniem dostępne za pomocą punktów zaczepienia repozytorium. Te punkty zaczepienia mogą służyć do uruchamiania linterów, sprawdzania formatowania i jednostki wyzwalacza przed kontynuowaniem, na przykład przesłaniem zatwierdzenia. Te punkty zaczepienia są wyłączone domyślnie. Więcej informacji znajdziesz w artykule na temat wstępnego przesyłania AOSP Elementy przykuwające uwagę.
Więcej informacji znajdziesz w artykule Omówienie logowania.
Aby dowiedzieć się, jak debugować kod Androida, przeczytaj artykuł Debugowanie natywnego kodu platformy Androida