ويعتمد ما يجب اختباره على عوامل مثل نوع التطبيق وفريق التطوير ومقدار الرمز القديم والبنية المستخدمة. تحدد الأقسام التالية ما قد يرغب المبتدئ في التفكير فيه عند التخطيط لما سيختبره في تطبيقه.
تنظيم أدلة الاختبار
يحتوي المشروع النموذجي في Android Studio على دليلين لإجراء الاختبارات بناءً على بيئة التنفيذ. نظّم اختباراتك في الأدلة التالية كما هو موضح:
- يجب أن يتضمّن دليل
androidTest
اختبارات يتم تنفيذها على أجهزة حقيقية أو افتراضية. تتضمّن هذه الاختبارات اختبارات الدمج والاختبارات الشاملة واختبارات أخرى لا يمكن فيها لجهاز JVM وحده التحقّق من صحة وظائف تطبيقك. - يجب أن يتضمّن دليل
test
الاختبارات التي يتم إجراؤها على جهازك المحلي، مثل اختبارات الوحدات. على عكس ما سبق، يمكن أن تكون هذه اختبارات يتم تشغيلها على جهاز JVM محلي.
اختبارات الوحدات الأساسية
وعند اتّباع أفضل الممارسات، يجب التأكّد من استخدام اختبارات الوحدات في الحالات التالية:
- اختبارات الوحدات لـ ViewModels أو المقدمين.
- اختبارات الوحدات لطبقة البيانات، وخاصة المستودعات ينبغي أن تكون معظم طبقة البيانات مستقلة عن النظام الأساسي. يؤدي القيام بذلك إلى تمكين الضعف التجريبي من استبدال وحدات قاعدة البيانات ومصادر البيانات البعيدة في الاختبارات. يمكنك الاطّلاع على دليل استخدام الضعف في الاختبار في Android
- اختبارات الوحدات لطبقات أخرى مستقلة عن النظام الأساسي مثل طبقة النطاق، كما هو الحال مع حالات الاستخدام والتفاعلات.
- اختبارات الوحدات لفئات الأداة، مثل معالجة السلاسل والرياضيات.
حالات حافة الاختبار
ويجب أن تركز اختبارات الوحدات على الحالات العادية والحالات الهامشية. الحالات الهامشية هي سيناريوهات غير شائعة من غير المرجح أن يصادفها المختبرون البشريون والاختبارات الأكبر. وتشمل الأمثلة ما يلي:
- العمليات الحسابية باستخدام الأرقام السالبة والصفر وشروط الحدود.
- جميع الأخطاء المحتملة في الاتصال بالشبكة.
- البيانات التالفة، مثل تنسيق JSON المكتوب بشكلٍ غير صحيح
- محاكاة مساحة التخزين الكاملة عند الحفظ في ملف.
- إعادة إنشاء كائن في منتصف العملية (مثل نشاط عند تدوير الجهاز).
اختبارات الوحدات التي يجب تجنُّبها
يجب تجنُّب بعض اختبارات الوحدات بسبب قيمتها المنخفضة:
- اختبارات تتحقق من التشغيل الصحيح لإطار العمل أو المكتبة، وليس التعليمات البرمجية.
- يجب ألّا يكون لنقاط دخول إطار العمل، مثل الأنشطة أو الأجزاء أو الخدمات، منطق في العمل، لذا يجب عدم إعطاء الأولوية لاختبار الوحدات. لا قيمة لاختبارات الوحدة للأنشطة، لأنها ستتناول في الغالب رمز إطار العمل وتتطلب إعدادًا أكثر تعمقًا. يمكن للاختبارات الآلية مثل اختبارات واجهة المستخدم أن تغطي هذه الفئات.
اختبارات واجهة المستخدم
هناك عدة أنواع من اختبارات واجهة المستخدم التي يجب عليك استخدامها:
- تتحقّق اختبارات واجهة مستخدم الشاشة من تفاعلات المستخدم المهمة في شاشة واحدة. فهم ينفذون إجراءات مثل النقر على الأزرار وكتابة النماذج والتحقق من الحالات المرئية. يعد اختبار واحد لكل شاشة نقطة بداية جيدة.
- اختبارات تدفق المستخدم أو اختبارات التنقل، التي تغطي المسارات الأكثر شيوعًا. تحاكي هذه الاختبارات المستخدم الذي يتحرك خلال تدفق تنقل. فهي اختبارات بسيطة، ومفيدة للتحقق من أعطال وقت التشغيل في التهيئة.
الاختبارات الأخرى
هناك اختبارات أكثر تخصصًا مثل اختبارات لقطات الشاشة واختبارات الأداء واختبارات القرود. يمكنك أيضًا تصنيف الاختبارات حسب الغرض، مثل الانحدار وإمكانية الوصول والتوافق.
محتوى إضافي للقراءة
لإجراء الاختبار بمعزل عن الآخر، تحتاج غالبًا إلى استبدال تبعيات الموضوع الذي يخضع للاختبار بتبعيات مزيفة أو وهمية، تسمى "الاختبار المزدوج" بشكل عام. يُرجى مواصلة القراءة عنها في قسم استخدام الضعف في الاختبار في Android.
إذا كنت تريد معرفة كيفية إنشاء اختبارات الوحدات وواجهة المستخدم، يمكنك الاطّلاع على دروس اختبار الرموز.