Menguji berbagai ukuran layar dan jendela

Pengujian adalah bagian integral dari proses pengembangan aplikasi. Anda biasanya menjalankan aplikasi di emulator atau perangkat untuk memverifikasi secara manual bahwa kode Anda berfungsi seperti yang diharapkan. Namun, pengujian manual menghabiskan waktu, rentan terhadap error, dan sering kali tidak dapat dikelola untuk aplikasi yang berjalan di layar dan perangkat dengan berbagai ukuran. Masalah pengujian manual paling sering terjadi karena menggunakan satu perangkat untuk pengembangan. Akibatnya, error dapat luput dari perhatian di perangkat lain dengan faktor bentuk yang berbeda.

Untuk mengidentifikasi regresi pada berbagai ukuran jendela dan layar, terapkan pengujian otomatis untuk memverifikasi bahwa perilaku dan tampilan aplikasi Anda konsisten di berbagai faktor bentuk. Pengujian otomatis mengidentifikasi masalah sejak awal, sehingga mengurangi risiko masalah yang memengaruhi pengalaman pengguna.

Yang perlu diuji

Saat mengembangkan UI yang dibuat untuk berbagai ukuran layar dan jendela, perhatikan dua aspek secara khusus:

  1. Perbedaan atribut visual komponen dan tata letak di jendela dengan ukuran yang berbeda
  2. Cara status dipertahankan di seluruh perubahan konfigurasi

Atribut visual

Baik Anda menyesuaikan UI untuk berbagai ukuran jendela maupun tidak, Anda harus memverifikasi bahwa UI ditampilkan dengan benar. Pertimbangkan lebar dan tinggi yang ringkas, sedang, dan diperluas. Lihat Class ukuran jendela untuk titik henti sementara yang direkomendasikan.

Gambar 1. Layar "Untuk Anda" di Now In Android dalam berbagai ukuran jendela

Selain itu, aplikasi Anda mungkin tidak merender beberapa komponen dalam sistem desain seperti yang diharapkan saat batasan ukurannya diregangkan.

Jika aplikasi Anda memiliki tata letak adaptif untuk berbagai ukuran jendela, Anda harus memiliki pengujian otomatis untuk mencegah regresi. Misalnya, memperbaiki margin di ponsel dapat menyebabkan inkonsistensi tata letak di tablet. Buat pengujian UI untuk memverifikasi perilaku tata letak dan komponen Anda, atau buat pengujian screenshot untuk memverifikasi tata letak secara visual.

Pemulihan status

Aplikasi yang berjalan di perangkat seperti tablet lebih sering diputar dan diubah ukurannya daripada aplikasi di ponsel. Selain itu, perangkat foldable memperkenalkan kemampuan tampilan baru, seperti melipat dan membentangkan, yang dapat memicu perubahan konfigurasi. Aplikasi Anda harus dapat memulihkan status saat perubahan konfigurasi ini terjadi. Anda juga perlu menulis pengujian yang mengonfirmasi bahwa aplikasi memulihkan status dengan benar.

Gambar 2. Perangkat foldable dilipat, dibuka datar, dibuka datar yang diputar ke lanskap, dan dibuka setengah (mode di atas meja).

Pertama, uji apakah aplikasi Anda tidak mengalami error saat perubahan konfigurasi terjadi. Pastikan setiap UI di aplikasi Anda dapat menangani kombinasi rotasi, pengubahan ukuran, atau pelipatan. Karena perubahan konfigurasi membuat ulang aktivitas secara default, beberapa error terjadi karena asumsi persistensi aktivitas.

Ada beberapa cara untuk menguji perubahan konfigurasi, tetapi untuk sebagian besar kasus, ada dua cara untuk menguji:

  • Di Compose, gunakan StateRestorationTester untuk menyimulasikan perubahan konfigurasi dengan cara yang efisien tanpa memulai ulang aktivitas. Lihat bagian berikut untuk mengetahui informasi selengkapnya.
  • Dalam pengujian UI apa pun seperti Espresso atau Compose, simulasikan perubahan konfigurasi dengan memanggil Activity.recreate().

