تعد مرحلة الاختبار جزءًا لا يتجزأ من عملية تطوير التطبيقات. عادةً ما يتم تشغيل التطبيقات على جهاز محاكاة أو جهاز للتحقّق يدويًا من أنّ الرمز يعمل على النحو المتوقّع. ومع ذلك، يستغرق الاختبار اليدوي وقتًا طويلاً، وعرضة للأخطاء، وغالبًا ما يكون غير قابل للإدارة للتطبيقات التي تعمل على الشاشات والأجهزة ذات الأحجام المختلفة. غالبًا ما تكون مشاكل الاختبار اليدوي نتيجة استخدام جهاز واحد للتطوير. ونتيجةً لذلك، يمكن أن تتم ملاحظة الأخطاء دون ملاحظة على الأجهزة الأخرى ذات أشكال الأجهزة المختلفة.
لتحديد حالات التراجع في أحجام النوافذ والشاشات المختلفة، نفِّذ اختبارات مبرمَجة للتحقّق من اتساق سلوك تطبيقك ومظهره على مختلف أشكال الأجهزة. ترصد الاختبارات المبرمَجة المشاكل في وقت مبكر، وبالتالي تقليل خطر حدوث مشاكل تؤثّر في تجربة المستخدم.
ما يجب اختباره
عند تطوير واجهات مستخدم مصمّمة لأحجام شاشات ونوافذ مختلفة، يجب أن تولي انتباهًا خاصًا لجوانبَين:
- كيفية اختلاف السمات المرئية للمكونات والتنسيقات على النوافذ ذات الأحجام المختلفة
- كيفية الحفاظ على الحالة في جميع تغييرات الضبط
السمات المرئية
سواء كنت تخصص واجهات مستخدم لأحجام مختلفة للنوافذ أم لا، عليك التحقق من عرض واجهات المستخدم بشكل صحيح. يجب مراعاة الارتفاعات والأعرض التي تكون مدمجة ومتوسطة وممدودة. اطّلِع على فئات حجم النوافذ للاطّلاع على نقاط التوقف المُقترَحة.
وقد لا يعرض تطبيقك أيضًا بعض المكوّنات في نظام التصميم على النحو المُتوقّع عند تجاوز قيود الحجم.
إذا كان تطبيقك يتضمّن تنسيقات قابلة للتكيّف مع أحجام النوافذ المختلفة، يجب أن يكون لديك اختبارات مبرمَجة لمنع حدوث تراجعات. على سبيل المثال، يمكن أن يؤدي تثبيت هامش على هاتف إلى حدوث تناقضات في التنسيق على جهاز لوحي. أنشئ اختبارات واجهة المستخدم للتحقّق من سلوك التنسيقات والمكوّنات، أو أنشئ اختبارات لقطات الشاشة للتحقّق من التنسيقات بشكل مرئي.
استعادة الحالة
يتم تدوير التطبيقات التي تعمل على أجهزة مثل الأجهزة اللوحية وتغيير حجمها بشكلٍ أسرع بكثير من التطبيقات التي تعمل على الهواتف. تقدّم الهواتف القابلة للطي أيضًا إمكانيات عرض جديدة، مثل الطي والفتح، ما قد يؤدي إلى تغييرات في الإعدادات. يجب أن يتمكّن تطبيقك من استعادة الحالة عند حدوث هذه التغيُّرات في الإعدادات. عليك أيضًا كتابة اختبارات تؤكد أنّ تطبيقك يستعيد الحالة بشكل صحيح.
أولاً، اختبِر تطبيقك للتأكّد من أنّه لا يتعطّل عند إجراء تغييرات على الإعدادات. تأكَّد من أنّ كل واجهة مستخدم في تطبيقك يمكنها التعامل مع أيّ مجموعة من عمليات التدوير أو تغيير الحجم أو folding. ولأن تغييرات التهيئة تعيد إنشاء النشاط بشكل افتراضي، فإن بعض الأعطال تحدث بسبب افتراضات استمرار النشاط.
هناك طرق متعدّدة لاختبار تغييرات الضبط، ولكن في معظم الحالات، هناك طريقتان للاختبار:
- في Compose، استخدِم
StateRestorationTester
لمحاكاة تغيير في الإعدادات بطريقة فعّالة بدون إعادة تشغيل النشاط. راجِع الأقسام التالية للاطّلاع على مزيد من المعلومات. - في أي اختبار لواجهة المستخدم، مثل Espresso أو Compose، يمكنك محاكاة تغيير في الإعدادات
من خلال استدعاء
Activity.recreate()
.
لا تحتاج عادةً إلى استخدام أجهزة مختلفة لاختبار استعادة الحالة في استجابةً لتغييرات الإعدادات. ويعود سبب ذلك إلى أنّ جميع تغييرات الإعدادات التي تؤدي إلى إعادة إنشاء النشاط لها عواقب مماثلة. ومع ذلك، قد تؤدي بعض تغييرات الضبط إلى تفعيل آليات مختلفة لاستعادة الحالة على أجهزة معيّنة.
على سبيل المثال، عندما يعرض المستخدم واجهة مستخدم تعرض تفاصيل القائمة على جهاز مفتوح قابل للطي ويطوي الجهاز للتبديل إلى الشاشة الأمامية، يتم تبديل واجهة المستخدم عادةً إلى صفحة التفاصيل. يجب أن يشمل الاختبار الآلي عملية استعادة حالة واجهة المستخدم، بما في ذلك حالة التنقّل.
لاختبار تغييرات الإعدادات التي تحدث على الأجهزة عند الانتقال من شاشة إلى أخرى أو الدخول إلى وضع "النوافذ المتعددة"، تتوفّر لك خيارات متعدّدة:
- باستخدام أي جهاز، غيِّر حجم الشاشة أثناء الاختبار. في معظم الحالات، يؤدي ذلك إلى تشغيل كل آليات استعادة الحالة التي عليك التحقق منها. ومع ذلك، لن يعمل هذا الاختبار مع المنطق الذي يرصد أوضاعًا معيّنة في الأجهزة القابلة للطي، لأنّ تغييرات الوضع لا تؤدي إلى تغيير الإعدادات.
- باستخدام جهاز أو محاكي متوافق مع الميزات التي تريد اختبارها، يمكنك إجراء تغييرات الإعدادات ذات الصلة. على سبيل المثال، يمكن التحكّم في جهاز قابل للطي أو جهاز كمبيوتر لوحي باستخدام جهاز Espresso للانتقال من الوضع المُطوي إلى الوضع المفتوح بالوضع الأفقي. اطّلِع على قسم جهاز Espresso ضمن المكتبات والأدوات لاختبار أحجام الشاشات المختلفة للحصول على أمثلة.
أنواع الاختبارات لأحجام الشاشات والنوافذ المختلفة
استخدِم النوع المناسب من الاختبار لكل حالة استخدام للتأكّد من أنّ الاختبار يعمل بشكلٍ صحيح على مختلف أشكال الأجهزة:
اختبارات سلوك واجهة المستخدم: تُطلق هذه الاختبارات جزءًا من واجهة المستخدم في التطبيق، مثل عرض نشاط معيّن. تتحقّق الاختبارات من توفّر عناصر معيّنة أو أنّها تحتوي على سمات معيّنة . قد تُجري الاختبارات اختياريًا تمثيلاً لصنوف الإجراءات التي يتّخذها المستخدم. بالنسبة إلى طرق العرض، استخدِم Espresso. يحتوي Jetpack Compose على واجهات برمجة التطبيقات لاختبار. ويمكن اختبار سلوك واجهة المستخدم على قياسات أو محلّية. يتم تنفيذ الاختبارات المستندة إلى الأدوات على الأجهزة أو المحاكيات، بينما يتم تنفيذ اختبارات واجهة المستخدم المحلية على Robolectric على آلة Java الافتراضية (JVM).
استخدِم اختبارات سلوك واجهة المستخدم للتأكّد من صحة تنفيذ التطبيق لوظائف التنقّل. تنفِّذ الاختبارات إجراءات مثل النقرات والتمريرات السريعة. تتحقّق اختبارات سلوك واجهة المستخدم أيضًا من توفّر عناصر أو سمات معيّنة. لمزيد من المعلومات، يُرجى الاطّلاع على التشغيل التلقائي لاختبارات واجهة المستخدم.
تلتقط اختبارات لقطات الشاشة لقطة شاشة لواجهة مستخدم أو مكوّن وتقارن الصورة بلقطة شاشة تمت الموافقة عليها سابقًا. وهذه طريقة فعّالة جدًا لتجنّب التراجعات، لأنّ لقطة شاشة واحدة يمكن أن تغطي عددًا كبيرًا من العناصر وخصائصها المرئية. يمكنك إجراء اختبارات لقطات الشاشة على JVM أو على الأجهزة. تتوفّر عدة إطارات عمل لاختبار لقطات الشاشة. لمزيد من المعلومات، يُرجى الاطّلاع على اختبارات لقطات الشاشة.
أخيرًا، قد تحتاج إلى اختبارات وحدات لاختبار وظائف وحدات المنطق التي تتصرف بشكلٍ مختلف حسب نوع الجهاز أو حجم النافذة، ولكن اختبارات الوحدات أقل شيوعًا في هذا المجال.
الخطوات التالية
لمزيد من المعلومات حول كيفية تنفيذ عمليات التحقّق الواردة في هذا المستند، يُرجى الاطّلاع على المكتبات والأدوات.