FAQ CTS

Program Kompatibilitas Android adalah pendorong utama untuk mempertahankan masukan positif bagi ekosistem Android. CTS adalah alat utama untuk memastikan kualitas kompatibilitas dalam skala besar. Tim Android terus meningkatkan alat CTS dan cakupan pengujian. Penambahan rutin kasus pengujian memiliki peningkatan signifikan pada kualitas perangkat yang kompatibel.

Pertanyaan umum

Bagian ini menyediakan FAQ CTS umum.

Apa saja yang diuji oleh CTS?

CTS menguji apakah semua API dengan jenis kuat Android yang didukung ada dan berperilaku dengan benar. CTS juga menguji perilaku sistem non-API lainnya seperti siklus proses dan performa aplikasi.

Bagaimana CTS dilisensikan?

CTS dilisensikan berdasarkan Lisensi Software Apache 2.0 yang sama dengan yang digunakan oleh sebagian besar Android.

Apakah codec diverifikasi oleh CTS?

Ya. Semua codec wajib diverifikasi oleh CTS.

Pertanyaan khusus pengujian

Bagian ini menyediakan FAQ yang membantu menjalankan pengujian CTS secara lebih efisien.

Apa perbedaan antara Sharding CTS dan Sharding TF?

CTS Sharding dan TF Sharding adalah rencana pengujian yang sama sekali berbeda yang didukung oleh codebase infrastruktur pengujian yang berbeda. Meskipun perintah run sama di berbagai versi, hasil sharding berperilaku berbeda. Sharding CTS secara statis menetapkan kasus pengujian ke Perangkat yang Sedang Diuji (DUT) sebagai berikut:

Pembagian TF secara dinamis menetapkan kasus pengujian ke DUT yang tersedia sebagai berikut:

Apa yang diharapkan dari perangkat yang mendukung beberapa ABI?

Perangkat harus lulus semua pengujian CTS dan CTS Verifier untuk setiap mode ABI yang diklaim didukung. Oleh karena itu, Anda perlu menjalankan aplikasi untuk ABI tertentu. Panduan untuk beberapa ABI adalah sebagai berikut:

  • Untuk CTS dan CTS Verifier, ada rilis ARM dan x86 untuk setiap arsitektur. Masing-masing dapat mendukung mode 32-bit atau 64-bit.
  • Untuk pengujian CTS, jika perangkat mendukung ARM dan x86, perangkat harus menjalankan dan lulus pengujian CTS ARM dan x86.

Lihat CDD 3.3.1. Antarmuka Biner Aplikasi untuk persyaratan CDD di ABI.

Apakah menjalankan pengujian hanya pada ABI primer (misalnya, 64 bit) sudah cukup untuk mengurangi waktu eksekusi uji?

Tidak. Aplikasi Android berjalan di runtime 32-bit atau 64-bit-nya sendiri. Kode mesin, jalur kode, dan status yang sebenarnya berbeda antara 32 dan 64. Jika Anda melewati satu mode, Anda hanya akan mencakup 50% ABI perangkat.

Mengapa ada begitu banyak kasus pengujian yang dilaporkan sebagai Tidak Dijalankan?

Anda harus memeriksa nomor Module Done, bukan nomor Not Executed.

Pada versi sebelumnya, modul CTS dilaporkan sebagai Modul Selesai terlalu agresif sebelum selesai. Oleh karena itu, jumlah Modules Done dilaporkan tanpa semua kasus pengujian selesai meskipun beberapa perangkat mengalami masalah. Harness pengujian baru lebih konservatif dan melaporkan jumlah pengujian Tidak Dijalankan yang lebih tinggi saat terjadi masalah.

Modul yang dijalankan hingga selesai melaporkan Modul Tidak Selesai dalam pemanggilan terbaru (done="false") dalam laporan selama hal berikut:

  • Pengujian yang dijalankan untuk modul terganggu oleh masalah koneksi perangkat.
  • Tidak semua pengujian yang diharapkan untuk modul dijalankan.
  • Dicoba lagi (menggunakan opsi -r/--retry) dengan opsi pemfilteran tambahan, seperti:

    • --sertakan-filter
    • --exclude-filter
    • -t/--test (Opsi belum didukung saat mencoba lagi)
    • --retry-type gagal
    • --subplan

Untuk mendapatkan status Module Done (done="true") bagi modul ini, coba lagi langkah berikut untuk pemanggilan terbaru:

run retry --retry <session_id> for Android 9 and later versions
run cts --retry <session_id> for Android 8.1 and previous versions

Modul yang dijalankan tanpa masalah yang disebutkan sebelumnya (bahkan dengan 0 pengujian yang tersisa) ditandai sebagai Module Done dalam laporan baru.

Pengecualian

  • CtsNNAPITestCases memiliki masalah umum karena keterbatasan argumen di Linux/OS. Modul dapat dijalankan ulang secara terpisah melalui run cts -m CtsNNAPITestCases secara langsung.

Bagaimana cara menghindari kegagalan persiapan pengujian di balik firewall perusahaan?

Semua rangkaian pengujian otomatis mencoba mendownload file media CTS atau file logika bisnis selama runtime. Di banyak lingkungan perusahaan, firewall dan proxy biasanya ada, yang membuat persiapan pengujian gagal. Jalankan baris berikut atau tambahkan ke .profile (di Ubuntu).

export JAVA_TOOL_OPTIONS='-Djava.net.useSystemProxies=true'

Apakah saya memerlukan kartu SIM untuk CTS untuk Elemen Pengaman?

Apakah kartu SIM diperlukan untuk pengujian bergantung pada pemahaman apakah fitur tersebut didukung di perangkat pengujian.

  • Jika perangkat Anda TIDAK perlu mendukung aplikasi Android dalam mengakses elemen pengaman—baik dalam UICC (misalnya, kartu SIM) yang didistribusikan oleh operator jaringan seluler (operator) maupun yang disematkan dalam perangkat—Anda dapat mengonfigurasi manifes HIDL agar tidak menyertakan elemen HAL android.hardware.secure_element. Dalam hal ini, API android.se.omapi.SEService.getReaders() melaporkan daftar kosong, dan pengujian CTS otomatis lulus dan melaporkan izin untuk CTS.
  • Jika perangkat Anda TIDAK perlu mendukung aplikasi Android yang mengakses elemen aman—baik di UICC (misalnya, kartu SIM) yang didistribusikan oleh operator jaringan seluler (operator) atau disematkan di perangkat—Anda perlu menerapkan elemen aman dengan benar dan mengujinya secara internal. Pengujian CTS untuk Elemen Pengaman menguraikan cara mempersiapkan pengujian CTS yang memastikan paket API android.se.omapi yang ditambahkan di Android 9 berfungsi. Sebaiknya lakukan pengujian tambahan sendiri karena cakupan pengujian CTS minimal.

Di mana saya bisa mendapatkan kartu SIM untuk CTS untuk Elemen Pengaman?

Anda dapat menghubungi vendor SIM pilihan Anda.

Mengapa SIM Orange ada di layar kunci selama eksekusi CTS dengan sharding token?

Kasus pengujian tidak dimulai karena pengujian kartu SIM terkunci. Nonaktifkan Kunci kartu SIM di **setelan kunci kartu SIM sebelum menjalankan CTS dengan sharding token.