وعلى عكس أنواع تطبيقات Android الأخرى، يتضمّن تطبيق Home APIs اعتبارات وتحديات فريدة، بما في ذلك الاعتماد على أجهزة المنزل الذكي المادية، وموثوقية الشبكة، والأمان والخصوصية، وإمكانية التشغيل التفاعلي للأجهزة والبروتوكولات. وتؤثر هذه الاختلافات في الاختبار.
إعداد بيئة الاختبار
تعتبر بيئة الاختبار القوية ضرورية لاختبار تطبيق APIs المنزلية.
من الاستراتيجيات الجيدة عزل أجهزة اختبار Home API على شبكة Wi-Fi مخصّصة. يمنع ذلك حدوث تداخل من الأجهزة الأخرى ويسمح لك بمحاكاة ظروف مختلفة للشبكة، مثل معدل نقل البيانات المحدود.
ستحتاج إلى إجراء الاختبار باستخدام مجموعة متنوعة من أنواع أجهزة المنزل الذكي، من مجموعة متنوعة من الشركات المصنعة. تأكد من إجراء الاختبار باستخدام أجهزة حقيقية ومادية. لأجهزة المحاكاة والأجهزة الافتراضية أهميتها، ولكن لا يجب الاعتماد عليها بشكل حصري.
وبالمثل، فإن اختبار تطبيقك مع مجموعة متنوعة من أجهزة Android من العديد من الشركات المصنعة، مع أبعاد شاشة مختلفة، وتشغيل إصدارات مختلفة من Android يساعد في التحقق من التوافق الأوسع.
تجميع أدواتك
تساعد الأدوات التالية في اختبار تطبيق يستخدم واجهات برمجة تطبيقات Home:
| الأداة | الوصف |
|---|---|
| Google Home Plugin for Android Studio | توفّر هذه الأداة إمكانية الوصول إلى Google Assistant Simulator و"عارض مخطط المنزل" وGoogle Cloud Logging و"عارض سجلّ Android Debug Bridge (adb)". |
| Google Home Playground | ليس بديلاً عن الاختبار باستخدام الأجهزة المادية الفعلية، ولكنه لا يقدر بثمن للعديد من سيناريوهات الاختبار. |
| Matter Virtual Device (MVD) | تطبيق محاكاة آخر يمكن أن يكون مفيدًا عند الاختبار باستخدام أجهزة Matter في تطبيق Home APIs. |
| إسبرسو | يتيح لك أتمتة اختبار واجهة المستخدم. يتعين عليك محاكاة واجهة برمجة التطبيقات الأساسية لمحاكاة تفاعلات الأجهزة. |
| محاكي الشبكة | يتيح لك محاكاة ظروف الشبكة المتنوعة واستجابات واجهة برمجة التطبيقات (API)، وهو أمر مفيد بشكل خاص إذا كانت واجهة برمجة التطبيقات الرئيسية الخاصة بك تستخدم واجهة خلفية سحابية. |
| أندرويد ستوديو لوجكات | معالجة بيانات السجل وتحليلها. |
تطبيق أساليب واستراتيجيات الاختبار المختلفة
يجب عليك تطبيق أساليب اختبار متنوعة على تطبيق Home APIs. لمزيد من المعلومات حول هذه الأساليب، راجع اختبار التطبيقات على Android. بالإضافة إلى تجربة المستخدم واختبار الأمان الذي من المتوقع أن تخضع له جميع تطبيقات Android، فإن بعض مجالات الاختبار ذات صلة خاصة بتطبيقات Home APIs ويتم تسليط الضوء عليها بمزيد من التفصيل في الأقسام التالية.
الاختبار الوظيفي
اعتمادًا على إمكانيات تطبيقك، قد ترغب في الاهتمام بشكل خاص ببعض المجالات التالية:
- اكتشاف الأجهزة وإقرانها، بما في ذلك عملية الإعداد والإقران الأوّلية مع أجهزة جديدة، وإعادة اكتشاف الأجهزة الحالية بعد إعادة تشغيل التطبيق أو إعادة تشغيل الجهاز أو إجراء تغييرات في الشبكة تحقَّق أيضًا من سيناريوهات مثل الأجهزة التي لا تستجيب أو إدخال المستخدم لبيانات اعتماد غير صحيحة.
- مزامنة الحالة، والتأكّد من أنّ التطبيق يقدّم تحديثات تعكس الحالة الحالية بدقة وفي الوقت المناسب
- كيفية إدارة الأذونات وفرضها، خاصةً إذا كان تطبيقك يتيح استخدام حسابات متعددة أو الوصول إلى المنزل من خلال حساب مشترك ويشمل ذلك التأكّد من أنّ تطبيقك يتعامل بشكل سليم مع الأذونات التي تم إبطالها.
- إذا كان تطبيقك يتيح استخدام المشاهد، مثل مشهد "تصبح على خير" الذي يطفئ كل الأضواء، اختبِر إنشاء المشاهد وتعديلها وتنفيذها. اختبار عمليات التشغيل الآلي، بما في ذلك إجراءات التفعيل والإجراءات
اختبار الأداء
تأكَّد من أنّ تطبيقك يستجيب بشكل جيد ولا يتسبّب في أي تأخير غير ضروري. إذا أمكن، اختبِر التطبيق باستخدام عدد كبير من الأجهزة لتقييم قابلية التوسّع ومدى فعالية التطبيق عند زيادة عدد المستخدمين. يجب أيضًا الاطّلاع على استهلاك تطبيقك لوحدة المعالجة المركزية والذاكرة والبطارية، خاصةً أثناء التواصل النشط مع الجهاز، لمعرفة ما إذا كان استخدامه للموارد معقولاً.
اختبار الموثوقية والاستقرار
بسبب اعتمادها على الاتصال بالشبكة، يجب اختبار تطبيقات Home APIs في الحالات التالية:
- تذبذب الشبكة
- محاكاة انقطاع شبكة Wi-Fi وضعف الإشارات والتبديل بين الشبكات
- تأكَّد من أنّ تطبيقك يتعامل مع حالات قطع الاتصال وإعادة الاتصال بسلاسة.
- تأكَّد من أنّ الأوامر يتم وضعها في قائمة الانتظار وتنفيذها عند استعادة الاتصال، أو قدِّم رسائل خطأ مناسبة.
- اختبِر التطبيق من شبكات بعيدة، وليس من شبكة المنزل فقط.
- قطع اتصال الجهاز
- افصل الأجهزة عن مصدر الطاقة.
- إدارة تشغيل الأجهزة
- العمليات المتزامنة
- إرسال تسلسل سريع من الأوامر
- محاولة التحكّم في الجهاز نفسه من قِبل عدة مستخدمين في الوقت نفسه
- اختبار المشاهد وعمليات التشغيل الآلي المتداخلة
- معالجة الأخطاء
- فرض أخطاء في واجهة برمجة التطبيقات، مثلاً عن طريق محاكاة ردود خادم واجهة برمجة التطبيقات على السحابة الإلكترونية
- اختبِر الإدخال غير الصالح من المستخدم.
- تأكَّد من إمكانية الرجوع إلى الإصدارات القديمة من التطبيق بشكل سلس ومن توفّر رسائل خطأ مفيدة.
- الموثوقية: شغِّل التطبيق والأجهزة المتصلة لفترات طويلة للكشف عن أي مشاكل محتملة في تسرب الذاكرة أو الثبات.