Android Tutorial Pengujian Aplikasi dengan Kerangka Kerja Otomatisasi

โšก Ringkasan Cerdas

Android Pengujian aplikasi memverifikasi sebuah build di berbagai perangkat yang terfragmentasi, menggabungkan pemeriksaan unit, integrasi, operasional, dan sistem dengan kerangka kerja otomatisasi yang berjalan baik di perangkat maupun langsung di JVM.

  • ๐Ÿ”˜ Mengapa hal ini penting: Android Aplikasi ini berjalan di berbagai kombinasi perangkat dan versi yang tak terhitung jumlahnya, sehingga cacat kompatibilitas hampir pasti terjadi.
  • โ˜‘๏ธ Empat level pengujian: Pengujian unit, integrasi, operasional, dan sistem masing-masing mendeteksi jenis cacat yang berbeda.
  • โœ… Kerangka kerja pada perangkat: The Android kerangka pengujian dibangun di atas JUnit dan instrumentasi.
  • ๐Ÿงช Alternatif JVM: Bayangan Roboelektrik Android kelas sehingga rangkaian perangkat lunak dapat berjalan di JVM tanpa perangkat atau emulator.
  • ๏ธ Perangkat alat yang lebih luas: Espresso, UI Automator dan Appium memperluas cakupan di luar kelas bawaan.
  • ๐Ÿ“Š Mitos yang harus dihindari: Penggunaan emulator saja, beberapa perangkat genggam, atau pengujian eksplorasi di menit-menit terakhir akan meninggalkan cacat pada produk jadi.

Android Tutorial pengujian aplikasi yang mencakup level pengujian, kerangka kerja otomatisasi, dan cakupan perangkat.

Mengapa Android Pengujian?

Android adalah sistem operasi terbesar di dunia. Pada saat yang sama, Android bersifat terfragmentasi: ada banyak sekali perangkat dan Android versi yang harus kompatibel dengan aplikasi Anda.

Tidak peduli berapa banyak waktu yang Anda investasikan dalam desain dan implementasi, kesalahan tidak dapat dihindari, dan bug akan muncul.

Android Strategi Pengujian

Benar Android Strategi pengujian harus mencakup hal-hal berikut:

  1. Tes Unit
  2. Tes integrasi
  3. OperaTes nasional
  4. Uji Sistem

Tes unit

Unit Test adalah serangkaian program yang dirancang untuk memverifikasi unit dasar kode sumber, seperti sebuah metode atau kelas.

The Android platform ini sudah terintegrasi dengan JUnit Kerangka kerja 3.0. Ini adalah kerangka kerja sumber terbuka untuk otomatisasi. Pengujian Unit, dan ini memungkinkan pengembang untuk menulis program pengujian unit yang efektif.

Selain pengujian unit, ada juga pengujian antarmuka pengguna (UI). Pengujian ini mencakup komponen UI dari aplikasi target Anda dan memastikan aplikasi tersebut memberikan output yang benar untuk serangkaian tindakan pengguna pada perangkat.

Tindakan UI pengguna umum pada sebuah Android aplikasi seperti ketuk, ketik, dan geser

Cara umum untuk melakukan pengujian UI pada perangkat adalah Android Instrumentasi. Tapi ini punya masalah kinerja. Salah satu alat terbaik untuk melakukan pengujian UI Android is Robotium.

โš ๏ธ Catatan versi: JUnit 3 kelas seperti Kasus Uji Instrumentasi telah dihentikan penggunaannya pada API 24; proyek saat ini menggunakan AndroidTes X, Espresso dan UI Automator. Robotium belum ada rilisan sejak tahun 2016.

Tes integrasi

In Tes integrasiSemua modul yang telah diuji unitnya digabungkan dan diverifikasi. Di dalam Android Hal ini seringkali berarti memeriksa integrasi dengan komponen seperti pengujian Layanan, Aktivitas, dan Penyedia Konten.

Jenis pengujian integrasi aktif Android mencakup pengujian penyedia layanan, aktivitas, dan konten.

Banyak kerangka kerja pengujian digunakan untuk melakukan pengujian integrasi untuk Android, seperti Troyd, Robolectric dan Robotium.

Operates nasional

OperaPengujian teknis, juga disebut Pengujian Fungsional atau Pengujian Penerimaan, adalah pengujian tingkat tinggi yang memeriksa kelengkapan dan kebenaran aplikasi.

In Android, fitnes adalah kerangka kerja sumber terbuka yang memudahkan menjalankan pengujian operasional terhadap aplikasi target.

Tes sistem

In Pengujian Sistem sistem diuji secara keseluruhan dan interaksi antara komponen, perangkat lunak dan perangkat keras diperiksa.

In Android, Pengujian Sistem biasanya mencakup

  • Tes GUI
  • Tes kegunaan
  • Tes kinerja
  • Tes stres

Dalam daftar di atas, Pengujian Kinerja diberikan lebih fokus. Anda dapat menggunakan alat seperti Tracmelihat untuk melakukan uji kinerja pada AndroidAlat ini dapat membantu Anda men-debug aplikasi Anda dan memprofilkan kinerjanya. Traceview sekarang sudah tidak digunakan lagi dan digantikan oleh Profiler CPU.

