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 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 testlerinin daha verimli bir şekilde yürütülmesine 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, hem ARM hem de x86'yı destekleyen bir cihazın 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) numarası yerine Module Done (Modül Tamamlandı) numarası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 olsa bile tüm test senaryoları tamamlanmadan Tamamlanan Modüller sayısı bildiriliyordu. 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 (
-r/--retryseçeneği kullanılarak) yeniden denendi:- --include-filter
- --exclude-filter
- -t/--test (Yeniden denemede henüz desteklenmeyen seçenek)
- --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 hiçbiri olmadan yürütülen bir modül (0 test kalsa bile) yeni raporda 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 kullanılması 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'de SIM karta ihtiyacım var mı?
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 (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 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 testi 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.