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 memakan 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 disebabkan oleh penggunaan satu perangkat untuk pengembangan. Akibatnya, error dapat tidak terlihat 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, mengurangi risiko masalah yang memengaruhi pengalaman pengguna.

Yang perlu diuji

Saat mengembangkan UI yang dibuat untuk berbagai ukuran layar dan jendela, beri perhatian khusus pada dua aspek:

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

Atribut visual

Baik menyesuaikan UI untuk ukuran jendela yang berbeda atau tidak, Anda harus memastikan 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 direntangkan.

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, atau buat pengujian screenshot untuk memverifikasi tata letak secara visual.

Pemulihan status

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

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

Pertama, uji apakah aplikasi Anda tidak error saat terjadi perubahan konfigurasi. Pastikan setiap UI di aplikasi Anda dapat menangani kombinasi rotasi, pengubahan ukuran, atau lipat. 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 secara 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().

Biasanya Anda tidak perlu menggunakan perangkat yang berbeda untuk menguji pemulihan status sebagai respons terhadap perubahan konfigurasi. Ini karena semua perubahan konfigurasi yang membuat ulang aktivitas memiliki dampak yang serupa. Namun, beberapa perubahan konfigurasi dapat memicu mekanisme pemulihan status yang berbeda pada perangkat tertentu.

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

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

  • Ubah ukuran layar selama pengujian menggunakan perangkat apa pun. Dalam sebagian besar kasus, hal 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.
  • Menggunakan perangkat atau emulator yang mendukung fitur yang ingin Anda uji, akan memicu perubahan konfigurasi terkait. Misalnya, perangkat foldable atau tablet dapat dikontrol menggunakan Perangkat Espresso untuk berpindah dari terlipat menjadi terbuka datar dalam lanskap. Lihat bagian Perangkat Espresso di Library dan alat untuk menguji berbagai ukuran layar sebagai contoh.
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 ada elemen tertentu atau memiliki atribut tertentu . Pengujian dapat secara opsional melakukan simulasi tindakan pengguna. Untuk tampilan, gunakan Espresso. Jetpack Compose memiliki API pengujian sendiri. Pengujian perilaku UI dapat berupa instrumentasi atau lokal. Pengujian berinstrumen berjalan pada perangkat atau emulator, sedangkan pengujian UI lokal berjalan pada Robolectric di JVM.

    Gunakan pengujian perilaku UI untuk memverifikasi bahwa implementasi navigasi aplikasi sudah benar. Pengujian ini melakukan tindakan seperti klik dan geser. Pengujian perilaku UI juga memeriksa keberadaan elemen atau properti tertentu. Untuk mengetahui 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 pada JVM atau di perangkat. Ada beberapa framework pengujian screenshot yang tersedia.

Terakhir, Anda mungkin memerlukan pengujian unit untuk menguji fungsionalitas unit logika yang berperilaku berbeda bergantung pada jenis perangkat atau ukuran jendela, tetapi pengujian unit jarang dilakukan di area ini.

Langkah berikutnya

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