Otomatis Android pengujian

As Android Sistemnya terfragmentasi, pengujian pada banyak perangkat diperlukan, dan itu membutuhkan biaya. Otomatisasi Android Pengujian membantu mengurangi biaya tersebut.

Manfaat otomatisasi Android pengujian

  • Kurangi waktu untuk mengeksekusi kasus uji
  • Tingkatkan produktivitas proses pengembangan Anda
  • Deteksi bug dini, menghemat biaya pemeliharaan perangkat lunak
  • Temukan dan perbaiki bug pada implementasi dengan cepat
  • Pastikan kualitas perangkat lunak

Kita akan mempelajari 2 kerangka kerja berikut ini

  • Android Kerangka pengujian
  • Kerangka Pengujian Roboelektrik

Android kerangka pengujian

Salah satu kerangka pengujian standar untuk Android aplikasi adalah Android Kerangka kerja pengujian. Ini terintegrasi dengan baik dengan Android SDK tools, dan arsitekturnya memiliki tiga bagian.

  1. Paket aplikasi adalah aplikasi target Anda yang perlu diuji.
  2. InstrumentationTestRunner adalah Uji Kasus Runner yang mengeksekusi kasus uji pada aplikasi target. Ini mencakup:
    • Alat uji: Alat SDK untuk membangun pengujian. Alat-alat ini terintegrasi dalam IDE atau dijalankan dari baris perintah.
    • Pelari Monyet: Sebuah alat yang menyediakan API untuk menulis program yang mengontrol suatu Android perangkat atau emulator di luar Android kode.
  3. Paket pengujian diorganisir ke dalam proyek pengujian dan mengikuti konvensi penamaan. Jika aplikasi yang diuji memiliki nama paket "com.mydomain.myapp", maka paket pengujian haruslah "com.mydomain.myapp.test". Paket pengujian mencakup 2 objek:
    • Kelas kasus uji: menyertakan metode pengujian yang akan dijalankan pada aplikasi target.
    • Objek tiruan: Sertakan data tiruan yang akan digunakan sebagai contoh input untuk kasus uji.

Android Kelas Kasus Uji

AndroidDiagram kelas TestCase yang menunjukkan JUnit dan hierarki kasus uji instrumentasi

  1. TestCase mencakup JUnit metode untuk dijalankan JUnit uji
  2. TestSuite digunakan untuk menjalankan serangkaian kasus uji.
  3. InstrumentationTestSuite adalah TestSuite yang menyuntikkan Instrumentation ke dalam InstrumentationTestCase sebelum menjalankannya.
  4. InstrumentationTestRunner menjalankan kasus uji pada aplikasi target.
  5. AndroidTestCase memperluas JUnit TestCase dengan metode untuk mengakses sumber daya seperti Activity Context.
  6. ApplicationTestCase memverifikasi kelas Application dalam lingkungan yang terkontrol.
  7. InstrumentationTestCase memverifikasi fitur atau perilaku tertentu, misalnya output UI dari aplikasi.
  8. ActivityTestCase adalah kelas dasar yang mendukung pengujian Aktivitas Aplikasi.
  9. ProviderTestCase adalah kelas untuk menguji satu ContentProvider.
  10. ServiceTestCase menguji kelas Service dalam lingkungan pengujian dan mendukung siklus hidup Service.
  11. SingleLaunchActivityTestCase digunakan untuk menguji satu Activity dengan InstrumentationTestCase.
  12. Unit Aktivitas Kasus Uji digunakan untuk menguji aktivitas tunggal yang terisolasi.
  13. AktivitasInstrumentasiKasusUji2 memperluas JUnit Kelas TestCase menghubungkan Anda ke aplikasi target dengan instrumentasi, sehingga Anda dapat mengakses komponen GUI dan mengirimkan peristiwa UI seperti penekanan tombol atau sentuhan.

Berikut adalah contoh ActivityInstrumentationTestCase. Contoh ini memverifikasi pengoperasian UI dari aplikasi Kalkulator dan memeriksa kebenaran output UI.

Contoh ActivityInstrumentationTestCase2 yang memverifikasi output UI Kalkulator pada Android

Kerangka pengujian robolektrik

Pengujian menggunakan Android Kerangka kerja pengujian dengan perangkat atau emulator itu sulit. Membangun dan menjalankan pengujian lambat dan membutuhkan banyak upaya pengembangan. Untuk mengatasi masalah ini, ada pilihan lain: kerangka kerja pengujian Robolectric.

Robolectric memungkinkan Anda untuk menjalankan Android Melakukan pengujian langsung pada JVM tanpa memerlukan perangkat atau emulator.

Kelas Kasus Uji Roboelektrik

Robolectric dapat melakukan tindakan-tindakan berikut:

  • Daftarkan dan buat kelas Shadow
  • Mencegah pemuatan Android kelas
  • penggunaan Javamembantu untuk menimpa isi metode dari Android kelas
  • Ikat objek Shadow ke Android kelas

