اختبار تطبيق iOS

وعلى عكس أنواع تطبيقات iOS الأخرى، يتضمّن تطبيق Home APIs اعتبارات وتحديات فريدة، بما في ذلك الاعتماد على أجهزة منزلية ذكية فعلية، وموثوقية الشبكة، والأمان والخصوصية، وإمكانية التشغيل التفاعلي للأجهزة والبروتوكولات. وتؤثّر هذه الاختلافات في الاختبار.

إعداد بيئة الاختبار

من الضروري توفير بيئة اختبار قوية لاختبار تطبيق يستخدم واجهات برمجة التطبيقات الخاصة بمنصة Home.

من الاستراتيجيات الجيدة عزل الأجهزة التجريبية لواجهة برمجة التطبيقات Home API على شبكة Wi-Fi مخصّصة. يمنع ذلك حدوث تداخل من الأجهزة الأخرى ويتيح لك محاكاة ظروف شبكة مختلفة، مثل النطاق الترددي المحدود.

ننصحك بإجراء الاختبار باستخدام مجموعة متنوعة من أنواع الأجهزة المنزلية الذكية من مختلف الشركات المصنّعة. احرص على إجراء الاختبار باستخدام أجهزة فعلية. لأجهزة المحاكاة والأجهزة الافتراضية أهميتها، ولكن لا يجب الاعتماد عليها بشكل حصري.

وبالمثل، يساعد اختبار تطبيقك على مجموعة متنوعة من أجهزة iOS من عدة مصنّعين وبأبعاد شاشة مختلفة وبإصدارات مختلفة من iOS في التحقّق من التوافق على نطاق أوسع.

تجميع الأدوات

تساعد الأدوات التالية في اختبار تطبيق يستخدم واجهات برمجة تطبيقات Home:

الأداة الوصف
Google Home Playground لا يمكن الاستعاضة عن الاختبار باستخدام أجهزة فعلية، ولكنها مفيدة جدًا في العديد من سيناريوهات الاختبار.
Matter Virtual Device (MVD) تطبيق محاكاة آخر يمكن أن يكون مفيدًا عند الاختبار باستخدام أجهزة Matter في تطبيق يستخدم واجهات برمجة التطبيقات Home APIs.
محاكي الشبكة تتيح لك محاكاة ظروف الشبكة المختلفة واستجابات واجهة برمجة التطبيقات، وهو أمر مفيد بشكل خاص إذا كانت واجهة برمجة تطبيقات Home تستخدم خلفية سحابية.
TestFlight تتيح لك إمكانية التشغيل الآلي لاختبار واجهة المستخدم. عليك محاكاة واجهة برمجة التطبيقات الأساسية لمحاكاة تفاعلات الأجهزة.
XCode Console التعامل مع بيانات السجلّ وتحليلها
XCUIAutomation تتيح لك إمكانية التشغيل الآلي لاختبار واجهة المستخدم. عليك محاكاة واجهة برمجة التطبيقات الأساسية لمحاكاة تفاعلات الأجهزة.

تطبيق أساليب واستراتيجيات اختبار مختلفة

يجب تطبيق مجموعة متنوعة من أساليب الاختبار على تطبيق Home APIs. للحصول على معلومات عامة حول الطرق المختلفة، راجِع اختبار التطبيقات على TestFlight. بالإضافة إلى اختبار تجربة المستخدم والأمان الذي من المتوقّع أن تخضع له جميع تطبيقات iOS، هناك بعض مجالات الاختبار التي تهمّ بشكل خاص تطبيقات واجهات برمجة التطبيقات الخاصة بمنصة Home، ويتم توضيحها بالتفصيل في الأقسام التالية.

الاختبار الوظيفي

بناءً على إمكانات تطبيقك، قد تحتاج إلى إيلاء اهتمام خاص لبعض الجوانب التالية:

  1. اكتشاف الأجهزة وإقرانها، بما في ذلك عملية الإعداد الأوّلية والإقران بأجهزة جديدة، وإعادة اكتشاف الأجهزة الحالية بعد إعادة تشغيل التطبيق أو إعادة تشغيل الجهاز أو إجراء تغييرات في الشبكة تحقَّق أيضًا من سيناريوهات مثل الأجهزة التي لا تستجيب أو إدخال المستخدم لبيانات اعتماد غير صحيحة.
  2. مزامنة الحالة، والتأكّد من أنّ التطبيق يتم تعديله ليعكس الحالة الحالية بدقة وفي الوقت المناسب
  3. كيفية إدارة الأذونات وفرضها، خاصةً إذا كان تطبيقك يتيح استخدام عدة مستخدمين أو الوصول إلى المنزل من خلال مشاركة الحساب ويشمل ذلك التأكّد من أنّ تطبيقك يتعامل بشكل سليم مع الأذونات التي تم إبطالها.
  4. إذا كان تطبيقك يتيح استخدام المشاهد، مثل مشهد "ليلة سعيدة" الذي يطفئ كل الأضواء، اختبِر إنشاء المشاهد وتعديلها وتنفيذها. اختبار عمليات التشغيل الآلي، بما في ذلك إجراءات التفعيل والإجراءات

اختبار الأداء

تأكَّد من أنّ تطبيقك يستجيب بشكل جيد ولا يتسبّب في أي تأخير غير ضروري. إذا أمكن، اختبِر التطبيق باستخدام عدد كبير من الأجهزة لتقييم قابلية التوسّع ومعرفة مدى جودة أدائه في ظلّ زيادة عدد المستخدمين. يجب أيضًا الاطّلاع على استهلاك تطبيقك لوحدة المعالجة المركزية والذاكرة والبطارية، خاصةً أثناء التواصل النشط مع الجهاز، لمعرفة ما إذا كان استخدامه للموارد معقولاً.

اختبار الموثوقية والاستقرار

بسبب اعتمادها على الاتصال بالشبكة، يجب اختبار تطبيقات Home APIs في الحالات التالية:

  1. تذبذب الشبكة
    • محاكاة انقطاع شبكة Wi-Fi وضعف الإشارات والتبديل بين الشبكات
    • تأكَّد من أنّ تطبيقك يتعامل مع حالات قطع الاتصال وإعادة الاتصال بسلاسة.
    • تأكَّد من أنّ الأوامر يتم وضعها في قائمة الانتظار وتنفيذها عند استعادة الاتصال، أو قدِّم رسائل خطأ مناسبة.
    • اختبِر التطبيق من شبكات بعيدة، وليس من شبكة المنزل فقط.
  2. قطع اتصال الجهاز
    • افصل الأجهزة عن مصدر الطاقة.
    • إدارة تشغيل الأجهزة
  3. العمليات المتزامنة
    • إرسال تسلسل سريع من الأوامر
    • أن يحاول عدة مستخدمين التحكّم في الجهاز نفسه في الوقت نفسه
    • اختبار المشاهد وعمليات التشغيل الآلي المتداخلة
  4. معالجة الأخطاء
    • فرض أخطاء في واجهة برمجة التطبيقات، مثلاً من خلال محاكاة ردود خادم واجهة برمجة التطبيقات على السحابة الإلكترونية
    • اختبِر الإدخال غير الصالح من المستخدم.
    • تأكَّد من إمكانية الرجوع إلى الإصدارات القديمة من التطبيق بشكل سلس ومن توفّر رسائل خطأ مفيدة.
  5. الموثوقية: تشغيل التطبيق والأجهزة المتصلة لفترات طويلة للكشف عن أي مشاكل محتملة في تسرب الذاكرة أو الثبات