Program zgodności z systemem Android to kluczowy czynnik zapewniający utrzymanie pozytywnych opinii na temat ekosystemu Androida. CTS jest kluczowym narzędziem zapewniającym jakość zgodności w skali. Zespół Androida stale udoskonala narzędzie CTS i zasięg testów. Regularne dodawanie przypadków testowych znacznie poprawia jakość kompatybilnych urządzeń.
Ogólne pytania
W tej sekcji znajdują się ogólne często zadawane pytania dotyczące CTS.
Jakiego rodzaju rzeczy testuje CTS?
Test CTS sprawdza, czy wszystkie obsługiwane interfejsy API systemu Android o silnych typach są obecne i działają poprawnie. CTS testuje także inne zachowania systemowe inne niż API, takie jak cykl życia i wydajność aplikacji.
Jak licencjonowany jest CTS?
CTS jest objęty tą samą licencją Apache Software License 2.0, z której korzysta większość systemów Android.
Czy kodeki są weryfikowane przez CTS?
Tak. Wszystkie obowiązkowe kodeki są weryfikowane przez CTS.
Pytania specyficzne dla testu
W tej sekcji znajdują się często zadawane pytania, które pomagają efektywniej przeprowadzać testy CTS.
Jaka jest różnica między fragmentowaniem CTS a fragmentowaniem TF?
CTS Sharding i TF Sharding to zupełnie różne plany testów oparte na innej bazie kodu infrastruktury testowej. Chociaż polecenie uruchomienia jest takie samo w różnych wersjach, wynik fragmentowania zachowuje się inaczej. CTS Sharding statycznie przypisuje przypadki testowe do testowanych urządzeń (DUT) w następujący sposób:
- Polecenie: uruchom cts
- Konfiguracja dla Androida 8.1 i niższych wersji: /tools/cts-tradefed/res/config/cts.xml
TF Sharding dynamicznie przypisuje przypadki testowe do dostępnych DUT w następujący sposób:
- Polecenie: uruchom cts
- Konfiguracja dla Androida 9: /platform/test/suite_harness/+/pie-cts-dev/tools/cts-tradefed/res/config/cts-suite.xml
Czego oczekuje się od urządzenia obsługującego wiele interfejsów ABI?
Urządzenie musi przejść wszystkie testy CTS i CTS Verifier dla każdego trybu ABI, który rzekomo obsługuje. Dlatego konieczne jest wykonanie aplikacji dla poszczególnych ABI. Wytyczne dotyczące wielu ABI są następujące:
- W przypadku 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 uruchomić i przejść odpowiednio oba testy ARM i x86 CTS.
Zobacz CDD 3.3.1. Interfejsy binarne aplikacji dla wymagań CDD w ABI.
Czy wystarczy uruchomić test tylko na podstawowym ABI (na przykład 64 bity), aby skrócić czas wykonania testu?
Nie. Aplikacja na Androida działa w 32-bitowym lub 64-bitowym środowisku wykonawczym. Rzeczywisty kod maszynowy, ścieżka kodu i stan różnią się między 32 a 64. Jeśli pominiesz jeden tryb, pokryjesz tylko 50% ABI urządzenia.
Dlaczego tak wiele przypadków testowych jest zgłaszanych jako niewykonane?
Powinieneś sprawdzić numer modułu wykonany zamiast numeru niewykonany .
W poprzednich wersjach moduły CTS były zgłaszane jako moduł wykonany zbyt intensywnie przed ukończeniem. W związku z tym zgłoszono liczbę wykonanych modułów bez ukończenia wszystkich przypadków testowych, nawet jeśli na niektórych urządzeniach wystąpiły problemy. Nowa wiązka testowa jest bardziej konserwatywna i w przypadku wystąpienia problemu zgłasza większą liczbę testów niewykonanych .
Moduł uruchomiony do zakończenia raportuje , że moduł nie został wykonany podczas ostatniego wywołania (done="false") w raporcie podczas następujących czynności:
- Uruchomienie testowe modułu zostało przerwane z powodu problemu z połączeniem urządzenia.
- Nie wszystkie oczekiwane przebiegi testowe modułu zostały wykonane.
Ponawiano próbę (używając opcji
-r/--retry
) z dodatkowymi opcjami filtrowania, takimi jak:- --include-filter
- --filtr wykluczenia
- -t/--test (opcja nie jest jeszcze obsługiwana przy ponownej próbie)
- --retry-type nie powiódł się
- --podplan
Aby uzyskać dla tych modułów stan Moduł gotowy (done="true"), spróbuj ponownie wykonać następujące 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ł wykonany bez żadnych problemów wymienionych wcześniej (nawet przy 0 pozostałych testach) jest w nowym raporcie oznaczony jako Moduł gotowy .
Wyjątki
- W CtsNNAPITestCases występuje znany problem wynikający z ograniczeń argumentów w systemie Linux/OS. Moduł można uruchomić ponownie w izolacji, bezpośrednio
run cts -m CtsNNAPITestCases
.
Jak uniknąć niepowodzeń w przygotowaniu testu za zaporą korporacyjną?
Wszystkie zautomatyzowane zestawy testów próbują pobrać pliki multimedialne CTS lub pliki logiki biznesowej w czasie wykonywania. W wielu środowiskach korporacyjnych typowym rozwiązaniem jest zapora sieciowa i serwer proxy, co powoduje, że przygotowanie testu kończy się niepowodzeniem. Wykonaj następujący wiersz lub dodaj go do .profile (w systemie Ubuntu).
export JAVA_TOOL_OPTIONS='-Djava.net.useSystemProxies=true'
Czy potrzebuję karty SIM do CTS for Secure Element?
To, czy do testu potrzebna jest karta SIM, zależy od zrozumienia, czy dana funkcja jest obsługiwana w urządzeniu testowym.
- Jeśli Twoje urządzenie NIE musi obsługiwać aplikacji na Androida uzyskujących dostęp do bezpiecznych elementów – albo w UICC (np. karcie SIM) dystrybuowanym przez operatorów sieci komórkowych (operatorów), albo wbudowanym w urządzenie – możesz skonfigurować manifest HIDL tak, aby nie zawierał element HAL
android.hardware.secure_element
. W tym przypadku funkcja API android.se.omapi.SEService.getReaders() zgłasza pustą listę, a test CTS automatycznie przechodzi pomyślnie i zgłasza pozytywny wynik dla CTS. - Jeśli Twoje urządzenie MUSI obsługiwać aplikacje na Androida uzyskujące dostęp do bezpiecznych elementów – albo w UICC (np. karcie SIM) dystrybuowanych przez operatorów sieci komórkowych (operatorów), albo wbudowanych w urządzenie – musisz odpowiednio zaimplementować bezpieczny element i przetestować go w domu. Test CTS dla bezpiecznego elementu opisuje, jak przygotować się do uruchomienia testów CTS, które zapewniają funkcjonalność pakietu API android.se.omapi dodanego w systemie Android 9. Zalecamy również samodzielne wykonanie dodatkowych testów, ponieważ zasięg testów CTS jest minimalny.
Gdzie mogę zdobyć karty SIM dla CTS for Secure Element?
Możesz skontaktować się z preferowanym dostawcą karty SIM.
Dlaczego Orange SIM jest na ekranie blokady podczas wykonywania CTS z fragmentowaniem tokena?
Przypadek testowy nie rozpoczyna się, ponieważ testowanie karty SIM jest zablokowane. Wyłącz opcję Zablokuj kartę SIM w **Ustawieniach blokady karty SIM przed wykonaniem CTS z fragmentowaniem tokena.