Android Tutorial Pengujian Aplikasi dengan Automation Framework

Mengapa Android Pengujian?

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

Android pengujian

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

Android pengujian

Android Strategi Pengujian

Strategi pengujian android yang benar harus mencakup hal berikut ini

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

Android Strategi Pengujian

Tes unit

Pengujian Unit mencakup serangkaian satu atau beberapa program yang dirancang untuk memverifikasi unit atom kode sumber, seperti metode atau kelas.

Android platform sudah terintegrasi sebelumnya Junit kerangka 3.0. Ini kerangka kerja sumber terbuka untuk otomatisasi Pengujian Unit. Android Kerangka Pengujian adalah alat yang ampuh bagi pengembang untuk menulis program pengujian unit yang efektif.

Integrasi dari Android dan JUnit Kerangka
Integrasi dari Android dan JUnit kerangka

Tambahan pada Pengujian Unit adalah pengujian Antarmuka Pengguna (UI). Pengujian ini berkaitan dengan komponen UI aplikasi target Anda. Pengujian UI memastikan aplikasi Anda mengembalikan output UI yang benar sebagai respons terhadap urutan tindakan pengguna pada perangkat.

Tindakan UI Pengguna Umum pada Aplikasi
Tindakan UI pengguna umum pada aplikasi

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.

Tes integrasi

In Tes integrasi, semua modul yang diuji unit, digabungkan dan diverifikasi. Di dalam Android, pengujian integrasi sering kali melibatkan pemeriksaan integrasi denganAndroid komponen seperti pengujian Layanan, pengujian Aktivitas, pengujian Penyedia Konten, dll

Tes Integrasi
Jenis pengujian integrasi aktif Android

Ada banyak kerangka pengujian yang digunakan untuk melakukan pengujian integrasi Android seperti Troyd, Robolectric, Robotium.

Operates nasional

  • Operanasional juga disebut Tes Fungsional atau Tes Penerimaan. Itu adalah tes tingkat tinggi yang dirancang untuk memeriksa kelengkapan dan kebenaran aplikasi.
  • In Android, fitnes adalah kerangka kerja sumber terbuka yang memudahkan melakukan pengujian operasional untuk 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 tampilan jejak untuk melakukan tes kinerja Android .Alat ini dapat membantu Anda men-debug aplikasi dan membuat profil kinerjanya.

PENGUJIAN ANDROID Otomatis

Karena android terfragmentasi, pengujian pada banyak perangkat diperlukan. Namun, ini juga akan menghabiskan uang Anda. Otomatis Android Pengujian dapat membantu mengurangi biaya

Manfaat pengujian android otomatis

  • 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 Android kerangka pengujian. Ini adalah kerangka pengujian yang kuat dan mudah digunakan serta terintegrasi dengan baik dengan Android Alat SDK.

Android Kerangka Pengujian
Android kerangka pengujian Architekstur
  1. Paket aplikasi adalah aplikasi target Anda yang perlu diuji
  2. InstrumentasiTestRunner adalah Uji Kasus runner yang mengeksekusi test case pada aplikasi target. Itu termasuk:

2a) Alat uji: Alat SDK untuk membangun pengujian. Mereka terintegrasi di dalamnya Eclipse IDE atau dijalankan sebagai baris perintah.

2b) Pelari Monyet: Alat yang menyediakan API untuk menulis program yang mengontrol Android perangkat atau emulator di luar Android kode.

  1. Paket tes diorganisasikan ke dalam proyek uji. Paket ini mengikuti konvensi penamaan. Jika aplikasi yang diuji memiliki nama paket “com.mydomain.myapp” maka paket Uji harus “com.mydomain.myapp.test”. Paket pengujian mencakup 2 objek seperti di bawah ini:

3a) Kelas kasus uji: menyertakan metode pengujian untuk dieksekusi pada aplikasi target.

3b) Objek tiruan : mencakup data tiruan yang akan digunakan sebagai masukan sampel untuk kasus uji.

Android Kelas Kasus Uji