Anda umumnya tidak perlu menggunakan perangkat yang berbeda untuk menguji pemulihan status sebagai respons terhadap perubahan konfigurasi. Hal ini karena semua perubahan konfigurasi yang membuat ulang aktivitas memiliki konsekuensi serupa. Namun, beberapa perubahan konfigurasi dapat memicu mekanisme pemulihan status yang berbeda di perangkat tertentu.

Misalnya, saat pengguna melihat UI detail daftar di perangkat foldable terbuka dan mereka melipat perangkat untuk beralih ke layar depan, UI biasanya beralih ke halaman detail. Pengujian otomatis harus mencakup pemulihan status UI ini, termasuk status navigasi.

Untuk menguji perubahan konfigurasi yang terjadi pada perangkat yang beralih dari satu tampilan ke tampilan lain atau memasuki mode multi-aplikasi, Anda memiliki beberapa opsi:

  • Menggunakan perangkat apa pun, ubah ukuran layar selama pengujian. Pada umumnya, tindakan ini memicu semua mekanisme pemulihan status yang perlu Anda verifikasi. Namun, pengujian ini tidak akan berfungsi untuk logika yang mendeteksi postur tertentu di perangkat foldable, karena perubahan postur tidak memicu perubahan konfigurasi.
  • Dengan menggunakan perangkat atau emulator yang mendukung fitur yang ingin Anda uji, picu perubahan konfigurasi terkait. Misalnya, perangkat foldable atau tablet dapat dikontrol menggunakan Perangkat Espresso untuk berpindah dari posisi terlipat ke terbuka datar dalam lanskap. Lihat bagian Perangkat Espresso di Library dan alat untuk menguji berbagai ukuran layar untuk mengetahui contohnya.
Gambar 3. Perangkat dilipat dan dibentangkan.

Jenis pengujian untuk berbagai ukuran layar dan jendela

Gunakan jenis pengujian yang sesuai untuk setiap kasus penggunaan guna memverifikasi bahwa pengujian berfungsi dengan benar di berbagai faktor bentuk:

  • Pengujian perilaku UI meluncurkan beberapa bagian UI aplikasi, seperti tampilan aktivitas. Pengujian memverifikasi bahwa elemen tertentu ada atau memiliki atribut tertentu . Pengujian dapat secara opsional melakukan tindakan pengguna yang disimulasikan. Untuk tampilan, gunakan Espresso. Jetpack Compose memiliki API pengujian sendiri. Pengujian perilaku UI dapat berinstrumen atau lokal. Pengujian berinstrumen berjalan di perangkat atau emulator, sedangkan pengujian UI lokal berjalan di Robolectric di JVM.

    Gunakan pengujian perilaku UI untuk memverifikasi bahwa penerapan navigasi aplikasi sudah benar. Pengujian ini melakukan tindakan seperti klik dan geser. Pengujian perilaku UI juga memeriksa keberadaan elemen atau properti tertentu. Untuk informasi selengkapnya, lihat Mengotomatiskan pengujian UI.

  • Pengujian screenshot mengambil screenshot UI atau komponen dan membandingkan gambar dengan screenshot yang disetujui sebelumnya. Ini adalah cara yang sangat efektif untuk melindungi dari regresi, karena satu screenshot dapat mencakup sejumlah besar elemen dan properti visualnya. Anda dapat menjalankan pengujian screenshot di JVM atau di perangkat. Ada beberapa framework pengujian screenshot yang tersedia. Untuk informasi selengkapnya, lihat pengujian screenshot.

Terakhir, Anda mungkin memerlukan pengujian unit untuk menguji fungsi unit logika yang berperilaku berbeda-beda bergantung pada jenis perangkat atau ukuran jendela, tetapi pengujian unit kurang umum di area ini.

Langkah berikutnya

Untuk informasi selengkapnya tentang cara menerapkan pemeriksaan yang terdapat dalam dokumen ini, lihat Library dan alat.