Program zgodności z Androidem to kluczowy czynnik zapewniający pozytywne opinie o ekosystemie 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 sprawdza też inne zachowania systemu, które nie są związane z interfejsem API, np. cykl życia i wydajność aplikacji.
Jaka jest licencja na CTS?
Test CTS jest objęty tą samą licencją Apache Software License 2.0, której używa większość aplikacji na Androida.
Czy kodeki są weryfikowane przez CTS?
Tak. Wszystkie obowiązkowe kodeki są weryfikowane przez CTS.
Pytania dotyczące testu
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?
Podział na CTS i TF to zupełnie inne plany testów, które korzystają z innej bazy kodu infrastruktury testów. Polecenie wykonywania jest takie samo w przypadku różnych wersji, ale wynik podziału jest inny. Podział CTS przypisuje testy do urządzeń testowanych w ten sposób:
- Polecenie: run cts
- Konfiguracja dla Androida 8.1 i starszych wersji: /tools/cts-tradefed/res/config/cts.xml
TF Sharding dynamicznie przypisuje elementy testowania do dostępnych urządzeń do testów 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 CTS Verifier w przypadku każdego trybu ABI, który 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 dla architektur ARM i x86. 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 w ramach własnych środowisk uruchomieniowych 32- lub 64-bitowych. Rzeczywisty kod maszynowy, ścieżka kodu i stan różnią się od 32 do 64. Jeśli pominiesz jeden tryb, pokryjesz tylko 50% 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 raportowane jako Gotowe zbyt agresywnie, zanim zostały ukończone. 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. Nowy zestaw testów jest bardziej konserwatywny i w przypadku wystąpienia problemu zgłasza większą liczbę testów Niewykonanych.
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:- --include-filter
- --exclude-filter
- -t/--test (opcja nie jest jeszcze obsługiwana podczas ponownego próbowania)
- --retry-type failed
- --subplan
Aby uzyskać stan Module Done (done="true") dla tych modułów, ponownie wykonaj 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 CtsNNAPITestCases występuje znany problem z powodu ograniczenia argumentów w Linuxie/OS.
Moduł można uruchomić osobno bezpośrednio w
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 do CTS dla Secure Element potrzebuję karty SIM?
To, czy do testu potrzebna jest karta SIM, zależy od tego, czy dana funkcja jest obsługiwana na urządzeniu testowym.
- Jeśli urządzenie NIE MUSI obsługiwać aplikacji na Androida, które uzyskują dostęp do elementów zabezpieczeń (w UICC (np. karta SIM) rozpowszechnianych przez operatorów sieci komórkowych lub wbudowanych w urządzenie), możesz skonfigurować plik manifestu HIDL tak, aby nie zawierał elementu
android.hardware.secure_element
HAL. W tym przypadku interfejs API android.se.omapi.SEService.getReaders() zwraca pustą listę, a test CTS automatycznie przechodzi i zwraca wynik pozytywny. - Jeśli Twoje urządzenie MUSI obsługiwać aplikacje na Androida, które uzyskują dostęp do elementów zabezpieczeń (w elementach UICC, np. na karcie SIM) dystrybuowanych przez operatorów sieci komórkowych lub wbudowanych w urządzenie, musisz prawidłowo wdrożyć element zabezpieczeń i przetestować go wewnętrznie. Dokument CTS Test for Secure Element (Test CTS dla elementu zabezpieczeń) zawiera informacje o tym, jak przygotować się do przeprowadzania 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 preferowanym 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.