Android Uyumluluk Programı, Android ekosistemiyle ilgili olumlu geri bildirimleri sürdürmenin temel unsurudur. CTS, uyumluluğun geniş ölçekte kalitesini sağlamanın temel aracıdır. Android ekibi, CTS aracını ve test kapsamını iyileştirmeye devam ediyor. Düzenli olarak test durumu eklenmesiyle uyumlu cihazların kalitesi önemli ölçüde artmıştır.
Genel sorular
Bu bölümde, genel CTS SSS'leri yer almaktadır.
CTS ne tür testler yapar?
CTS, desteklenen tüm güçlü tipli Android API'lerinin mevcut olup olmadığını ve doğru şekilde çalışıp çalışmadığını test eder. CTS, uygulama yaşam döngüsü ve performansı gibi API dışı diğer sistem davranışlarını da test eder.
CTS nasıl lisanslanır?
CTS, Android toplu kullanımlarının kullandığı Apache Yazılım Lisansı 2.0 ile aynı şekilde lisanslanmıştır.
Kodekler CTS tarafından doğrulanıyor mu?
Evet. Tüm zorunlu codec'ler CTS tarafından doğrulanır.
Teste özgü sorular
Bu bölümde, CTS testlerinin daha verimli bir şekilde yürütülmesine yardımcı olacak SSS'ler yer almaktadır.
CTS Parçalama ve TF Parçalama arasındaki fark nedir?
CTS Bölme ve TF Bölme, farklı test altyapısı kod tabanı tarafından desteklenen tamamen farklı test planlarıdır. Çalıştırma komutu farklı sürümlerde aynı olsa da bölme sonucu farklı davranır. CTS Bölme, test birimlerine (DUT'lar) test durumlarını aşağıdaki gibi statik olarak atar:
- Komut: cts'yi çalıştırma
- Android 8.1 ve önceki sürümler için yapılandırma: /tools/cts-tradefed/res/config/cts.xml
TF Bölme, test durumlarını mevcut DUT'lara aşağıdaki şekilde dinamik olarak atar:
- Komut: run cts
- Android 9 için yapılandırma: /platform/test/suite_harness/+/pie-cts-dev/tools/cts-tradefed/res/config/cts-suite.xml
Birden fazla ABI'yi destekleyen bir cihazdan ne beklenir?
Cihazın, desteklediğini iddia ettiği her ABI modu için tüm CTS ve CTS Doğrulayıcı testlerini geçmesi gerekir. Bu nedenle, belirli ABI'ler için bir uygulamanın yürütülmesi gerekir. Birden fazla ABI için yönergeler aşağıdaki gibidir:
- CTS ve CTS Doğrulayıcı için her mimaride ARM ve x86 sürümleri vardır. Her biri 32 veya 64 bit modu destekleyebilir.
- CTS testleri için bir cihaz hem ARM hem de x86'ı destekliyorsa sırasıyla hem ARM hem de x86 CTS testlerini çalıştırıp geçmesi gerekir.
Bkz. CDD 3.3.1. Uygulama İkili Arabirimleri ABI'deki CDD şartları için.
Test yürütme süresini azaltmak için yalnızca birincil ABI'de (ör. 64 bit) test çalıştırmak yeterli mi?
Hayır. Android uygulamaları kendi 32 bit veya 64 bit çalışma zamanlarında çalışır. Gerçek makine kodu, kod yolu ve durum 32 ile 64 arasında farklıdır. Bir modu atlarsanız cihaz ABI'sinin yalnızca% 50'sini kapsarsınız.
Neden bu kadar çok test durumu "Yürütülmedi" olarak bildiriliyor?
Yürütülmedi yerine Modül Bitti sayısını kontrol etmeniz gerekir.
Önceki sürümlerde CTS modülleri, tamamlanmadan önce Modül Tamamlandı olarak çok agresif bir şekilde raporlanıyordu. Bu nedenle, bazı cihazlarda sorun olsa bile tüm test senaryosu tamamlanmadan Modüller Tamamlandı sayısı bildirildi. Yeni test aparatı daha muhafazakardır ve bir sorun oluştuğunda daha fazla sayıda Yürütülmedi testi raporlar.
Tamamlanan bir modül, aşağıdaki durumlarda rapordaki en son çağrıda Modül Tamamlanmadı değerini (done="false") bildirir:
- Modülün test çalışması, cihaz bağlantısı sorunu nedeniyle kesintiye uğradı.
- Modül için beklenen tüm test çalıştırmaları gerçekleştirilmedi.
Aşağıdakiler gibi ek filtreleme seçenekleriyle yeniden deneme (
-r/--retry
seçeneği kullanılarak):- --include-filter
- --exclude-filter
- -t/--test (Yeniden denemede henüz desteklenmeyen seçenek)
- --retry-type başarısız oldu
- --subplan
Bu modüllerde Modül Tamamlandı (done="true") durumunu almak istiyorsanız en son çağrı için aşağıdakileri tekrar deneyin:
run retry --retry <session_id> for Android 9 and later versions
run cts --retry <session_id> for Android 8.1 and previous versions
Daha önce bahsedilen sorunlardan hiçbiri olmadan çalıştırılan bir modül (0 testin kalması durumunda bile), yeni raporda Modül Bitti olarak işaretlenir.
İstisnalar
- CtsNNAPITestCases, args'in linux/OS sınırlaması nedeniyle bilinen bir soruna sahiptir.
Modül, doğrudan
run cts -m CtsNNAPITestCases
üzerinden tek başına yeniden çalıştırılabilir.
Test hazırlığının kurumsal güvenlik duvarının arkasında başarısız olmasını nasıl önleyebilirim?
Tüm otomatik test paketleri, çalışma zamanında CTS medya dosyalarını veya iş mantığı dosyalarını indirmeye çalışır. Birçok kurumsal ortamda güvenlik duvarı ve proxy tipiktir. Bu da test hazırlığının başarısız olmasına neden olur. Aşağıdaki satırı yürütün veya .profile dosyasına ekleyin (Ubuntu'da).
export JAVA_TOOL_OPTIONS='-Djava.net.useSystemProxies=true'
Güvenlik unsuru için CTS'ye SIM karta ihtiyacım var mı?
Test için SIM karta ihtiyaç duyulup duyulmayacağı, özelliğin test cihazında desteklenip desteklenmediğine bağlıdır.
- Cihazınızın, mobil ağ operatörleri (operatörler) tarafından dağıtılan veya cihaza yerleştirilmiş UICC (ör.SIM kart) içindeki güvenli öğelere erişen Android uygulamalarını desteklemesi GEREKMEZ. Bu durumda HIDL manifestini
android.hardware.secure_element
HAL öğesini içermeyecek şekilde yapılandırabilirsiniz. Bu durumda, android.se.omapi.SEService.getReaders() API'si boş bir liste bildirir ve CTS testi otomatik olarak geçer ve CTS'nin geçtiğini bildirir. - Cihazınızın, mobil ağ operatörleri (operatörler) tarafından dağıtılan veya cihaza yerleştirilmiş UICC (ör. SIM kart) içindeki güvenli öğelere erişen Android uygulamalarını desteklemesi GEREKİYORSA güvenli öğeyi düzgün bir şekilde uygulamanız ve şirket içinde test etmeniz gerekir. Güvenlik Unsuru için CTS Testi, Android 9'da eklenen android.se.omapi API paketinin işlevsel olduğundan emin olan CTS testlerini çalıştırmaya nasıl hazırlanacağını gösterir. CTS test kapsamı minimum olduğundan kendi başınıza ek testler yapmanızı da öneririz.
Secure Element için CTS'nin SIM kartlarını nereden alabilirim?
Tercih ettiğiniz SIM tedarikçinizle iletişime geçebilirsiniz.
CTS yürütülürken neden jeton kırmayla kilit ekranında Turuncu SIM görünüyor?
SIM kart kilitli olduğu için test durumu başlatılmıyor. CTS'yi jeton bölmeyle çalıştırmadan önce **SIM kart kilit ayarlarında SIM kartı kilitle'yi devre dışı bırakın.