Najczęstsze pytania dotyczące CTS

Program zgodności z Androidem jest kluczowym czynnikiem utrzymującym 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

Ta sekcja zawiera 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 interfejsem API, takie jak cykl życia aplikacji i wydajność.

Jakie są zasady licencjonowania CTS?

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ę dzielenie CTS od dzielenia TF?

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:

TF Sharding dynamicznie przypisuje przypadki testowe do dostępnych urządzeń w ten sposób:

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. Wytyczne dotyczące wielu interfejsów ABI są następujące:

  • W przypadku pakietów 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 zakresie 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 wersji 32-bitowej i 64-bitowej. 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 zgłaszana bez ukończenia wszystkich przypadków testowych, nawet jeśli niektóre urządzenia miały problemy. Nowy pakiet testów jest bardziej restrykcyjny 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:

  • Test modułu został przerwany z powodu problemu z połączeniem urządzenia.
  • Nie przeprowadzono wszystkich oczekiwanych testów modułu.
  • Ponowiono próbę (za pomocą 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 versions
run cts --retry <session_id> for Android 8.1 and previous versions

Moduł, 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ł ukończony).

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 Secure Element 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ć dostępu aplikacji na Androida do bezpiecznych elementów – w UICC (np. na karcie SIM) rozpowszechnianym przez operatorów sieci komórkowych lub wbudowanym w urządzenie – możesz skonfigurować manifest HIDL tak, aby nie zawierał elementu android.hardware.secure_element HAL. 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 zabezpieczających – w UICC (np. na karcie SIM) rozpowszechnianych przez operatorów sieci komórkowych lub wbudowanych w urządzenie – musisz prawidłowo wdrożyć element zabezpieczający i przeprowadzić testy wewnętrzne. Test CTS dla bezpiecznego elementu zawiera informacje o tym, jak przygotować się do przeprowadzenia 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 preferowanym 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 testów CTS z podziałem tokena.