UI TESTING
Pada pertemuan kali ini kita akan belajar mengenai materi UI TESTING yang ada pada android. UI testing mengacu pada pengujian antarmuka pengguna pada aplikasi Android. Dalam hal ini ada beberapa pendekatan yang dapat digunakan untuk melakukan UI testing pada Android:
1) Espresso: Espresso adalah framework pengujian yang disediakan oleh Android untuk pengujian antarmuka pengguna. Ini memungkinkan Anda untuk menulis skenario pengujian yang berinteraksi dengan elemen UI aplikasi, seperti mengklik tombol, mengisi formulir, dan memverifikasi hasilnya. Espresso memiliki sintaks yang sederhana dan intuitif, dan dapat digunakan untuk menguji aplikasi Android native maupun hybrid.
2) UI Automator: UI Automator adalah kerangka pengujian yang diperkenalkan oleh Android untuk pengujian antarmuka pengguna lintas aplikasi. Ini memungkinkan Anda untuk menguji aplikasi Android di tingkat sistem dengan mengontrol perangkat dan mengakses elemen UI di seluruh aplikasi yang berjalan. UI Automator berguna ketika Anda perlu menguji interaksi antara beberapa aplikasi, seperti pengujian integrasi atau pengujian aliran kerja.
3) Appium: Appium adalah kerangka pengujian open-source yang memungkinkan pengujian UI lintas platform, termasuk Android. Dengan menggunakan Appium, Anda dapat menulis skrip pengujian dalam bahasa pemrograman seperti Java, Python, atau JavaScript, dan menjalankannya pada perangkat fisik atau emulator Android. Appium mendukung berbagai bahasa dan alat pengembangan, sehingga memudahkan integrasi dengan alur kerja pengembangan yang ada.
4) Calabash: Calabash adalah kerangka pengujian yang digunakan untuk menguji aplikasi Android dan iOS. Ini menggunakan sintaks yang sederhana dan berbasis Gherkin untuk menulis skenario pengujian yang mudah dibaca dan dipahami oleh tim non-teknis. Calabash mendukung pengujian lintas platform dan memungkinkan pengujian otomatis pada perangkat fisik maupun emulator.
Selain kerangka pengujian di atas, ada juga beberapa alat dan layanan pihak ketiga yang dapat membantu dalam pengujian antarmuka pengguna pada Android, seperti Robotium, Selendroid, dan Firebase Test Lab. Penting untuk memilih pendekatan dan alat pengujian yang sesuai dengan kebutuhan dan lingkungan pengembangan kita. Setiap kerangka pengujian memiliki kelebihan dan keterbatasan tertentu, dan dapat disesuaikan dengan preferensi dan kebutuhan tim . Nah , agar lebih paham berikut ini merupakan salah satu contoh kode untuk pengujian UI pada aplikasi Android menggunakan Espresso :
Dalam contoh di atas, kita menggunakan Espresso untuk melakukan pengujian pada aktivitas MainActivity dari aplikasi Android. Kita menggunakan ActivityScenarioRule untuk memulai aktivitas tersebut. Kemudian, dalam metode pengujian testButtonClick(), kita menggunakan Espresso untuk menemukan tombol dengan ID "button_login" dan melakukan tindakan klik pada tombol tersebut. Di metode pengujian testFormInput(), kita menggunakan Espresso untuk menemukan field dengan ID "editText_name", mengisi teks "John Doe", dan kemudian menekan tombol dengan ID "button_submit". Kita dapat menyesuaikan kode pengujian sesuai dengan UI yang ingin Kita uji dalam aplikasi. Pastikan untuk menambahkan dependensi yang diperlukan untuk Espresso ke dalam berkas build.gradle kita, serta menyesuaikan ID dari elemen UI dalam kode sesuai dengan layout aplikasi Anda.
Selain itu ada pula contoh lain agar teman teman lebih paham lagi , cara UI testing menggunakan espresso:
Lanjutan source code diatas ialah sebagai berikut ;
Dalam contoh di atas, kita melakukan pengujian pada aktivitas MainActivity dari aplikasi Android. Pada metode pengujian testLoginSuccess(), kita mengisi teks pada field "editText_username" dan "editText_password", dan kemudian menekan tombol "button_login". Kemudian, kita dapat memverifikasi tindakan yang terjadi setelah login berhasil, seperti perpindahan tampilan atau pesan selamat datang yang muncul.
Di metode pengujian testLoginFailure(), kita mengisi teks pada field "editText_username" dan "editText_password" dengan informasi login yang salah, dan kemudian menekan tombol "button_login". Setelah itu, kita dapat memverifikasi tindakan yang terjadi setelah login gagal, seperti pesan kesalahan yang muncul atau pengguna tetap berada di halaman login.