Mengapa Ujian Android?
Android adalah sistem operasi terbesar di dunia. Pada masa yang sama, Android terpecah-pecah. terdapat banyak peranti dan versi Android yang mesti disatukan oleh aplikasi anda.
Tidak kira berapa masa anda melabur dalam reka bentuk dan pelaksanaan, kesalahan tidak dapat dielakkan, dan pepijat akan muncul.
Dalam tutorial ini, anda akan belajar-
- Mengapa Ujian Android?
- Strategi Ujian Android
- Ujian unit
- Ujian integrasi
- Ujian operasi
- Ujian sistem
- UJIAN ANDROID automatik
- Rangka kerja ujian Android
- Rangka kerja ujian Robolectric
- Mitos Ujian Android
- Amalan terbaik dalam Ujian Android
Strategi Ujian Android
Strategi ujian android yang betul harus merangkumi yang berikut
- Ujian Unit
- Ujian Integrasi
- Ujian Operasi
- Ujian Sistem
Ujian unit
Ujian Unit merangkumi satu set satu atau lebih program yang dirancang untuk mengesahkan unit atom kod sumber, seperti kaedah atau kelas.
Platform Android hadir dengan rangka kerja Junit 3.0 yang telah diintegrasikan. Ini kerangka sumber terbuka untuk mengautomasikan Ujian Unit. Android Testing Framework adalah alat yang ampuh bagi pembangun untuk menulis program ujian unit yang berkesan.
Penyepaduan kerangka Android dan JUnit
Tambahan Ujian Unit adalah ujian Antara Muka Pengguna (UI). Ujian ini berkaitan dengan komponen UI aplikasi sasaran anda. Ujian UI memastikan bahawa aplikasi anda mengembalikan output UI yang betul sebagai tindak balas kepada urutan tindakan pengguna pada peranti.
Tindakan UI pengguna biasa pada aplikasi
Cara biasa untuk melakukan ujian UI pada peranti adalah Instrumentasi Android. Tetapi ini mempunyai masalah prestasi. Salah satu alat terbaik untuk menjalankan ujian UI pada Android ialah Robotium.
Ujian integrasi
Dalam Ujian Integrasi, semua modul yang diuji unit, digabungkan dan disahkan. Di Android, ujian integrasi sering melibatkan pemeriksaan integrasi dengan komponen Android seperti Ujian perkhidmatan, Ujian aktiviti, ujian Penyedia Kandungan, dll
Jenis ujian integrasi pada Android
Terdapat banyak kerangka ujian yang digunakan untuk menjalankan ujian integrasi untuk Android seperti Troyd, Robolectric, Robotium.
Ujian operasi
- Operasi juga dipanggil Ujian Fungsional atau Ujian Penerimaan. Mereka adalah ujian tahap tinggi yang dirancang untuk memeriksa kelengkapan dan kebenaran aplikasi.
- Di Android, FitNesse adalah kerangka sumber terbuka yang memudahkan untuk melakukan ujian operasi untuk aplikasi sasaran.
Ujian sistem
Dalam Pengujian Sistem, sistem diuji secara keseluruhan dan interaksi antara komponen, perisian dan perkakasan diperiksa.
Di Android, Pengujian Sistem biasanya merangkumi
- Ujian GUI
- Ujian kebolehgunaan
- Ujian prestasi
- Ujian tekanan
Dalam senarai di atas, Ujian Prestasi diberi lebih fokus. Anda boleh menggunakan alat seperti Traceview untuk melakukan ujian prestasi pada Android. Alat ini dapat membantu anda menyahpepijat aplikasi anda dan profil prestasinya.
UJIAN ANDROID automatik
Oleh kerana android terpecah-pecah, ujian pada banyak peranti diperlukan. Tetapi ini juga akan menjimatkan wang anda. Ujian Android automatik dapat membantu mengurangkan kos
Manfaat ujian android automatik
- Kurangkan masa untuk melaksanakan kes ujian
- Tingkatkan produktiviti proses pengembangan anda
- Pengesanan pepijat awal, menjimatkan kos untuk penyelenggaraan perisian
- Dengan cepat dijumpai dan perbaiki pepijat semasa pelaksanaan
- Pastikan kualiti perisian
Kami akan mengkaji 2 kerangka berikut
- Kerangka Ujian Android
- Kerangka Ujian Robolectric
Rangka kerja ujian Android
Salah satu kerangka pengujian standard untuk aplikasi Android adalah kerangka pengujian Android . Ini adalah kerangka pengujian yang kuat dan mudah digunakan yang disatukan dengan baik dengan alat Android SDK
Rangka kerja ujian Android Senibina
- Pakej aplikasi adalah aplikasi sasaran anda yang perlu diuji
- InstrumentationTestRunner adalah pelari Kes Ujian yang melaksanakan kes ujian pada aplikasi sasaran. Ia termasuk:
2a) Alat ujian: Alat SDK untuk membina ujian. Mereka disatukan dalam Eclipse IDE atau dijalankan sebagai baris perintah.
2b) MonkeyRunner: Alat yang menyediakan API untuk program penulisan yang mengawal peranti Android atau emulator di luar kod Android.
- Pakej ujian disusun dalam projek ujian. Pakej ini mengikuti konvensyen penamaan. Sekiranya aplikasi yang diuji mempunyai nama pakej "com.mydomain.myapp" daripada pakej Uji harus "com.mydomain.myapp.test". Pakej ujian merangkumi 2 objek seperti di bawah:
3a) Kelas kes ujian: sertakan kaedah ujian yang akan dilaksanakan pada aplikasi sasaran.
3b) Objek mengejek: merangkumi data tiruan yang akan digunakan sebagai input input untuk kes ujian.
Kelas Kes Ujian Android
Gambar rajah kelas AndroidTestCase
- TestCase merangkumi kaedah JUnit untuk menjalankan ujian JUnit
- TestSuite digunakan untuk menjalankan set kes ujian
- InstrumentationTestSuite adalah TestSuite yang menyuntikkan Instrumentation ke InstrumentationTestCase sebelum menjalankannya.
- InstrumentationTestRunner adalah pelari kes ujian yang menjalankan kes ujian pada aplikasi sasaran.
- AndroidTestCase meluaskan JUnit TestCase. Ini mengandungi kaedah untuk mengakses sumber seperti Konteks Aktiviti.
- ApplicationTestCase mengesahkan kelas Aplikasi dalam persekitaran terkawal.
- InstrumentationTestCase mengesahkan ciri atau tingkah laku tertentu dari aplikasi sasaran, misalnya, mengesahkan keluaran aplikasi UI.
- ActivityTestCase adalah kelas asas yang menyokong pengujian Aktiviti Aplikasi.
- ProviderTestCase adalah kelas untuk menguji ContentProvider tunggal.
- ServiceTestCase digunakan untuk menguji kelas Perkhidmatan di persekitaran ujian. Ia juga menyokong kitaran hidup Perkhidmatan.
- SingeLauchActivityTestCase digunakan untuk menguji Aktiviti tunggal dengan InstrumentationTestCase.
- ActivityUnitTestCase
digunakan untuk menguji aktiviti terpencil tunggal. - ActivityInstrumentationTestCase2
melanjutkan kelas JUnit TestCase. Ini menghubungkan anda dengan aplikasi sasaran dengan instrumentasi. Dengan kelas ini, anda dapat mengakses komponen GUI aplikasi dan mengirim acara UI (penekanan tombol atau acara sentuhan) ke UI.
Berikut adalah contoh ActivityInstrumentationTestCase. Ia mengesahkan operasi UI aplikasi Kalkulator, periksa kebenaran keluaran UI.
Contoh aktiviti ActivityInstrumentationTestCase2
Rangka kerja ujian Robolectric
Ujian menggunakan kerangka Uji Android dengan peranti atau emulator adalah sukar. Ujian membina dan berjalan lambat dan memerlukan banyak usaha pembangunan. Untuk menyelesaikan masalah ini, ada pilihan lain - rangka ujian Robolectric .
Rangka kerja robotolik membolehkan anda menjalankan ujian Android secara langsung di JVM tanpa memerlukan peranti atau emulator.
Ciri maju Robolectric
Kelas Kes Ujian Robolectric
Operasi Robolectric
- Seperti yang ditunjukkan di atas, Robolectric dapat melakukan tindakan berikut:
- Daftar dan buat kelas Shadow
- Memintas memuatkan kelas Android
- Menggunakan javaassist untuk mengatasi badan kaedah kelas Android
- Bind Shadow objek ke kelas Android
- Ini membolehkan kod yang diuji dapat dijalankan tanpa persekitaran Android.
Rangka kerja ujian yang lain
Selain menguji kerangka kerja yang disebutkan di atas, ada banyak kerangka pengujian lain seperti:
- Laporan Junit Android, pelari ujian instrumentasi khusus untuk Android yang menghasilkan laporan XML untuk penyatuan dengan alat lain.
- Ekspreso
- Appium
Mitos Ujian Android
Banyak syarikat mengembangkan strategi Ujian android yang berdasarkan pada kesalahpahaman umum. Bahagian ini meneliti beberapa mitos dan realiti pengujian Android yang popular.
Mitos # 1: Semua peranti Android adalah sama… ujian pada emulator sudah cukup
Mari kita mulakan dengan contoh mudah. Aplikasi berfungsi dengan sempurna pada emulator tetapi pada beberapa peranti yang sebenarnya, aplikasi tersebut terhempas semasa pelaksanaan
Aplikasi ranap semasa pelaksanaan pada peranti sebenar
Emulator tidak mencukupi untuk ujian mudah alih anda. Anda mesti menguji aplikasi anda pada peranti sebenar.
Mitos # 2: Menguji pada beberapa peranti biasa sudah cukup
- Pada peranti yang berbeza, aplikasi anda kelihatan berbeza kerana peranti yang berbeza mempunyai perkakasan, ukuran skrin, memori dan lain-lain. Anda mesti menguji aplikasi anda pada peranti, versi OS, rangkaian pembawa dan lokasi yang berbeza.
Mitos # 3: Uji eksplorasi sebelum pelancaran sudah cukup
- Umumnya dalam semua ujian, kami merancang kes ujian dan kemudian melaksanakannya. Tetapi dalam ujian Eksploratori, reka bentuk dan pelaksanaan ujian semuanya akan dilakukan bersama.
- Dalam ujian eksplorasi, tidak ada rancangan dan persiapan, maka penguji akan melakukan ujian yang ingin dilakukannya. Beberapa fungsi akan diuji berulang kali, sementara beberapa fungsi tidak akan diuji sama sekali.
Mitos # 4: Sekiranya terdapat beberapa bug dalam aplikasi, pengguna akan memahami
- Sekiranya aplikasi tidak berfungsi dan mempunyai bug, pengguna menyahpasang aplikasi anda
- Masalah kualiti adalah sebab pertama untuk tinjauan buruk di Google Play. Ini mempengaruhi reputasi anda dan anda kehilangan kepercayaan pelanggan.
Oleh itu, penting untuk mempunyai strategi pengujian android yang tepat
Amalan terbaik dalam Ujian Android
- Pembangun aplikasi harus membuat kes ujian pada masa yang sama semasa mereka menulis kod
- Semua kes ujian harus disimpan dalam kawalan versi-bersama dengan kod sumber
- Gunakan integrasi berterusan dan jalankan ujian setiap kali kodnya diubah
- Elakkan menggunakan emulator dan peranti yang di-root