Pengujian di Android Studio

Android Studio didesain untuk menyederhanakan pengujian. Android Studio berisi banyak fitur untuk menyederhanakan cara Anda membuat, menjalankan, dan menganalisis pengujian. Anda dapat menyiapkan pengujian yang berjalan di komputer lokal atau pengujian berinstrumen yang berjalan di perangkat. Anda dapat dengan mudah menjalankan satu pengujian atau grup pengujian tertentu pada satu atau beberapa perangkat. Hasil pengujian ditampilkan langsung di dalam Android Studio.

Gambar 1. Android Studio menampilkan ringkasan hasil pengujian.

Halaman ini membahas cara mengelola pengujian di Android Studio. Untuk mempelajari cara menulis pengujian Android otomatis, lihat Menguji aplikasi di Android.

Jenis dan lokasi pengujian

Lokasi pengujian bergantung pada jenis pengujian yang Anda tulis. Project Android memiliki direktori kode sumber default untuk pengujian unit lokal dan pengujian berinstrumen.

Pengujian unit lokal terletak di module-name/src/test/java/. Semua pengujian ini dijalankan pada Java Virtual Machine (JVM) lokal komputer Anda. Gunakan pengujian ini untuk meminimalkan waktu eksekusi saat pengujian Anda tidak memiliki dependensi framework Android atau saat Anda dapat membuat duplikat pengujian untuk dependensi framework Android. Untuk informasi cara menulis pengujian unit lokal selengkapnya, lihat Mem-build pengujian unit lokal.

Pengujian berinstrumen terletak di $module-name/src/androidTest/java/. Pengujian ini berjalan pada perangkat hardware atau emulator. Pengujian ini memiliki akses ke API Instrumentation yang memberi Anda akses ke informasi, seperti class Context, di aplikasi yang diuji, dan memungkinkan Anda mengontrol aplikasi yang sedang diuji dari kode pengujian Anda. Pengujian berinstrumen di-build ke dalam APK terpisah sehingga memiliki file AndroidManifest.xml sendiri. File ini dibuat secara otomatis, tetapi Anda dapat membuat versi Anda sendiri di $module-name/src/androidTest/AndroidManifest.xml, yang akan digabungkan dengan manifes yang dihasilkan. Gunakan pengujian berinstrumen saat menulis pengujian integrasi dan UI fungsional untuk mengotomatiskan interaksi pengguna, atau saat pengujian memiliki dependensi Android yang tidak dapat Anda buat duplikat pengujiannya. Untuk informasi cara menulis pengujian berinstrumen selengkapnya, lihat Mem-build pengujian berinstrumen dan Mengotomatiskan pengujian UI.

Anda dapat menempatkan pengujian di direktori khusus varian build untuk menguji varian build tertentu saja. Misalnya, Anda dapat menempatkan beberapa pengujian unit lokal di $module-name/src/testMyFlavor/java/ sehingga pengujian menargetkan aplikasi di-build dengan kode sumber ragam ini. Untuk informasi selengkapnya cara membuat pengujian yang disesuaikan ini, lihat Membuat pengujian berinstrumen untuk varian build.

Saat Anda membuat project baru atau menambahkan modul aplikasi, Android Studio akan membuat beberapa set sumber pengujian yang dicantumkan sebelumnya dan menyertakan contoh file pengujian dalam setiap set. Anda dapat melihatnya di jendela Project seperti yang ditampilkan dalam gambar 2.

Gambar 2. (1) pengujian berinstrumen dan (2) pengujian JVM lokal project Anda dapat dilihat di tampilan Project (kiri) atau Android (kanan).

Membuat pengujian baru

Anda dapat menambahkan pengujian baru untuk class atau metode tertentu langsung dari kode sumbernya dengan mengikuti langkah-langkah berikut:

  1. Buka file sumber yang berisi kode yang ingin Anda uji.
  2. Letakkan kursor di nama class atau metode yang ingin diuji, lalu tekan Control+Shift+T (Command+Shift+T di macOS).
  3. Di pop-up yang muncul, klik Create New Test…
  4. Pada dialog Create Test, pilih JUnit4, edit kolom dan metode yang ingin dihasilkan, lalu klik OK.
  5. Pada dialog Choose Destination Directory, klik set sumber yang sesuai dengan jenis pengujian yang ingin Anda buat: androidTest untuk pengujian berinstrumen atau test untuk pengujian unit lokal. Lalu, klik OK.

