Tutorial Pengujian Aplikasi Android dengan Kerangka Otomasi

Daftar Isi:

Anonim

Mengapa Pengujian Android?

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

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

Dalam tutorial ini, Anda akan belajar-

  • Mengapa Pengujian Android?
  • Strategi Pengujian Android
    • Tes unit
    • Tes integrasi
    • Tes operasional
    • Tes sistem
  • PENGUJIAN ANDROID Otomatis
    • Kerangka pengujian Android
    • Kerangka pengujian robolectric
  • Mitos Pengujian Android
  • Praktik terbaik dalam Pengujian Android

Strategi Pengujian Android

Strategi pengujian android yang benar harus mencakup yang berikut ini

  1. Uji Unit
  2. Tes integrasi
  3. Uji Operasional
  4. Uji Sistem

Tes unit

Tes Unit mencakup sekumpulan satu atau lebih program yang dirancang untuk memverifikasi unit atom dari kode sumber, seperti metode atau kelas.

Platform Android hadir dengan kerangka kerja Junit 3.0 yang sudah terintegrasi sebelumnya. Ini kerangka kerja open source untuk mengotomatiskan Pengujian Unit. Kerangka Pengujian Android adalah alat yang ampuh bagi pengembang untuk menulis program pengujian unit yang efektif.

Integrasi framework Android dan JUnit

Selain Pengujian Unit adalah pengujian Antarmuka Pengguna (UI). Pengujian ini terkait dengan komponen UI aplikasi target Anda. Pengujian UI memastikan bahwa aplikasi Anda menampilkan keluaran UI yang benar sebagai respons atas urutan tindakan pengguna di perangkat.

Tindakan UI pengguna umum pada aplikasi

Cara umum untuk melakukan pengujian UI pada perangkat adalah Android Instrumentation. Tetapi ini memiliki masalah kinerja. Salah satu alat terbaik untuk melakukan pengujian UI di Android adalah Robotium.

Tes integrasi

Dalam Pengujian Integrasi, semua modul unit yang diuji, digabungkan dan diverifikasi. Di Android, pengujian integrasi sering kali melibatkan pemeriksaan integrasi dengan komponen Android seperti pengujian Layanan, Pengujian aktivitas, pengujian Penyedia Konten, dll.

Jenis uji integrasi di Android

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

Tes operasional

  • Operasional disebut juga Tes Fungsional atau Tes Penerimaan. Itu adalah tes tingkat tinggi yang dirancang untuk memeriksa kelengkapan dan kebenaran aplikasi.
  • Di Android, FitNesse adalah kerangka kerja sumber terbuka yang memudahkan untuk melakukan uji operasional untuk aplikasi target.

Tes sistem

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

Di Android, Pengujian Sistem biasanya mencakup

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

Dalam daftar di atas, Pengujian Kinerja diberikan lebih banyak fokus. Anda dapat menggunakan alat seperti Traceview untuk melakukan uji kinerja pada Android. Alat ini dapat membantu Anda men-debug aplikasi dan membuat profil kinerjanya.

PENGUJIAN ANDROID Otomatis

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

Manfaat pengujian android otomatis

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

Kami akan mempelajari 2 kerangka kerja berikut

  • Kerangka Pengujian Android
  • Framework Pengujian Robolectric

Kerangka pengujian Android

Salah satu framework pengujian standar untuk aplikasi Android adalah framework pengujian Android . Ini adalah kerangka kerja pengujian yang kuat dan mudah digunakan yang terintegrasi dengan baik dengan alat Android SDK.

Arsitektur framework pengujian Android

  1. Paket aplikasi adalah aplikasi target Anda yang perlu diuji
  2. InstrumentationTestRunner adalah runner Test Case yang menjalankan kasus uji pada aplikasi target. Itu termasuk:

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

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

  1. Paket pengujian diatur ke dalam proyek pengujian. 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 menyertakan 2 objek seperti di bawah ini:

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

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

Kelas Kasus Uji Android

Diagram kelas AndroidTestCase

  1. TestCase menyertakan metode JUnit untuk menjalankan pengujian JUnit
  2. TestSuite digunakan untuk menjalankan serangkaian kasus uji
  3. InstrumentationTestSuite adalah TestSuite yang memasukkan Instrumentasi ke InstrumentationTestCase sebelum menjalankannya.
  4. InstrumentationTestRunner adalah runner kasus pengujian yang menjalankan kasus pengujian pada aplikasi target.
  5. AndroidTestCase memperluas JUnit TestCase. Ini berisi metode untuk mengakses sumber daya seperti Konteks Aktivitas.
  6. ApplicationTestCase memverifikasi kelas Aplikasi dalam lingkungan yang terkontrol.
  7. InstrumentationTestCase memverifikasi fitur atau perilaku aplikasi target, misalnya, memverifikasi keluaran UI aplikasi.
  8. ActivityTestCase adalah kelas dasar yang mendukung pengujian Aktivitas Aplikasi.
  9. ProviderTestCase 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 tunggal yang terisolasi.
  13. ActivityInstrumentationTestCase2 memperluas kelas JUnit TestCase. Ini menghubungkan Anda ke aplikasi target dengan instrumentasi. Dengan kelas ini, Anda dapat mengakses komponen GUI aplikasi dan mengirim peristiwa UI (keystroke atau peristiwa sentuh) ke UI.

Di bawah ini adalah contoh ActivityInstrumentationTestCase. Ini memverifikasi operasi UI aplikasi Kalkulator, memeriksa kebenaran output UI.

Contoh pengujian ActivityInstrumentationTestCase2

Kerangka pengujian robolectric

Sulit menguji menggunakan framework Pengujian Android dengan perangkat atau emulator. Membangun dan menjalankan pengujian lambat dan membutuhkan banyak upaya pengembangan. Untuk memperbaiki masalah ini, ada pilihan lain - framework pengujian Robolectric .

Framework Robolectric memungkinkan Anda menjalankan pengujian Android langsung di JVM tanpa memerlukan perangkat atau emulator.

Fitur lanjutan dari Robolectric

Kelas Kasus Uji Robolektrik

Pengoperasian Robolectric

  • Seperti yang ditunjukkan di atas, Robolectric dapat melakukan tindakan berikut:
  • Daftarkan dan buat kelas Shadow
  • Hentikan pemuatan kelas Android
  • Menggunakan javaassist untuk mengganti badan metode kelas Android
  • Mengikat objek Shadow ke kelas Android
  • Ini memungkinkan kode yang diuji untuk dijalankan tanpa lingkungan Android.

Kerangka pengujian lainnya

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

  • Android Junit Report, runner pengujian instrumentasi kustom untuk Android yang menghasilkan laporan XML untuk integrasi dengan alat lain.
  • Expresso
  • Appium

Mitos Pengujian Android

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

Mitos # 1: Semua perangkat Android itu sama… uji pada emulator sudah cukup

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

Aplikasi macet selama eksekusi di perangkat nyata

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

Mitos # 2: Menguji beberapa perangkat umum saja sudah cukup

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

Mitos # 3: Pengujian eksplorasi sebelum peluncuran sudah cukup

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

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

  • Jika aplikasi tidak berfungsi dan memiliki bug, pengguna menghapus instalan aplikasi Anda
  • Masalah kualitas adalah alasan pertama ulasan buruk di Google Play. Ini memengaruhi reputasi Anda dan Anda kehilangan kepercayaan pelanggan.

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

Praktik terbaik dalam Pengujian Android

  • 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