Android Kelas Kasus Uji
AndroidDiagram kelas TestCase
  1. Kasus cobaan termasuk JUnit metode untuk dijalankan JUnit uji
  2. TestSuite digunakan untuk menjalankan serangkaian kasus uji
  3. InstrumentasiTestSuite adalah TestSuite yang memasukkan Instrumentasi ke dalam InstrumentationTestCase sebelum menjalankannya.
  4. InstrumentasiTestRunner adalah test case runner yang menjalankan test case pada aplikasi target.
  5. AndroidKasus cobaan Meluas JUnit Kasus cobaan. Ini berisi metode untuk mengakses sumber daya seperti Konteks Aktivitas.
  6. Kasus Uji Aplikasi memverifikasi kelas Aplikasi dalam lingkungan terkendali.
  7. Kasus Uji Instrumentasi memverifikasi fitur atau perilaku tertentu dari aplikasi target, misalnya, memverifikasi keluaran UI aplikasi.
  8. Kasus Uji Aktivitas adalah kelas dasar yang mendukung pengujian Aktivitas Aplikasi.
  9. PenyediaTestCase adalah kelas untuk menguji ContentProvider tunggal.
  10. ServiceTestCase digunakan untuk menguji kelas Layanan di lingkungan pengujian. Ini juga mendukung siklus hidup Layanan.
  11. SingeLauchActivityTestCase digunakan untuk menguji Aktivitas tunggal dengan InstrumentationTestCase.
  12. ActivityUnitTestCase digunakan untuk menguji aktivitas terisolasi tunggal.
  13. ActivityInstrumentationTestCase2 memperluas JUnit kelas TestCase. Ini menghubungkan Anda ke aplikasi target dengan instrumentasi. Dengan kelas ini, Anda dapat mengakses komponen GUI aplikasi dan mengirimkan peristiwa UI (kejadian penekanan tombol atau sentuhan) ke UI.

Berikut ini adalah contoh ActivityInstrumentationTestCase. Aktivitas ini memverifikasi operasi UI aplikasi Kalkulator, memeriksa kebenaran output UI.

Pengujian ActivityInstrumentationTestCase2
Contoh pengujian ActivityInstrumentationTestCase2

Kerangka pengujian robolektrik

Pengujian menggunakan Android Menguji kerangka kerja dengan perangkat atau emulator itu sulit. Membangun dan menjalankan pengujian lambat dan membutuhkan banyak upaya pengembangan. Untuk memperbaiki masalah ini, ada pilihan lain – Roboelektrik kerangka pengujian.

Kerangka kerja Robolectric memungkinkan Anda untuk berlari Android tes langsung di JVM tanpa kebutuhan akan perangkat atau emulator.

Fitur Lanjutan Robolectric
Fitur lanjutan dari Robolectric

Kelas Kasus Uji Roboelektrik

Operation dari Robolectric
Operation dari Robolectric
  • Seperti yang ditunjukkan di atas, Robolectric dapat melakukan tindakan berikut:
  • Daftarkan dan buat kelas Shadow
  • Mencegah pemuatan Android kelas
  • Menggunakan javaassist untuk mengganti badan metode Android kelas
  • Ikat objek Shadow ke Android kelas
  • Hal ini memungkinkan kode yang sedang diuji untuk dieksekusi tanpa Android lingkungan.

Kerangka pengujian lainnya

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

Mitos dari Android pengujian

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

Mitos #1:Semua Android perangkatnya sama… tes pada emulator sudah cukup

Mari kita mulai dengan contoh sederhana. Sebuah aplikasi berfungsi dengan sempurna di emulator tetapi pada beberapa perangkat nyata, aplikasi tersebut mogok selama eksekusi

Aplikasi Crash saat Eksekusi di Perangkat Nyata
Aplikasi mogok selama eksekusi pada perangkat nyata

Emulator adalah tidak cukup untuk pengujian seluler Anda. Anda harus menguji aplikasi Anda di perangkat nyata.

Mitos #2: Menguji pada beberapa perangkat umum saja sudah cukup

  • Pada perangkat yang berbeda, aplikasi Anda terlihat berbeda karena perangkat yang berbeda memiliki perangkat keras, ukuran layar, memori, dll yang berbeda. Anda harus menguji aplikasi Anda pada perangkat, versi OS, jaringan operator, dan lokasi yang berbeda.

Mitos #3: Pengujian eksplorasi sebelum peluncuran sudah cukup

  • Umumnya dalam semua pengujian, kami merancang kasus pengujian lalu mengeksekusinya. Namun dalam pengujian Eksplorasi, desain dan pelaksanaan pengujian semuanya akan dilakukan bersama-sama.
  • Dalam pengujian eksplorasi, tidak ada rencana dan persiapan, maka penguji akan melakukan tes yang ingin dilakukannya. Beberapa fungsi akan diuji berulang kali, sementara beberapa fungsi tidak akan diuji sama sekali.

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

  • Jika aplikasi tidak berfungsi dan terdapat bug, pengguna akan meng-uninstal aplikasi Anda
  • Masalah kualitas adalah alasan pertama ulasan buruk di Google Play. Ini berdampak pada reputasi Anda dan Anda kehilangan kepercayaan pelanggan.

Oleh karena itu, penting untuk memiliki strategi pengujian Android yang tepat

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 kontrol versi bersama dengan kode sumber
  • Gunakan integrasi berkelanjutan dan jalankan pengujian setiap kali kode diubah
  • Hindari menggunakan emulator dan perangkat yang di-rooting