Atau, Anda dapat membuat file pengujian generik dalam set sumber pengujian yang sesuai seperti berikut:

  1. Pada jendela Project di sebelah kiri, klik menu drop-down dan pilih tampilan Android.
  2. Klik kanan direktori java, lalu pilih New > Java Class atau New > Kotlin Class/File. Atau, Anda dapat memilih direktori java, lalu gunakan pintasan Control+N (Command+N di macOS).
  3. Pada dialog Choose Destination Directory, klik set sumber yang sesuai dengan jenis pengujian yang ingin Anda buat: androidTest untuk pengujian berinstrumen atau test untuk pengujian unit lokal. Lalu, klik OK.
  4. Beri nama file, lalu klik OK.

Jika aplikasi tidak mengompilasi setelah menambahkan pengujian, pastikan penyiapan dependensi library pengujian Anda sudah benar. Lihat Mem-build pengujian lokal dan Mem-build pengujian berinstrumen untuk dependensi yang benar.

Menjalankan pengujian

Sebelum menjalankan pengujian apa pun, pastikan project sepenuhnya disinkronkan dengan Gradle dengan mengklik Sync Project di toolbar. Anda dapat menjalankan pengujian dengan berbagai tingkat perincian:

  • Untuk menjalankan semua pengujian di direktori atau file, buka jendela Project, lalu lakukan salah satu cara berikut:

    • Klik kanan direktori atau file, lalu klik Run .
    • Pilih direktori atau file, lalu gunakan pintasan Control+Shift+R.
  • Untuk menjalankan semua pengujian di class atau metode tertentu, buka file pengujian di Editor Kode, lalu lakukan salah satu cara berikut:

    • Tekan ikon Run test di gutter.
    • Klik kanan class atau metode pengujian, lalu klik Run .
    • Pilih class atau metode pengujian, lalu gunakan pintasan Control+Shift+R.

Pengujian berinstrumen Anda akan berjalan pada perangkat fisik atau emulator. Untuk mempelajari cara menyiapkan perangkat fisik, lihat Menjalankan aplikasi di perangkat hardware. Untuk mempelajari lebih lanjut cara menyiapkan emulator, lihat Menjalankan aplikasi pada Android Emulator.

Mengonfigurasi pengujian

Secara default, pengujian Anda dijalankan menggunakan konfigurasi run default Android Studio. Jika perlu mengubah beberapa setelan run seperti opsi runner dan deployment instrumentasi, Anda dapat mengedit konfigurasi run pada dialog Run/Debug Configurations (klik Run > Edit Configurations).

Runner pengujian Gradle terpadu

Plugin Android Gradle 7.1.0 dan Android Studio Bumblebee dan yang lebih tinggi menggunakan implementasi Gradle sendiri untuk runner pengujian berinstrumen Android guna menjalankan pengujian berinstrumen. Dengan menggunakan runner pengujian yang sama, hasilnya kemungkinan akan konsisten baik Anda menjalankannya menggunakan AGP dari command line, seperti di server continuous integration, atau dari Android Studio.

Gambar 3. Runner pengujian Gradle Terpadu.

Android Studio versi sebelumnya menggunakan runner pengujian berinstrumen Android IntelliJ, bukan runner pengujian berinstrumen Android Gradle. Jadi, jika Anda tidak menggunakan Android Studio versi terbaru, bergantung pada apakah Anda menjalankan pengujian dari Android Studio atau dari command line menggunakan plugin Gradle, Anda mungkin akan melihat hasil pengujian yang berbeda: seperti pengujian yang lulus menggunakan satu runner dan gagal dengan runner lainnya.

Gambar 4. Runner pengujian terpisah pada Android Studio versi lama.

