تعد مرحلة الاختبار جزءًا لا يتجزأ من عملية تطوير التطبيقات. تقوم عادةً بتشغيل التطبيقات على محاكي أو جهاز للتحقق يدويًا من أن التعليمات البرمجية تعمل كما هو متوقع. ومع ذلك، يستغرق الاختبار اليدوي وقتًا طويلاً، وعرضة للأخطاء، وغالبًا ما يكون غير قابل للإدارة للتطبيقات التي تعمل على الشاشات والأجهزة ذات الأحجام المختلفة. غالبًا ما تكون مشكلات الاختبار اليدوي ناتجة عن استخدام جهاز واحد في التطوير. ونتيجةً لذلك، يمكن أن تتم ملاحظة الأخطاء بدون ملاحظة على الأجهزة الأخرى ذات أشكال الأجهزة المختلفة.
لتحديد التراجع في الأحجام المختلفة للنوافذ والشاشات، يمكنك تنفيذ اختبارات مبرمَجة للتحقّق من اتساق سلوك تطبيقك ومظهره على مستوى مختلف أشكال الأجهزة. تحدد الاختبارات الآلية المشكلات في وقت مبكر، للتخفيف من مخاطر المشكلات التي تؤثر على تجربة المستخدم.
ما يمكن اختباره
عند تطوير واجهات مستخدم مصممة لأحجام مختلفة للشاشة والنوافذ، انتبِه بشكل خاص إلى جانبين:
- كيف تختلف السمات المرئية للمكونات والتخطيطات على النوافذ ذات الأحجام المختلفة
- كيفية الحفاظ على الحالة في جميع تغييرات الإعدادات
السمات المرئية
سواء كنت تخصص واجهات مستخدم لأحجام مختلفة للنوافذ أم لا، عليك التحقق من عرض واجهات المستخدم بشكل صحيح. ضع في اعتبارك أن العرض والارتفاعات مكثفة ومتوسطة وموسعة. راجِع فئات حجم النوافذ لمعرفة نقاط الإيقاف المقترَحة.
![](https://developer.android.com/static/images/training/testing/different-screens/nia_sizes.png?authuser=5&hl=ar)
أيضًا، قد لا يعرض تطبيقك بعض المكونات في نظام التصميم الخاص بك كما هو متوقع عندما يتم تمديد قيود حجمها.
إذا كان تطبيقك يحتوي على تصميمات تكيّفية لأحجام نوافذ مختلفة، عليك إجراء اختبارات مبرمَجة لمنع أي تراجع في التغييرات. على سبيل المثال، يمكن أن يؤدي إصلاح هامش على الهاتف إلى تناقضات في التخطيط على الجهاز اللوحي. أنشئ اختبارات واجهة المستخدم للتحقّق من سلوك التنسيقات والمكونات، أو أنشئ اختبارات لقطة شاشة للتحقق من التنسيقات بشكل مرئي.
استعادة الولاية
يتم تدوير التطبيقات التي تعمل على أجهزة مثل الأجهزة اللوحية وتغيير حجمها بشكل متكرر كثيرًا مقارنةً بالتطبيقات على الهواتف. تقدّم الهواتف القابلة للطي أيضًا إمكانيات عرض جديدة، مثل الطي والفتح، ما قد يؤدي إلى تغييرات في الإعدادات. ويجب أن يكون تطبيقك قادرًا على استعادة الحالة عند حدوث هذه التغييرات في الإعدادات. عليك أيضًا كتابة اختبارات تؤكد أنّ تطبيقك يستعيد الحالة بشكل صحيح.
![](https://developer.android.com/static/images/training/testing/different-screens/foldable_multiple_postures.png?authuser=5&hl=ar)
أولاً، عليك اختبار عدم تعطُّل تطبيقك عند حدوث تغييرات في الإعدادات. تأكد من أن كل واجهة مستخدم في تطبيقك يمكنها التعامل مع أي مجموعة من دوال التدوير أو تغيير الحجم أو الطي. ولأن تغييرات التهيئة تعيد إنشاء النشاط بشكل افتراضي، فإن بعض الأعطال تحدث بسبب افتراضات استمرار النشاط.
هناك العديد من الطرق لاختبار تغييرات الضبط، ولكن في معظم الحالات، هناك طريقتان للاختبار:
- في نافذة Compose، استخدِم
StateRestorationTester
لمحاكاة تغيير الإعدادات بطريقة فعّالة بدون إعادة تشغيل النشاط. راجِع الأقسام التالية للاطّلاع على مزيد من المعلومات. - في أي اختبار لواجهة مستخدم مثل Espresso أو Compose، يمكنك محاكاة تغيير في الإعدادات من خلال استدعاء
Activity.recreate()
.
بشكل عام، لا تحتاج إلى استخدام أجهزة مختلفة لاختبار استعادة الحالة استجابةً لتغييرات الإعدادات. وذلك لأن جميع تغييرات التكوين التي تعيد إنشاء النشاط لها تداعيات مماثلة. ومع ذلك، قد تؤدي بعض التغييرات في الإعدادات إلى تشغيل آليات استعادة حالة مختلفة على أجهزة معيّنة.
على سبيل المثال، عندما يعرض المستخدم واجهة مستخدم تعرض قائمة التفاصيل على جهاز مفتوح قابل للطي أثناء طيّه للتبديل إلى الشاشة الأمامية، يتم تبديل واجهة المستخدم عادةً إلى صفحة التفاصيل. يجب أن يشمل الاختبار التلقائي هذا استعادة حالة واجهة المستخدم، بما في ذلك حالة التنقل.
ولاختبار تغييرات الضبط التي تحدث على الأجهزة التي تنتقل من شاشة عرض إلى أخرى أو تدخل وضع النوافذ المتعددة، لديك خيارات متعددة:
- باستخدام أي جهاز، غيِّر حجم الشاشة أثناء الاختبار. في معظم الحالات، يؤدي ذلك إلى تشغيل كل آليات استعادة الحالة التي عليك التحقق منها. ومع ذلك، لن يعمل هذا الاختبار مع المنطق الذي يرصد أوضاع معيّنة في الهواتف القابلة للطيّ لأنّ التغييرات في الوضع لا تؤدي إلى تغيير الإعدادات.
- عند استخدام جهاز أو محاكي يدعم الميزات التي تريد اختبارها، يؤدي إلى ظهور تغييرات الضبط ذات الصلة. على سبيل المثال، يمكن التحكم في الجهاز القابل للطي أو الجهاز اللوحي باستخدام جهاز إسبريسو للانتقال من مكان مطوي إلى مفتوح بشكل مستوٍ في الوضع الأفقي. يمكنك الاطّلاع على قسم أجهزة الإسبريسو في المكتبات والأدوات لاختبار أحجام الشاشات المختلفة للحصول على أمثلة.
أنواع الاختبارات لمختلف أحجام الشاشات والنوافذ
استخدم نوع الاختبار المناسب لكل حالة استخدام للتأكد من أن الاختبار يعمل بشكل صحيح عبر مختلف أشكال الأجهزة:
تعمل اختبارات سلوك واجهة المستخدم على تشغيل جزء من واجهة مستخدم التطبيق، مثل عرض نشاط. تتحقق الاختبارات من وجود عناصر معينة أو لها سمات محددة . قد تؤدي الاختبارات إلى تنفيذ إجراءات محاكاة للمستخدم اختياريًا. بالنسبة إلى المشاهدات، يمكنك استخدام Espresso. يتضمّن Jetpack Compose واجهات برمجة تطبيقات للاختبار خاصة بها. ويمكن اختبار سلوك واجهة المستخدم على قياسات أو محلّية. يتم إجراء اختبارات قياس الأداء على الأجهزة أو أدوات المحاكاة، بينما يتم إجراء اختبارات واجهة المستخدم المحلية على Robolectric على آلة JVM.
استخدِم اختبارات سلوك واجهة المستخدم للتحقّق من صحة تنفيذ التنقّل في التطبيق. تنفِّذ الاختبارات إجراءات مثل النقرات والتمريرات السريعة. تتحقق اختبارات سلوك واجهة المستخدم أيضًا من وجود عناصر أو خصائص معينة. لمزيد من المعلومات، يُرجى الاطّلاع على التشغيل التلقائي لاختبارات واجهة المستخدم.
من خلال اختبارات لقطات الشاشة، يمكنك أخذ لقطة شاشة لواجهة مستخدِم أو مكوّن ومقارنة الصورة بلقطة شاشة سبق أن تمت الموافقة عليها. وهذه طريقة فعالة للغاية للحماية من التراجع، حيث يمكن للقطة شاشة واحدة أن تغطي عددًا كبيرًا من العناصر وخصائصها المرئية. يمكنك إجراء اختبارات لقطات الشاشة على آلة متجه الدعم أو على الأجهزة. تتوفّر عدّة أُطر عمل لاختبار لقطات الشاشة.
وأخيرًا، قد تحتاج إلى إجراء اختبارات وحدة لاختبار وظائف وحدات المنطق التي تتصرف بشكل مختلف حسب نوع الجهاز أو حجم النافذة، لكن اختبارات الوحدة أقل شيوعًا في هذا المجال.
الخطوات التالية
لمزيد من المعلومات حول طريقة تنفيذ عمليات التحقّق الواردة في هذا المستند، يُرجى الاطّلاع على المكتبات والأدوات.