Android Uyumluluk Programı Android ekosistemine yönelik olumlu geri bildirimi sürdürmenin anahtarıdır. CTS ölçekte uyumluluğun kalitesini sağlayan temel araçtır. İlgili içeriği oluşturmak için kullanılan Android ekibi, CTS aracını ve test kapsamını iyileştirmeye devam ediyor. Test durumlarının düzenli olarak eklenmesi, uyumlu cihazların kalitesinde önemli bir iyileşme sağlamıştır.
Genel sorular
Bu bölümde CTS ile ilgili genel SSS'ler sunulmaktadır.
CTS ne tür şeyleri test eder?
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, diğer API olmayan sistemleri de test eder performans gibi davranışları tespit etmenizi sağlar.
CTS nasıl lisanslanır?
CTS, Android'in büyük 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 ve TF Sharding 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ı kalırsa, parçalama sonucu farklı davranır. CTS Bölme, test birimlerine (DUT'lar) test durumlarını aşağıdaki gibi statik olarak 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 Bölme, test durumlarını mevcut DUT'lara aşağıdaki şekilde dinamik olarak atar:
- Komut: cts'yi çalıştırma
- 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, kullandığı her ABI modu için tüm CTS ve CTS Doğrulayıcı testlerini geçmesi gerekir destek iddiaları var. 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 ARM ve x86 sürümleri her mimariyi seçin. 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 Arayüzleri inceleyebilirsiniz.
Test yürütme süresini kısaltmak için testi yalnızca birincil ABI'da (örneğin, 64 bit) çalıştırmak yeterli midir?
Hayır. Android uygulamaları kendi 32 bit veya 64 bit çalışma zamanlarında çalışır. Gerçek makine kodu, kod yolu ve durumu farklıdır 32 ile 64 arasında. Bir modu atlarsanız cihaz ABI'sinin yalnızca %50'sini kapsarsınız.
Neden bu kadar çok sayıda test vakası Yürütülmedi olarak bildiriliyor?
Bunun yerine Modül Tamamlandı numarasını kontrol etmeniz gerekir Yürütülmedi sayısı.
Önceki sürümlerde CTS modülleri, tamamlanmadan önce Modül Tamamlandı olarak çok agresif bir şekilde raporlanıyordu. Bu nedenle, Tamamlanan Modüller sayısı bazı cihazlarda bile tüm test durumu tamamlanmadan bildirilen hata sorunları olduğunu fark ettik. Yeni test bandı daha konservatif bir yapıdadır ve bir sorun oluştuğunda Yürütülmedi testi sayısı daha yüksek olur.
Bir modülün çalıştırılması, en çok Modülün Tamamlanmadı raporunu gösterir raporda son çağrı (done="false") bulunur:
- Modül için yapılan test çalıştırması, bir cihaz bağlantı sorunu nedeniyle kesintiye uğradı.
- Modül için beklenen tüm test çalıştırmaları gerçekleştirilmedi.
Ek filtreleme seçenekleriyle yeniden denendi (
-r/--retry
seçeneği kullanılarak), Örneğin:- --include-filter
- --hariç-tutkulu-filtre
- -t/--test (Seçenek henüz yeniden denemede desteklenmemektedir)
- --retry-type başarısız oldu
- --subplan
Bu modüllerin Modül Tamamlandı (done="true") durumunu almak için: en son çağrı için aşağıdaki işlemi 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 sorunların hiçbiri olmadan yürütülen bir modül ( 0 test kaldı) yeni raporda Modül Tamamlandı 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ıklarının kurumsal güvenlik duvarı 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 tipik bir yazılımdır ve bu nedenle test hazırlığı başarısız olur. Yürütme veya .profile'a (Ubuntu'da) ekleyin.
export JAVA_TOOL_OPTIONS='-Djava.net.useSystemProxies=true'
Güvenlik Unsuru için CTS için 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 boş bir liste bildirir ve CTS testini otomatik olarak yapar CTS için bir hakkı geçer ve bildirir. - Cihazınızın, Android uygulamalarının bu uygulamalardan birine erişmesini desteklemesi gerekiyorsa güvenli öğeler (UICC'de Mobil şebeke operatörleri (operatörler) tarafından dağıtılan (ör. SIM kart) veya güvenli öğeyi doğru şekilde uygulamanız gerekir. ve şirket içinde test edebilirsiniz. Güvenlik Unsuru için CTS Testi CTS testlerinin yürütülmesine nasıl hazırlanacağının android.se.omapi Android 9'da eklenen API paketi çalışır. CTS test kapsamı minimum olduğundan kendi başınıza ek testler yapmanızı da öneririz.
Güvenlik Unsuru için CTS'nin SIM kartlarını nereden alabilirim?
Tercih ettiğiniz SIM tedarikçisiyle 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ın testi kilitli olduğundan test durumu başlamıyor. Şu tarihten önce **SIM kart kilidi ayarlarında SIM kartı kilitle'yi devre dışı bırakın: CTS'yi jeton parçalama ile yürütme.