اختبار أحجام الشاشات والنوافذ المختلفة

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

لتحديد الانحدار على مختلف أحجام النوافذ والشاشات، يمكنك تنفيذ اختبارات مبرمجة للتحقق من أن سلوك تطبيقك ومظهره متسقون عبر مختلف أشكال الأجهزة. تحدد الاختبارات التلقائية المشكلات في وقت مبكر، مما يخفف من مخاطر المشكلات التي تؤثر على تجربة المستخدم.

ما يمكن اختباره

عند تطوير واجهات المستخدم المصممة لأحجام مختلفة للشاشات والنوافذ، ينبغي إيلاء اهتمام خاص لجانبين:

  1. كيف تختلف السمات المرئية للمكونات والتخطيطات على النوافذ ذات الأحجام المختلفة
  2. كيفية الاحتفاظ بالحالة في جميع تغييرات الإعدادات

السمات المرئية

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

الشكل 1. شاشة "مقترَحة لك" في Now In Android بأحجام مختلفة للنوافذ

أيضًا، قد لا يعرض تطبيقك بعض المكونات في نظام التصميم الخاص بك كما هو متوقع عندما يتم تمديد قيود الحجم.

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

استعادة الحالة

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

الشكل 2. الجهاز القابل للطي مطوي، وفتحه مسطح، وفتحه بشكل مسطّح باتجاه أفقي، ونصفه مفتوح (على سطح طاولة).

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

هناك طرق متعددة لاختبار تغييرات الإعدادات، ولكن في معظم الحالات، هناك طريقتان للاختبار:

  • في أداة Compose، يمكنك استخدام StateRestorationTester لمحاكاة تغيير في الإعدادات بطريقة فعّالة بدون إعادة تشغيل النشاط. راجِع الأقسام التالية للحصول على مزيد من المعلومات
  • في أي اختبار لواجهة المستخدم، مثل Espresso أو Compose، عليك محاكاة تغيير في الإعدادات من خلال استدعاء Activity.recreate().

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

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

لاختبار تغييرات الضبط التي تحدث على الأجهزة التي تنتقل من شاشة إلى أخرى أو تدخل في وضع النوافذ المتعددة، تتوفّر لك خيارات متعدّدة:

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

أنواع الاختبارات لأحجام الشاشات والنوافذ المختلفة

استخدِم نوع الاختبار المناسب لكل حالة استخدام للتأكّد من أنّ الاختبار يعمل بشكل صحيح على مستوى مختلف أشكال الأجهزة:

  • تُشغِّل اختبارات سلوك واجهة المستخدم جزءًا من واجهة مستخدم التطبيق، مثل عرض نشاط ما. تتحقق الاختبارات من وجود عناصر معينة أو من أنها تحتوي على سمات محددة . قد تُجري الاختبارات اختياريًا إجراءات تحاكي سلوك المستخدم. بالنسبة إلى المشاهدات، استخدِم Espresso. تمتلك Jetpack Compose واجهات برمجة تطبيقات خاصة بالاختبار. يمكن إجراء قياسات على اختبارات سلوك واجهة المستخدم أو محلية. يتم إجراء الاختبارات الآلية على الأجهزة أو أجهزة المحاكاة، بينما يتم إجراء اختبارات واجهة المستخدم المحلية على Robolectric على جهاز JVM.

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

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

وأخيرًا، قد تحتاج إلى اختبارات وحدة لاختبار وظائف الوحدات المنطقية التي تعمل بشكل مختلف اعتمادًا على نوع الجهاز أو حجم النافذة، لكن اختبارات الوحدات أقل شيوعًا في هذا المجال.

الخطوات التالية

لمزيد من المعلومات حول كيفية تنفيذ عمليات التحقق الواردة في هذا المستند، يُرجى مراجعة المكتبات والأدوات.