Program zgodności z Androidem jest kluczowym czynnikiem, który podtrzymuje 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 poprawia jakość zgodnych urządzeń.
Pytania ogólne
W tej sekcji znajdziesz odpowiedzi na najczęstsze pytania dotyczące CTS.
Jakie elementy są testowane w ramach CTS?
Testy CTS sprawdzają, czy wszystkie obsługiwane interfejsy API Androida o silnym typowaniu są obecne i działają prawidłowo. CTS testuje też inne zachowania systemu niezwiązane z interfejsami API, takie jak cykl życia aplikacji i wydajność.
Jak udziela się licencji na CTS?
Pakiet CTS jest objęty tą samą licencją Apache Software License 2.0, z której korzysta większość Androida.
Czy kodeki są weryfikowane przez CTS?
Tak. Wszystkie obowiązkowe kodeki są weryfikowane przez CTS.
Pytania dotyczące konkretnego testu
W tej sekcji znajdziesz odpowiedzi na najczęstsze pytania, które pomogą Ci skuteczniej przeprowadzać testy CTS.
Czym różni się CTS Sharding od TF Sharding?
CTS Sharding i TF Sharding to zupełnie inne plany testów oparte na różnych bazach kodu infrastruktury testowej. Chociaż polecenie uruchamiania jest takie samo w różnych wersjach, wynik dzielenia na fragmenty działa inaczej. CTS Sharding statycznie przypisuje przypadki testowe do testowanych urządzeń (DUT) 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 przypadki testowe do dostępnych urządzeń 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
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 deklaruje jako obsługiwany. Dlatego konieczne jest uruchomienie aplikacji dla konkretnych interfejsów ABI. Wskazówki dotyczące wielu interfejsów ABI są następujące:
- W przypadku CTS i CTS Verifier dostępne są wersje dla architektury 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 architekturę ARM, jak i x86, musi przejść testy CTS dla obu tych architektur.
Patrz CDD 3.3.1. Interfejsy binarne aplikacji w przypadku wymagań CDD dotyczących interfejsu ABI.
Czy aby skrócić czas wykonywania testu, wystarczy przeprowadzić go tylko na głównym interfejsie ABI (np. 64-bitowym)?
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ę w przypadku 32- i 64-bitowych wersji. Jeśli pominiesz jeden tryb, pokryjesz tylko 50% interfejsu ABI urządzenia.
Dlaczego tak wiele przypadków testowych ma stan „Nie wykonano”?
Zamiast liczby Nie wykonano sprawdź liczbę Moduł ukończony.
W poprzednich wersjach moduły CTS były zbyt często zgłaszane jako Module Done przed ukończeniem. Dlatego liczba Ukończone moduły była raportowana bez ukończenia wszystkich przypadków testowych, nawet jeśli niektóre urządzenia miały problemy. Nowy pakiet testów jest bardziej konserwatywny i w przypadku wystąpienia problemu zgłasza większą liczbę testów Nie wykonano.
Jeśli moduł zostanie uruchomiony do końca, w raporcie w najnowszym wywołaniu (done="false") pojawi się stan Module Not Done w tych przypadkach:
- Testowy przebieg modułu został przerwany z powodu problemu z połączeniem urządzenia.
- Nie przeprowadzono wszystkich oczekiwanych testów modułu.
Ponowiono próbę (z użyciem opcji
-r/--retry) z dodatkowymi opcjami filtrowania, takimi jak:- --include-filter
- --exclude-filter
- -t/--test (opcja nie jest jeszcze obsługiwana w przypadku ponownej próby)
- --retry-type failed
- --subplan
Aby uzyskać stan Module Done (done="true") w przypadku tych modułów, spróbuj ponownie wykonać te czynności w przypadku ostatniego wywołania:
run retry --retry <session_id> for Android 9 and later versionsrun cts --retry <session_id> for Android 8.1 and previous versionsModuł, który został wykonany bez żadnego z wcześniej wymienionych problemów (nawet jeśli pozostało 0 testów), jest oznaczony w nowym raporcie jako Module Done (Moduł wykonany).
Wyjątki
- W przypadku CtsNNAPITestCases występuje znany problem wynikający z ograniczeń systemu Linux/OS dotyczących argumentów.
Moduł można ponownie uruchomić osobno bezpośrednio w
run cts -m CtsNNAPITestCases.
Jak mogę uniknąć sytuacji, w której przygotowanie do testu nie powiedzie się z powodu zapory sieciowej firmy?
Wszystkie zautomatyzowane pakiety testów próbują pobrać w czasie działania pliki multimedialne CTS lub pliki logiki biznesowej. W wielu środowiskach korporacyjnych typowe są zapory sieciowe i serwery proxy, co powoduje niepowodzenie przygotowania testu. Wykonaj ten wiersz lub dodaj go do pliku .profile (w Ubuntu).
export JAVA_TOOL_OPTIONS='-Djava.net.useSystemProxies=true'Czy do testów CTS dla elementu zabezpieczonego potrzebna jest karta SIM?
To, czy do testu potrzebna jest karta SIM, zależy od tego, czy funkcja jest obsługiwana na urządzeniu testowym.
- Jeśli urządzenie NIE MUSI obsługiwać aplikacji na Androida uzyskujących dostęp do bezpiecznych elementów – w UICC (np. na karcie SIM) rozpowszechnianej przez operatorów sieci komórkowych lub wbudowanej w urządzenie – możesz skonfigurować manifest HIDL tak, aby nie zawierał elementu
android.hardware.secure_elementHAL. W takim przypadku interfejs API android.se.omapi.SEService.getReaders() zwraca pustą listę, a test CTS automatycznie zostaje zaliczony i zwraca wynik pozytywny. - Jeśli urządzenie MUSI obsługiwać dostęp aplikacji na Androida do elementów bezpiecznych – w UICC (np. na karcie SIM) rozpowszechnianych przez operatorów sieci komórkowych lub wbudowanych w urządzenie – musisz prawidłowo wdrożyć element bezpieczny i przeprowadzić testy wewnętrzne. Test CTS dla bezpiecznego elementu zawiera informacje o tym, jak przygotować się do uruchomienia testów CTS, które zapewniają, że pakiet API android.se.omapi dodany w Androidzie 9 działa prawidłowo. Zalecamy też przeprowadzenie dodatkowych testów, ponieważ zakres testów CTS jest minimalny.
Gdzie mogę zdobyć karty SIM do testów CTS dla bezpiecznego elementu?
Możesz skontaktować się z wybranym dostawcą kart SIM.
Dlaczego podczas wykonywania testów CTS z podziałem tokenów na ekranie blokady wyświetla się karta SIM Orange?
Przypadek testowy nie rozpoczyna się, ponieważ testowanie karty SIM jest zablokowane. Wyłącz blokadę karty SIM w **ustawieniach blokady karty SIM przed wykonaniem testu CTS z podziałem tokena.
Testy są przeprowadzane, gdy na urządzeniu wyłączone są flagi funkcji.
W przypadku wszystkich flag w wersjach produkcyjnych adnotacja
@RequiresFlagsEnabled lub @RequiresFlagsDisabled używa wartości
flag z konfiguracji wersji binarnej CTS, a nie z konfiguracji wersji urządzenia. Wyłączenie flag na urządzeniu nie powoduje wyłączenia testu, ponieważ zestaw testów CTS uruchamianych w przypadku danej wersji jest powiązany z konfiguracją platformy AOSP.