Mengotomatiskan pengujian UI

Menguji interaksi pengguna membantu memastikan pengguna tidak mengalami hasil yang tidak terduga atau mendapatkan pengalaman buruk saat berinteraksi dengan aplikasi Anda. Anda harus terbiasa membuat pengujian antarmuka pengguna (UI) jika perlu memverifikasi bahwa UI aplikasi Anda berfungsi dengan benar.

Salah satu pendekatan untuk pengujian UI adalah meminta penguji manusia melakukan serangkaian operasi pengguna pada aplikasi target dan memverifikasi apakah aplikasi tersebut berperilaku dengan benar. Namun, pendekatan manual ini dapat memakan waktu dan rentan terhadap error. Pendekatan yang lebih efisien adalah menulis pengujian UI Anda sehingga tindakan pengguna dilakukan secara otomatis. Pendekatan otomatis memungkinkan Anda menjalankan pengujian dengan cepat dan andal serta dapat diulang.

Pengujian UI meluncurkan aplikasi (atau bagian dari aplikasi), lalu menyimulasikan interaksi pengguna, dan akhirnya memeriksa apakah aplikasi memberikan reaksi yang sesuai. Pengujian ini adalah pengujian integrasi yang dapat berkisar dari memverifikasi perilaku komponen kecil hingga pengujian navigasi besar yang melintasi seluruh alur penggunaan. Pengujian ini berguna untuk memeriksa regresi dan memverifikasi kompatibilitas dengan berbagai API level dan perangkat fisik.

Menjalankan pengujian UI

  • Untuk menjalankan pengujian UI berinstrumen menggunakan Android Studio, Anda menerapkan kode pengujian dalam folder pengujian Android terpisah - src/androidTest/java. Plugin Android Gradle membuat aplikasi pengujian berdasarkan kode pengujian Anda, lalu memuat aplikasi pengujian pada perangkat yang sama dengan aplikasi target. Dalam kode pengujian, Anda dapat menggunakan framework pengujian UI untuk menyimulasikan interaksi pengguna di aplikasi target, agar dapat melakukan tugas pengujian yang mencakup skenario penggunaan tertentu.
  • Anda juga dapat menggunakan Robolectric untuk menjalankan pengujian UI di JVM.

Penyiapan arsitektur dan pengujian

Arsitektur aplikasi Anda harus memungkinkan pengujian mengganti bagian-bagiannya untuk pengujian ganda dan Anda harus menggunakan library yang menyediakan utilitas untuk membantu pengujian. Misalnya, Anda dapat mengganti modul repositori data dengan versi dalam memori yang menyediakan data deterministik palsu untuk pengujian.

Diagram arsitektur produksi dan pengujian. Diagram produksi menunjukkan sumber data lokal dan jarak jauh yang menyediakan data ke repositori, yang pada akhirnya menyediakannya secara asinkron ke UI. Diagram pengujian menunjukkan repositori Palsu yang menyediakan datanya secara sinkron ke UI.
Gambar 3: Menguji UI dengan mengganti dependensinya dengan palsu.

Pendekatan yang direkomendasikan untuk mengganti dependensi adalah injeksi dependensi. Anda dapat membuat sistem Anda sendiri secara manual, tetapi sebaiknya gunakan framework DI seperti Hilt untuk ini.

Mengapa menguji UI secara otomatis?

Aplikasi Android dapat menargetkan ribuan perangkat berbeda di berbagai API level dan faktor bentuk, dan tingkat penyesuaian yang tinggi yang diberikan OS kepada pengguna berarti aplikasi Anda dapat dirender secara salah atau bahkan mengalami error di beberapa perangkat.

Pengujian UI memungkinkan Anda melakukan pengujian kompatibilitas, memverifikasi perilaku aplikasi dalam berbagai konteks. Anda mungkin ingin menjalankan pengujian UI di perangkat yang bervariasi dengan cara berikut:

  • API level: 21, 25, dan 30.
  • Lokasi: Inggris, Arab, dan Cina.
  • Orientasi: Potret, lanskap.

Selain itu, aplikasi harus memeriksa perilaku di luar ponsel. Anda harus menguji di tablet, perangkat foldable, dan perangkat lainnya. Baca selengkapnya tentang menguji berbagai ukuran layar.

Jenis Pengujian UI

Bagian ini membahas dua jenis pengujian UI:

  • Pengujian perilaku menganalisis hierarki UI untuk membuat pernyataan tentang properti elemen UI.
  • Pengujian screenshot mengambil screenshot UI dan membandingkannya dengan gambar yang disetujui sebelumnya.