Jika Anda sudah memiliki konfigurasi pengujian berinstrumen yang disimpan ke project, konfigurasi tersebut akan menggunakan Gradle untuk menjalankan pengujian pada perangkat yang terhubung. Anda dapat membuat konfigurasi pengujian berinstrumen baru menggunakan tindakan gutter di samping class atau metode pengujian Anda, seperti yang ditunjukkan di bawah.

Gambar 5. Menjalankan pengujian dari tindakan gutter.

Saat menjalankan pengujian berinstrumen, Anda dapat mengonfirmasi bahwa Android Studio menggunakan runner pengujian Gradle dengan memeriksa output pengujian dalam output tugas Matriks Uji untuk Gradle.

Menjalankan di beberapa perangkat secara paralel

Pengujian berinstrumen secara default berjalan pada satu perangkat fisik atau emulator. Jika ingin melihat cara perilaku pengujian Anda pada lebih banyak perangkat, Anda dapat memilihnya dengan mengikuti langkah-langkah berikut:

  1. Sebelum menjalankan pengujian, buka menu target device drop-down, lalu pilih Select Multiple Devices….

    Gambar 6. Memilih menu drop-down Multiple Devices.

  2. Pilih perangkat target dan klik OK.

  3. Pastikan teks pada menu drop-down target diubah ke Multiple Devices, lalu klik Run .

  4. Jendela alat Matriks Uji menampilkan hasil pengujian untuk setiap konfigurasi perangkat yang dipilih.

    Gambar 7. Hasil pengujian di jendela alat Matriks Uji.

  5. Anda dapat mengklik pengujian tertentu untuk memeriksa hasilnya di panel output. Anda juga dapat mengurutkan pengujian dengan mengklik berbagai kolom.

Menjalankan dengan Firebase Test Lab

Dengan Firebase Test Lab, Anda dapat menguji aplikasi secara bersamaan di berbagai perangkat Android dan konfigurasi perangkat (berbagai kombinasi lokalitas, orientasi, ukuran layar, dan versi platform). Pengujian ini berjalan pada perangkat fisik dan virtual di pusat data Google jarak jauh. Hasil pengujian memberikan log pengujian dan menyertakan detail kegagalan aplikasi.

Untuk mulai menggunakan Firebase Test Lab, Anda perlu melakukan hal berikut:

  1. Buat akun Google jika Anda belum memilikinya.
  2. Di Firebase console, klik Create New Project.

Android Studio menyediakan alat terintegrasi yang memungkinkan Anda mengonfigurasi cara Anda ingin men-deploy pengujian ke Firebase Test Lab. Setelah membuat project Firebase, Anda dapat membuat konfigurasi dan menjalankan pengujian:

  1. Dari menu utama, klik Run > Edit Configurations.
  2. Klik Add New Configuration , lalu pilih Android Instrumented Tests.
  3. Masukkan atau pilih detail pengujian Anda, seperti nama pengujian, jenis modul, jenis pengujian, dan class pengujian.
  4. Dari menu drop-down Target, di bagian Deployment Target Options, pilih Firebase Test Lab Device Matrix.
  5. Jika belum login, klik Sign in with Google dan izinkan Android Studio untuk mengakses akun Anda.
  6. Di samping Cloud Project, pilih project Firebase Anda dari daftar.
  7. Di samping Matrix configuration, pilih salah satu konfigurasi default dari menu drop-down atau buat sendiri dengan menekan Open Dialog . Anda dapat memilih satu atau beberapa perangkat, versi Android, lokalitas, dan orientasi layar tempat Anda ingin menguji aplikasi. Firebase Test Lab akan menguji aplikasi Anda dengan setiap kombinasi pilihan Anda saat membuat hasil pengujian.
  8. Klik OK di dialog Run/Debug Configurations untuk keluar.
  9. Jalankan pengujian dengan mengklik Run .

Gambar 8. Membuat konfigurasi pengujian untuk Firebase Test Lab.

Menganalisis hasil pengujian

Setelah Firebase Test Lab selesai menjalankan pengujian Anda, jendela Run akan terbuka untuk menampilkan hasilnya, seperti yang ditunjukkan pada gambar 9. Anda mungkin perlu mengklik Show Passed untuk melihat semua pengujian yang dilakukan.

