Android Uyumluluk Programı, Android ekosistemiyle ilgili olumlu geri bildirimleri sürdürmek için önemli bir etkendir. CTS, ölçekte uyumluluk kalitesini sağlamak için kullanılan temel araçtır. Android ekibi, CTS aracını ve test kapsamını iyileştirmeye devam ediyor. Test senaryolarının düzenli olarak eklenmesi, uyumlu cihazların kalitesini önemli ölçüde artırır.
Genel sorular
Bu bölümde, CTS ile ilgili sık sorulan soruların genel yanıtları yer almaktadır.
CTS ne tür şeyleri test eder?
CTS, desteklenen tüm Android kesin tür API'lerinin mevcut olduğunu ve doğru şekilde çalıştığını test eder. CTS, API dışı diğer sistem davranışlarını (ör. uygulama yaşam döngüsü ve performans) da test eder.
CTS'nin lisansı nasıl alınır?
CTS, Android'in büyük bir kısmının kullandığı Apache Yazılım Lisansı 2.0 ile lisanslanmıştır.
Codec'ler CTS tarafından doğrulanır mı?
Evet. Tüm zorunlu codec'ler CTS tarafından doğrulanır.
Teste özgü sorular
Bu bölümde, CTS testlerini daha verimli bir şekilde çalıştırmanıza yardımcı olacak SSS'ler yer almaktadır.
CTS Sharding ile TF Sharding arasındaki fark nedir?
CTS Sharding ve TF Sharding, 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 parçalama sonucu farklı şekilde davranır. CTS Sharding, test senaryolarını Test Edilen Cihazlara (DUT) statik olarak aşağıdaki şekilde atar:
- Komut: run cts
- Android 8.1 ve önceki sürümler için yapılandırma: /tools/cts-tradefed/res/config/cts.xml
TF Sharding, test senaryolarını kullanılabilir DUT'lara dinamik olarak aşağıdaki şekilde 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, desteklediğini iddia ettiği her ABI modu için tüm CTS ve CTS Verifier testlerini geçmelidir. Bu nedenle, belirli ABI'ler için bir uygulama yürütmek gerekir. Birden fazla ABI ile ilgili yönergeler şunlardır:
- CTS ve CTS Verifier için her mimariyle ilgili ARM ve x86 sürümleri vardır. Her biri 32 bit veya 64 bit modunu destekleyebilir.
- CTS testlerinde, bir cihaz hem ARM'yi hem de x86'yı destekliyorsa sırasıyla hem ARM hem de x86 CTS testlerini çalıştırması ve geçmesi gerekir.
CDD 3.3.1. ABI ile ilgili CDD şartları için Uygulama İkili Arabirimleri.
Test yürütme süresini azaltmak için testi yalnızca birincil ABI'de (ör. 64 bit) ç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 bit ile 64 bit 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 "Not Executed" (Yürütülmedi) olarak bildiriliyor?
Not Executed (Yürütülmedi) sayısı yerine Module Done (Tamamlanan Modül) sayısını kontrol etmeniz gerekir.
Önceki sürümlerde, CTS modülleri tamamlanmadan önce çok agresif bir şekilde Module Done (Modül Tamamlandı) olarak bildiriliyordu. Bu nedenle, bazı cihazlarda sorunlar olmasına rağmen tüm test senaryoları tamamlanmadan Tamamlanan Modüller sayısı bildirildi. Yeni test düzeneği daha tutucudur ve bir sorun oluştuğunda daha fazla sayıda Not Executed (Yürütülmedi) testi bildirir.
Bir modülün tamamlanması için çalıştırılması, aşağıdaki durumlarda rapordaki en son çağırmada (done="false") Module Not Done (Modül Tamamlanmadı) olarak bildirilir:
- Modülün test çalışması, cihaz bağlantı 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 denendi (
-r/--retryseçeneği kullanılarak):- --include-filter
- --exclude-filter
- -t/--test (Yeniden deneme sırasında henüz desteklenmemektedir.)
- --retry-type failed
- --subplan
Bu modüller için Module Done (done="true") durumunu elde etmek üzere, en son çağırma için aşağıdakileri yeniden deneyin:
run retry --retry <session_id> for Android 9 and later versionsrun cts --retry <session_id> for Android 8.1 and previous versionsDaha önce bahsedilen sorunlardan herhangi biri olmadan yürütülen bir modül (0 test kalsa bile) yeni raporda Module Done (Modül Tamamlandı) olarak işaretlenir.
İstisnalar
- CtsNNAPITestCases, args'ın Linux/OS sınırlaması nedeniyle bilinen bir soruna sahiptir.
Modül, doğrudan
run cts -m CtsNNAPITestCasesüzerinden bağımsız olarak yeniden çalıştırılabilir.
Test hazırlığının kurumsal güvenlik duvarının gerisinde kalması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 yaygındır. Bu durum, test hazırlığının başarısız olmasına neden olur. Aşağıdaki satırı çalıştırın veya .profile dosyasına (Ubuntu'da) ekleyin.
export JAVA_TOOL_OPTIONS='-Djava.net.useSystemProxies=true'Güvenlik unsuru için CTS'ye SIM kart gerekir mi?
Test için SIM kart gerekip gerekmediği, ö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 UICC'de (ör. SIM kart) veya cihaza yerleştirilmiş güvenli öğelere erişen Android uygulamalarını desteklemesi GEREKMİYORSA, HIDL manifest'ini
android.hardware.secure_elementHAL öğ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 için geçme bildirir. - Cihazınızın, mobil şebeke operatörleri (taşıyıcılar) tarafından dağıtılan UICC'de (ör. SIM kart) veya cihaza yerleştirilmiş 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üvenli Öğeler İçin CTS Testi Android 9'da eklenen android.se.omapi API paketinin işlevsel olmasını sağlayan CTS testlerini çalıştırmaya nasıl hazırlanacağınızı açıklar. CTS test kapsamı minimum düzeyde olduğundan kendi başınıza ek testler yapmanızı da öneririz.
CTS for Secure Element için SIM kartları nereden alabilirim?
Tercih ettiğiniz SIM satıcısıyla iletişime geçebilirsiniz.
Why is Orange SIM on the lock screen during CTS execution with token sharding?
SIM kartın test edilmesi kilitli olduğundan test durumu başlatılamıyor. Token parçalama ile CTS'yi yürütmeden önce **SIM kart kilit ayarlarında SIM kartı kilitle'yi devre dışı bırakın.
Özellik işaretleri cihazda devre dışı bırakıldığında test çalışır.
Sürüm derlemelerindeki tüm işaretler için @RequiresFlagsEnabled veya @RequiresFlagsDisabled ek açıklamasında, cihaz sürümü yapılandırmasından değil, CTS ikili sürüm yapılandırmasından alınan işaret değerleri kullanılır. Cihazdaki işaretlerin devre dışı bırakılması, belirli bir sürüm için çalıştırılan CTS testleri kümesi AOSP platformunun yayınlanan yapılandırmasına sabitlendiğinden testi devre dışı bırakmaz.