Hal yang harus Anda uji bergantung pada beberapa faktor seperti jenis aplikasi, tim pengembangan, jumlah kode lama, dan arsitektur yang digunakan. Bagian berikut menjelaskan hal-hal yang mungkin perlu dipertimbangkan pemula saat merencanakan hal yang akan diuji di aplikasi mereka.
Organisasi direktori pengujian
Project standar di Android Studio berisi dua direktori yang menyimpan pengujian, bergantung pada lingkungan eksekusinya. Atur pengujian Anda dalam direktori berikut seperti yang dijelaskan:
- Direktori
androidTest
harus berisi pengujian yang berjalan di perangkat nyata atau virtual. Pengujian tersebut mencakup pengujian integrasi, pengujian menyeluruh, dan pengujian lain dengan JVM saja tidak dapat memvalidasi fungsionalitas aplikasi. - Direktori
test
harus berisi pengujian yang dijalankan di mesin lokal Anda, seperti pengujian unit. Berbeda dengan yang di atas, ini dapat berupa pengujian yang dijalankan di JVM lokal.
Pengujian unit yang penting
Saat mengikuti praktik terbaik, Anda harus memastikan bahwa Anda menggunakan pengujian unit dalam kasus berikut:
- Pengujian unit untuk ViewModels, atau presenter.
- Pengujian unit untuk lapisan data, terutama repositori. Sebagian besar lapisan data harus tidak bergantung pada platform. Dengan melakukannya, pengujian ganda akan dapat menggantikan modul database dan sumber data jarak jauh dalam pengujian. Lihat panduan tentang menggunakan dummy pengujian di Android
- Pengujian unit untuk lapisan lain yang tidak bergantung pada platform seperti lapisan Domain, seperti pada kasus penggunaan dan pemicu interaksi.
- Pengujian unit untuk class utilitas seperti manipulasi string dan matematika.
Menguji Kasus Edge
Pengujian unit harus berfokus pada kasus normal dan kasus ekstrem. Kasus ekstrem adalah skenario yang jarang terjadi dan sulit ditemukan oleh penguji manusia dan pengujian yang lebih besar. Contohnya antara lain:
- Operasi matematika menggunakan bilangan negatif, nol, dan kondisi batas.
- Semua kemungkinan error koneksi jaringan.
- Data yang rusak, seperti format JSON yang salah.
- Menyimulasikan penyimpanan penuh saat menyimpan ke file.
- Objek dibuat ulang di tengah proses (seperti aktivitas saat perangkat diputar).
Pengujian Unit yang Harus Dihindari
Beberapa pengujian unit harus dihindari karena nilainya rendah:
- Pengujian yang memverifikasi operasi framework atau library yang benar, bukan kode Anda.
- Titik entri framework seperti aktivitas, fragmen, atau layanan tidak boleh memiliki logika bisnis sehingga pengujian unit tidak boleh menjadi prioritas. Pengujian unit untuk aktivitas memiliki sedikit nilai, karena pengujian tersebut akan mencakup sebagian besar kode framework dan memerlukan penyiapan yang lebih rumit. Pengujian berinstrumen seperti pengujian UI dapat mencakup class ini.
Pengujian UI
Ada beberapa jenis pengujian UI yang harus Anda gunakan:
- Pengujian UI Layar memeriksa interaksi pengguna yang penting dalam satu layar. Fungsi ini melakukan tindakan seperti mengklik tombol, mengetik formulir, dan memeriksa status yang terlihat. Satu class pengujian per layar merupakan titik awal yang baik.
- Pengujian alur pengguna atau Pengujian navigasi, yang mencakup jalur paling umum. Pengujian ini menyimulasikan pengguna yang bergerak melalui alur navigasi. Pengujian ini adalah pengujian sederhana, yang berguna untuk memeriksa error pada runtime dalam inisialisasi.
Pengujian lainnya
Ada pengujian yang lebih khusus seperti pengujian screenshot, pengujian performa, dan pengujian monyet. Anda juga dapat mengategorikan pengujian berdasarkan tujuan, seperti regresi, aksesibilitas, dan kompatibilitas.
Bacaan lebih lanjut
Untuk menguji secara terpisah, sering kali Anda harus mengganti dependensi subjek yang sedang diuji dengan dependensi palsu atau tiruan, yang disebut "Kembaran pengujian" secara umum. Lanjutkan membaca tentang hal tersebut di Menggunakan dummy pengujian di Android.
Jika Anda ingin mempelajari cara membuat pengujian unit dan UI, lihat codelab Pengujian.