Gambar 9. Hasil pengujian berinstrumen menggunakan Firebase Test Lab.

Anda juga dapat menganalisis pengujian di web dengan mengikuti link yang ditampilkan di awal log eksekusi uji di jendela Run.

Melihat cakupan pengujian

Alat cakupan pengujian tersedia untuk pengujian unit lokal guna melacak persentase dan area kode aplikasi yang dicakup oleh pengujian unit Anda. Gunakan alat ini untuk menentukan apakah Anda telah menguji elemen, class, metode, dan baris kode yang membentuk aplikasi Anda secara memadai.

Untuk menjalankan pengujian dengan cakupan, ikuti langkah yang sama seperti yang dijelaskan dalam Run tests. Namun, klik Run test-name with coverage , bukan Run . Di jendela Project, opsi ini mungkin ada di dalam More Run/Debug. Anda juga dapat mengonfigurasi setelan cakupan di dialog Run/Debug Configurations, di bagian tab Code Coverage.

Gambar 10. Persentase cakupan kode untuk aplikasi.

Melihat hasil pengujian

Saat menjalankan satu atau beberapa pengujian dari Android Studio, hasilnya akan muncul di jendela Run. Gambar 11 menunjukkan pengujian yang berhasil.

Gambar 11. Hasil pengujian ditampilkan di jendela Run.

Jendela Run menampilkan pengujian dalam tampilan hierarki di sebelah kiri, serta hasil dan pesan untuk rangkaian pengujian saat ini di panel output di sebelah kanan. Gunakan toolbar, menu konteks, dan ikon status untuk mengelola hasil pengujian, sebagai berikut:

  1. Gunakan toolbar run untuk menjalankan ulang pengujian saat ini, menghentikan pengujian saat ini, menjalankan ulang pengujian yang gagal (tidak ditampilkan karena hanya tersedia untuk pengujian unit), menjeda output, dan membuang thread.
  2. Gunakan toolbar pengujian untuk memfilter dan mengurutkan hasil pengujian. Anda juga dapat meluaskan atau menciutkan node, menampilkan cakupan pengujian, dan mengimpor atau mengekspor hasil pengujian.
  3. Klik menu konteks untuk melacak pengujian yang sedang berjalan, menampilkan statistik inline, men-scroll ke stack trace, membuka kode sumber sebagai pengecualian, men-scroll otomatis ke sumber, dan memilih pengujian pertama yang gagal saat pengujian yang dijalankan selesai.
  4. Ikon status pengujian menunjukkan apakah pengujian mengalami error, diabaikan, gagal, sedang berlangsung, telah lulus, dijeda, dihentikan, atau tidak berjalan.
  5. Klik kanan baris dalam tampilan hierarki untuk menampilkan menu konteks yang memungkinkan Anda menjalankan pengujian dalam mode debug, membuka file kode sumber pengujian, atau melompat ke baris dalam kode sumber yang sedang diuji.

Menganalisis kegagalan uji

Jika satu atau beberapa pengujian gagal, jendela hasil akan menampilkan tanda peringatan dan jumlah kegagalan (misalnya, "Tests failed: 1"):

Gambar 12. Detail pengujian gagal di panel output.

Jika mengklik pengujian yang gagal di tampilan hierarki di sebelah kiri, panel output di sebelah kanan akan menampilkan detail pengujian tersebut. Panel tersebut menampilkan nilai yang diharapkan di samping nilai yang sebenarnya sehingga Anda dapat membandingkannya. Link Click to see difference akan membuka penampil perbedaan tempat Anda dapat melihat hasilnya secara berdampingan.

Pelajari lebih lanjut

Halaman ini membahas langkah-langkah dasar untuk diikuti saat membuat dan menjalankan pengujian pertama Anda menggunakan Android Studio. Anda juga dapat memilih untuk menjalankan pengujian dari command line. Anda juga dapat melihat dokumentasi IntelliJ tentang pengujian. Untuk informasi lebih lanjut cara mengonfigurasi pengujian saat membuat lebih banyak rangkaian pengujian, lihat Penyiapan pengujian lanjutan.