Hal ini memungkinkan kode yang sedang diuji untuk dieksekusi tanpa Android lingkungan.

Kerangka kerja pengujian lainnya

Selain kerangka kerja pengujian yang disebutkan di atas, masih banyak lainnya, seperti:

Mitos dari Android pengujian

Banyak perusahaan berkembang Android pengujian strategi yang didasarkan pada kesalahpahaman umum. Bagian ini membahas beberapa mitos dan kenyataan populer Android pengujian.

Mitos #1: Semua Android Perangkatnya sama, jadi pengujian pada emulator sudah cukup.

Sebuah aplikasi dapat berfungsi dengan sempurna di emulator, namun mengalami kerusakan saat dijalankan di beberapa perangkat sungguhan.

Android Dialog peringatan aplikasi macet yang ditampilkan selama eksekusi pada perangkat sungguhan.

Emulator saja tidak cukup untuk pengujian aplikasi seluler Anda. Anda harus menguji aplikasi Anda di perangkat sungguhan.

Mitos #2: Pengujian pada beberapa perangkat umum sudah cukup

Tampilan aplikasi Anda berbeda di berbagai perangkat karena perangkat keras, ukuran layar, dan memori berbeda. Uji coba pada berbagai perangkat, versi sistem operasi, jaringan operator, dan lokasi.

Mitos #3: Pengujian eksplorasi sesaat sebelum peluncuran sudah cukup

  • Pada sebagian besar pengujian, kita merancang kasus uji lalu mengeksekusinya; dalam pengujian eksplorasi, perancangan dan eksekusi terjadi bersamaan.
  • Tidak ada rencana atau persiapan, sehingga penguji menjalankan tes apa pun yang dia pilih. Beberapa fungsi diuji berulang kali, sementara yang lain tidak pernah diuji.

Mitos #4: Jika ada beberapa bug dalam aplikasi, pengguna akan memahaminya.

  • Jika aplikasi tidak berfungsi dan memiliki bug, pengguna akan menghapus instalasi aplikasi Anda.
  • Masalah kualitas adalah alasan utama ulasan buruk pada Google Bermain-main, merusak reputasi Anda dan kehilangan kepercayaan pelanggan.

Oleh karena itu, sangat penting untuk memiliki sesuatu yang tepat. Android Strategi pengujian telah diterapkan.

Praktik terbaik di Android pengujian

  • Pengembang aplikasi harus membuat kasus uji pada saat yang sama ketika mereka menulis kode
  • Semua kasus uji harus disimpan dalam sistem kontrol versi, bersama dengan kode sumber.
  • Gunakan integrasi berkelanjutan dan jalankan pengujian setiap kali kode diubah
  • Hindari mengandalkan emulator dan perangkat yang sudah di-rooting saja; pastikan hasilnya pada perangkat keras asli dengan menggunakan pemeriksa seperti... uiautomatorviewer

Pertanyaan Umum Demo Slot

Tidak. Proyek modern menggunakan AndroidTes X dengan JUnit 4 dan AndroidJUnitPelari. Sang Pelari. JUnit 3 kelas kasus uji yang dijelaskan di sini telah usang pada API 24 dan hanya tersisa untuk rangkaian pengujian lama.

Pembelajaran mesin memperbaiki locator setelah perubahan tata letak, mengelompokkan laporan crash dan ANR yang duplikat, dan memprediksi tes mana yang akan rusak akibat perubahan sehingga rangkaian pengujian yang lebih pendek berjalan per commit.

Copilot menuliskan pola onView dan check umum dari skenario yang dijelaskan. Ia tidak dapat mengetahui pengidentifikasi tampilan atau pengaturan waktu Anda, jadi jalankan setiap saran sekali dan sesuaikan pencocoknya terlebih dahulu.

Espresso Pengujian dilakukan di dalam aplikasi Anda sendiri dan cepat serta stabil. UI Automator melintasi batas aplikasi, sehingga cocok untuk notifikasi, pengaturan, dan dialog sistem. Banyak suite menggunakan keduanya.

API ActivityScenario di AndroidX Test, biasanya dengan ActivityScenarioRule. Ini menggerakkan sebuah aktivitas melalui status siklus hidup yang telah ditentukan tanpa memperluas kelas kasus uji yang sudah usang.

Mulailah dengan ponsel kelas bawah, kelas menengah, dan ponsel unggulan terbaru yang mencakup dua atau tiga kategori. Android versi, ditambah tablet. Tambahkan perangkat yang berjalan di cloud sebelum rilis, alih-alih membeli perangkat keras tambahan.

Aplikasi ini berjalan di mesin JVM build dengan shadow class, bukan di perangkat sungguhan, sehingga tidak ada pengemasan, instalasi, atau booting emulator. Hal ini membuatnya praktis di setiap commit.

GoogleKumpulan pustaka pengujian saat ini. Ini mencakup JUnit dan ekstensi Truth, ActivityScenario, Espresso dan UI Automator di balik satu grup dependensi yang berfungsi pada perangkat, emulator, dan Robolectric.

Ringkaslah postingan ini dengan: