Program zgodności z Androidem jest kluczowym czynnikiem, który zapewnia pozytywne opinie na temat ekosystemu Androida. CTS to kluczowe narzędzie do zapewnienia jakości zgodności na dużą skalę. Zespół Androida stale ulepsza narzędzie CTS i zakres testów. Regularne dodawanie przypadków testowych znacznie poprawiło jakość zgodnych urządzeń.
Pytania ogólne
Ta sekcja zawiera odpowiedzi na najczęstsze pytania dotyczące CTS.
Co obejmuje test CTS?
CTS sprawdza, czy wszystkie obsługiwane interfejsy API o ściskiem typie na Androidzie są obecne i działają prawidłowo. CTS testuje też inne zachowania systemu niezwiązane z interfejsem API, np. cykl życia i wydajność aplikacji.
Jaka jest licencja na CTS?
Testy CTS są objęte tą samą licencją Apache Software License 2.0, której używa większość aplikacji na Androida.
Czy kodeki są zweryfikowane przez CTS?
Tak. Wszystkie wymagane kodeki są weryfikowane przez CTS.
Pytania dotyczące testów
W tej sekcji znajdziesz odpowiedzi na najczęstsze pytania, które pomogą Ci skuteczniej przeprowadzać testy CTS.
Czym różni się podział na segmenty CTS od podziału na segmenty TF?
Fragmentacja CTS i fragmentacja TF to zupełnie różne plany testów oparte na innej bazie kodu infrastruktury testowej. Polecenie uruchamiania jest takie samo w różnych wersjach, ale wynik fragmentacji działa inaczej. Podział CTS przypisuje testy do urządzeń testowanych w ten sposób:
- Polecenie: uruchom polecenie cts
- Konfiguracja dla Androida 8.1 i starszych wersji: /tools/cts-tradefed/res/config/cts.xml
Fragmentacja TF dynamicznie przypisuje przypadki testowe do dostępnych urządzeń DUT w ten sposób:
- Polecenie: run cts
- Konfiguracja dla Androida 9: /platform/test/suite_harness/+/pie-cts-dev/tools/cts-tradefed/res/config/cts-suite.xml
Jakie wymagania należy spełnić, aby urządzenie obsługiwało wiele interfejsów ABI?
Urządzenie musi przejść wszystkie testy CTS i weryfikatora CTS dla każdego trybu ABI, który zgodnie z deklaracją obsługuje. Dlatego konieczne jest uruchomienie aplikacji dla określonych ABI. Wytyczne dotyczące wielu ABI:
- W przypadku pakietów CTS i CTS Verifier dostępne są wersje ARM i x86 dla każdej architektury. Każdy z nich może obsługiwać tryb 32- lub 64-bitowy.
- W przypadku testów CTS, jeśli urządzenie obsługuje zarówno ARM, jak i x86, musi przejść testy CTS ARM i x86.
Patrz CDD 3.3.1. Interfejsy binarne aplikacji wymagania dotyczące interfejsu ABI w ramach CDD.
Czy aby skrócić czas wykonywania testu, wystarczy uruchomić go tylko na podstawowym ABI (np. 64-bitowym)?
Nie. Aplikacja na Androida działa na własnym środowisku uruchomieniowym 32- lub 64-bitowym. Rzeczywisty kod maszynowy, ścieżka kodu i stan różnią się od 32 do 64. Jeśli pominiesz 1 tryb, obejmie to tylko 50% interfejsu ABI urządzenia.
Dlaczego tak wiele przypadków testowych jest oznaczonych jako Niewykonane?
Zamiast liczby Nie wykonano sprawdź liczbę Module Done.
W poprzednich wersjach moduły CTS były zbyt agresywne, zanim zostały ukończone, jako Moduł ukończony. Dlatego liczba Gotowe moduły została zgłoszona bez ukończenia wszystkich testów, nawet jeśli na niektórych urządzeniach wystąpiły problemy. Nowa jawnica jest bardziej zachowawcza i informuje o większej liczbie testów z stanem Nie wykonano, gdy wystąpi problem.
Moduł uruchomiony do końca zgłasza w ostatnim wywołaniu (done="false") w raporcie Moduł nie został ukończony w ramach tych działań:
- Testowanie modułu zostało przerwane z powodu problemu z połączeniem urządzenia.
- Nie wszystkie oczekiwane testy modułu zostały przeprowadzone.
Ponownie spróbuj (użyj opcji
-r/--retry
) z dodatkowymi opcjami filtrowania, takimi jak:- --filtr-uwzględnij
- --exclude-filter
- -t/--test (Opcja nie jest jeszcze obsługiwana w przypadku ponawiania)
- --retry-type nie powiodło się
- --subplan
Aby uzyskać stan Modułu ukończonego (done="true") dla tych modułów, spróbuj wykonać te czynności w przypadku ostatniego wywołania:
run retry --retry <session_id> for Android 9 and later versions
run cts --retry <session_id> for Android 8.1 and previous versions
Moduł, który został wykonany bez żadnych problemów wymienionych wcześniej (nawet z 0 pozostałymi testami), jest oznaczony w nowym raporcie jako Module Done (Moduł wykonany).
Wyjątki
- W przypadku CtsNAPITestCases występuje znany problem z powodu ograniczenia liczby argumentów w systemie Linux/OS.
Moduł można uruchomić osobno, korzystając bezpośrednio z
run cts -m CtsNNAPITestCases
.
Jak uniknąć problemów z przygotowaniem do testu za zaporą sieciową firmy?
Wszystkie automatyczne pakiety testów próbują pobrać podczas działania pliki multimedialne CTS lub pliki logiki biznesowej. W wielu środowiskach korporacyjnych jest to zwykle zapora ogniowa i serwer proxy, co powoduje niepowodzenie przygotowania do testu. Wykonaj ten wiersz lub dodaj go do pliku .profile (w Ubuntu).
export JAVA_TOOL_OPTIONS='-Djava.net.useSystemProxies=true'
Czy potrzebuję karty SIM do usługi CTS dla bezpiecznego elementu?
To, czy karta SIM jest potrzebna do przeprowadzenia testu, zależy od tego, czy urządzenie testowe obsługuje tę funkcję.
- Jeśli Twoje urządzenie NIE musi obsługiwać aplikacji na Androida z dostępem do bezpiecznych elementów – zarówno w UICC (np. karcie SIM), rozpowszechnianych przez operatorów sieci komórkowych (operatorach) ani w urządzeniu, możesz skonfigurować w manifeście HIDL tak, by nie zawierał elementu HAL
android.hardware.secure_element
. W takim przypadku interfejs API android.se.omapi.SEService.getReaders() zwraca pustą listę, a test CTS automatycznie przechodzi i zgłasza pozytywny wynik. - Jeśli Twoje urządzenie DOTYCZY aplikacji na Androida z dostępem do zabezpieczonych elementów – w UICC (np. karcie SIM) rozpowszechnianej przez operatorów sieci komórkowych (operatorzy) lub w urządzeniu, musisz prawidłowo zaimplementować bezpieczny element i przetestować go wewnętrznie. Dokument CTS Test for Secure Element (test CTS dla elementu zabezpieczeń) zawiera informacje o tym, jak przygotować się do wykonania testów CTS, które sprawdzają, czy pakiet API android.se.omapi dodany w Androidzie 9 działa prawidłowo. Zalecamy też przeprowadzenie dodatkowych testów, ponieważ zasięg testów CTS jest minimalny.
Gdzie mogę uzyskać karty SIM do CTS dla Secure Element?
Możesz skontaktować się z wybranym dostawcą kart SIM.
Dlaczego karta SIM Orange jest widoczna na ekranie blokady podczas wykonywania CTS z podziałem tokenów?
Test nie uruchamia się, ponieważ testowanie karty SIM jest zablokowane. Przed wykonaniem CTS z podziałem tokenów wyłącz opcję Zablokuj kartę SIM w **ustawieniach blokady karty SIM.