Program zgodności z systemem Android to klucz do utrzymania pozytywnych opinii w ekosystemie Androida. wskaźnik CTS to najważniejsze narzędzie zapewniające zgodność w skali. Zespół Androida cały czas ulepsza narzędzie CTS i testuje zasięg. Regularne dodawanie testów przypadków znacznie poprawiło jakość zgodnych urządzeń.
Pytania ogólne
Ta sekcja zawiera odpowiedzi na najczęstsze pytania dotyczące CTS.
Co testuje 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 niż te związane z interfejsem API, takie jak cykl życia i wydajność aplikacji.
Jaka jest licencja na CTS?
Platforma CTS jest objęta tą samą licencją Apache Software 2.0 dla większości użytkowników Androida.
Czy kodeki są zweryfikowane 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ę fragmentacja CTS od fragmentacji TF?
Fragmentacja CTS i fragmentacja TF to zupełnie różne plany testów oparte na od innej bazy kodu infrastruktury testowej. Mimo że polecenie „uruchom” jest poleceniem ale w różnych wersjach wynik fragmentacji działa inaczej. Fragmentacja CTS statycznie przypisuje przypadki testowe do testowanych urządzeń w następujący 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 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
Czego oczekujesz od urządzenia obsługującego kilka interfejsów ABI?
Urządzenie musi przejść wszystkie testy CTS i weryfikatora CTS dla każdego trybu ABI, obietnice poparcia. Dlatego konieczne jest uruchomienie aplikacji dla określonych ABI. Wytyczne dotyczące wielu ABI:
- W przypadku weryfikatora CTS i CTS Wersje na architekturę ARM i x86 dla dla każdej architektury. Każdy z nich może obsługiwać tryb 32- lub 64-bitowy.
- W przypadku testów CTS urządzenie musi obsługiwać zarówno architekturę ARM, jak i x86 i przechodzić między testami ARM i x86 CTS.
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 maszyny, ścieżka kodu i stan są różne od 32 do 64. Jeśli pominiesz 1 tryb, uwzględniasz tylko 50% interfejsu ABI urządzenia.
Dlaczego tak wiele przypadków testowych jest oznaczonych jako Niewykonane?
Zamiast tego sprawdź numer Modułu ukończonego. Niewykonane.
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 raportuje większą liczbę testów Niewykonanych.
Moduł uruchomiony do końca zgłasza Moduł Nieukończony w maksymalnie najnowsze wywołanie (done="false") w raporcie w czasie:
- 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
- --wyklucz-filtr
- -t/--test (Opcja nie jest jeszcze obsługiwana w przypadku ponawiania)
- --retry-type failed
- --subplan
Aby uzyskać stan Modułu ukończonego (done="true") dla tych modułów, w przypadku najnowszego wywołania ponów te czynności:
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 ponownie uruchomić w izolacji bezpośrednio w narzędziu
run cts -m CtsNNAPITestCases
.
Jak uniknąć problemów z przygotowaniem do testu za zaporą sieciową firmy?
Wszystkie automatyczne pakiety testowe próbują pobrać pliki multimedialne CTS lub logiki biznesowej w czasie działania. 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 jest potrzebna karta SIM, zależy od zrozumienia 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. na karcie SIM) rozpowszechnianych przez operatorów sieci komórkowych (operatorów) 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. Test CTS dla bezpiecznego elementu który opisuje, jak przygotować się do przeprowadzenia testów CTS, które zapewnią android.se.omapi Pakiet interfejsu API dodany w Androidzie 9 działa. Zalecamy też przeprowadzenie dodatkowych testów we własnym zakresie, ponieważ pokrycie testów CTS jest minimalne.
Gdzie znajdę karty SIM do CTS for Secure Element?
Możesz skontaktować się z wybranym dostawcą karty SIM.
Dlaczego karta SIM Orange jest widoczna na ekranie blokady podczas wykonywania CTS z podziałem tokenów?
Przypadek testowy się nie uruchamia, 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.