CTS untuk Aplikasi Instan

Aplikasi Instan adalah fitur utama dari 10, jadi sangat penting untuk berfungsi dengan benar. Aplikasi Instan diinstal secara implisit, sehingga mereka memiliki serangkaian kemampuan terbatas dan berjalan di kotak pasir keamanan yang lebih ketat. Karena sifat umum dari pembatasan ini, bagian mana pun dari sistem berisiko tidak berfungsi dengan baik dengan Aplikasi Instan. Subset pengujian CTS dibuat untuk memastikan bahwa perilaku yang diizinkan oleh Aplikasi Instan berfungsi. Ide kuncinya adalah meminimalkan pertumbuhan ukuran CTS dengan mengisolasi set tes minimal ke port. CTS yang berjalan dalam mode Aplikasi Instan berarti menginstal APK pengujian sebagai Aplikasi Instan dan menjalankan pengujian.

Pembatasan Aplikasi Instan

Aplikasi Instan tidak diinstal oleh pengguna, jadi mereka berjalan di kotak pasir terbatas dengan batasan berikut:

  • Hanya dapat memegang izin tertentu.
  • Tidak dapat melihat aplikasi lain kecuali aplikasi tersebut ditandai sebagai terlihat oleh Aplikasi Instan.
  • Hanya dapat mengakses pengaturan sistem tertentu.
  • Hanya dapat mengakses properti sistem tertentu.
  • Tidak dapat mengekspos layanan/penyedia.
  • Dapat menerima dan mengirim dengan aturan khusus seputar siaran.

Selain itu, Aplikasi Instan harus memilih untuk mengizinkan kotak pasir keamanan baru menambahkan lebih banyak batasan. Berbagai perilaku khusus seputar Aplikasi Instan ini memotong seluruh platform, jadi perlu ada cara untuk memvalidasi bahwa Aplikasi Instan berfungsi seperti yang diharapkan untuk semua perangkat di ekosistem.

Pengujian berjalan dalam mode Aplikasi Instan

Tidak semua modul CTS memiliki pengujian yang berlaku untuk Aplikasi Instan. Jika fungsionalitas yang diuji oleh modul memiliki interaksi dengan server sistem, maka pengujian ini harus dijalankan dalam mode Aplikasi Instan. Misalnya, pengujian OpenGL tidak berinteraksi dengan server sistem sehingga tidak perlu menjalankannya dalam mode Aplikasi Instan saat pengujian aksesibilitas berinteraksi dengan server sistem tetapi ada kebutuhan untuk menjalankannya dalam mode Aplikasi Instan.

Selain mengidentifikasi modul mana yang dapat diterapkan, pengguna perlu menentukan tes mana dalam modul ini yang relevan. Misalnya, pengujian perilaku khusus layanan untuk arsitektur yang dapat dicolokkan (misalnya, AccessibilityService) tidak berlaku untuk mode Aplikasi Instan karena Aplikasi Instan tidak dapat mengekspos layanan ke aplikasi lain (termasuk platform) saat pengujian memvalidasi perilaku sisi aplikasi berlaku untuk mode Aplikasi Instan. Contoh lain adalah pengujian yang memvalidasi perilaku di balik izin yang tidak dapat dipegang oleh Aplikasi Instan tidak relevan dalam mode Aplikasi Instan. Ada serangkaian pengujian yang hanya berlaku untuk Aplikasi Instan yang memvalidasi aturan seputar perilakunya, misalnya, tidak mengekspos layanan, atau tidak melihat aplikasi lain. Biasanya, ini sudah ditulis dan tidak memerlukan porting.

Uji kegagalan dalam mode Instan

Jika pengujian gagal karena memvalidasi fungsionalitas yang tidak dapat diakses oleh Aplikasi Instan, maka pengujian tersebut tidak berlaku dalam mode Aplikasi Instan. Tandai pengujian untuk dijalankan hanya dalam mode Aplikasi Penuh dengan memberi anotasi dengan @AppModeFull . Anda dapat menerapkan anotasi ini ke tingkat kelas untuk mengecualikan semua tes di dalamnya.

Jika pengujian gagal karena beberapa fungsi yang dapat diakses oleh Aplikasi Instan rusak, laporkan bug .

Penyelesaian masalah

Jika pengujian Anda gagal dengan Failed to install MyCtsModule.apk di DEVICE. Alasan: '-116' , cari pesan PackageManager di logcat. Misalnya, jika dikatakan Tidak dapat mengganti Aplikasi Lengkap dengan Aplikasi Instan: your_app , maka adb uninstall aplikasi Anda terlebih dahulu.