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