Berbeda dengan jenis aplikasi iOS lainnya, aplikasi Home API memiliki pertimbangan dan tantangan uniknya sendiri, termasuk dependensi pada perangkat smart home fisik, keandalan jaringan, keamanan dan privasi, serta interoperabilitas perangkat dan protokol. Perbedaan ini berdampak pada pengujian.
Menyiapkan lingkungan pengujian Anda
Lingkungan pengujian yang andal sangat penting untuk menguji aplikasi Home API.
Sebaiknya pisahkan perangkat pengujian Home API Anda di jaringan Wi-Fi khusus. Hal ini mencegah gangguan dari perangkat lain dan memungkinkan Anda menyimulasikan kondisi jaringan yang berbeda seperti bandwidth yang dibatasi.
Anda harus melakukan pengujian menggunakan berbagai jenis perangkat smart home, dari berbagai produsen. Pastikan untuk menguji dengan perangkat fisik sungguhan. Perangkat virtual dan emulator memiliki tempatnya, tetapi tidak boleh diandalkan secara eksklusif.
Demikian pula, menguji aplikasi Anda dengan berbagai perangkat iOS dari beberapa produsen, dengan dimensi layar yang bervariasi, dan menjalankan berbagai versi iOS akan membantu memverifikasi kompatibilitas yang lebih luas.
Kumpulkan alat Anda
Alat berikut berguna untuk menguji aplikasi Home API:
Alat | Deskripsi |
---|---|
Google Home Playground | Bukan pengganti pengujian dengan perangkat fisik sebenarnya, tetapi sangat berharga untuk banyak skenario pengujian. |
Matter Virtual Device (MVD) | Aplikasi emulasi lain yang dapat membantu saat menguji dengan perangkat Matter di aplikasi Home API. |
Emulator jaringan | Memungkinkan Anda menyimulasikan berbagai kondisi jaringan dan respons API, yang sangat berguna jika Home API Anda menggunakan backend cloud. |
TestFlight | Memungkinkan Anda mengotomatiskan pengujian UI. Anda perlu meniru API pokok untuk menyimulasikan interaksi hardware. |
Konsol XCode | Menangani dan menganalisis data log. |
XCUIAutomation | Memungkinkan Anda mengotomatiskan pengujian UI. Anda perlu meniru API pokok untuk menyimulasikan interaksi hardware. |
Menerapkan berbagai pendekatan dan strategi pengujian
Anda harus menerapkan berbagai pendekatan pengujian ke aplikasi Home API. Untuk mengetahui informasi umum tentang berbagai metode, lihat Menguji aplikasi di TestFlight. Selain pengujian keamanan dan pengalaman pengguna yang diharapkan dilakukan oleh semua aplikasi iOS, beberapa area pengujian sangat relevan untuk aplikasi Home API dan dijelaskan secara lebih mendetail di bagian berikut.
Pengujian fungsional
Bergantung pada kemampuan aplikasi, Anda mungkin ingin memberikan perhatian khusus pada beberapa area berikut:
- Penemuan dan penyambungan perangkat, termasuk penyiapan awal dan penyambungan dengan perangkat baru, penemuan ulang perangkat yang ada setelah aplikasi dimulai ulang, perangkat dimulai ulang, atau perubahan jaringan. Periksa juga skenario seperti perangkat yang tidak responsif atau pengguna yang memasukkan kredensial yang salah.
- Sinkronisasi status, memastikan aplikasi diupdate secara akurat untuk mencerminkan status saat ini secara tepat waktu.
- Cara izin dikelola dan diterapkan, terutama jika aplikasi Anda mendukung beberapa pengguna atau akses rumah bersama. Hal ini termasuk memverifikasi bahwa aplikasi Anda menangani pencabutan izin dengan baik.
- Jika aplikasi Anda mendukung adegan, seperti adegan "Selamat Malam" yang mematikan semua lampu, uji pembuatan, modifikasi, dan eksekusi adegan. Menguji otomatisasi, termasuk pemicu dan tindakan.
Pengujian performa
Pastikan aplikasi Anda responsif dan tidak menimbulkan latensi yang tidak perlu. Jika memungkinkan, lakukan pengujian dengan sejumlah besar perangkat untuk menilai skalabilitas dan performa aplikasi Anda saat dalam beban. Lihat juga konsumsi CPU, memori, dan baterai aplikasi Anda, terutama selama komunikasi perangkat aktif, untuk melihat apakah penggunaan resource-nya wajar.
Pengujian keandalan dan stabilitas
Karena dependensinya pada konektivitas jaringan, aplikasi Home API harus diuji terhadap skenario berikut:
- Fluktuasi jaringan
- Simulasikan gangguan Wi-Fi, sinyal lemah, dan peralihan jaringan.
- Pastikan aplikasi Anda menangani pemutusan dan penyambungan kembali dengan baik.
- Verifikasi bahwa perintah diantrekan dan dieksekusi saat konektivitas dipulihkan, atau berikan pesan error yang sesuai.
- Uji aplikasi dari jaringan jarak jauh, bukan hanya dari jaringan rumah.
- Pemutusan koneksi perangkat
- Mencabut perangkat secara fisik.
- Nyalakan ulang perangkat.
- Operasi serentak
- Mengirim urutan perintah dengan cepat.
- Minta beberapa pengguna mencoba mengontrol perangkat yang sama secara bersamaan.
- Uji adegan dan otomatisasi yang tumpang-tindih.
- Penanganan error
- Memaksa error API, misalnya, dengan meniru respons server API cloud.
- Uji input tidak valid dari pengguna.
- Verifikasi penurunan kualitas yang baik dan pesan error yang informatif.
- Keandalan - Jalankan aplikasi dan perangkat yang terhubung dalam jangka waktu yang lama untuk menemukan kemungkinan kebocoran memori atau masalah stabilitas.