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

ما هو اختبار تطبيقات iOS؟
اختبار تطبيقات iOS هي عملية اختبار يتم فيها اختبار تطبيق iOS على أجهزة Apple حقيقية للتحقق مما إذا كان يعمل كما هو متوقع أم لا لإجراءات مستخدم محددة مثل وقت التثبيت، وواجهة المستخدم، وتجربة المستخدم، والمظهر، والسلوك، والوظيفة، ووقت التحميل، والأداء، والتطبيق قائمة المتجر، ودعم إصدار نظام التشغيل، وما إلى ذلك.
لماذا اختبار تطبيقات iOS؟
اختبار تطبيقات iOS هذا الأمر ضروري لأن نظام iOS هو منصة أبل لتطبيقات الهواتف المحمولة، وقد تم إصداره لأول مرة في 29 يونيو 2007. على عكس Androidلا تُرخّص Apple نظام iOS للتثبيت على أجهزة غير تابعة لها. يُمكن تثبيت نظام iOS وتطبيقاته فقط على أجهزة Apple؛ لذا، يجب أن يكون تطبيقك متوافقًا مع إصدارات iOS وأجهزة iOS التي يمتلكها المستخدمون.
يوضح الشكل أدناه الأسئلة الشائعة التي يواجهها المطورون عند إنشاء تطبيق لنظام iOS.
لا يهم مقدار الوقت الذي تستثمره في التصميم والتنفيذ؛ فالأخطاء حتمية، وستظهر الأخطاء البرمجية. يوضح الشكل أدناه بعض الأخطاء الشائعة في تطبيقات نظام iOS.
تعطل التطبيق
من أكثر المشاكل إزعاجًا عند استخدام أجهزة آبل هو تعطل التطبيقات بشكل متكرر أثناء التشغيل. غالبًا ما يكون سبب تعطل التطبيق وجود أخطاء برمجية أو تسرب للذاكرة في الكود.
عدم توافق التطبيقات
قد يعمل تطبيقك على نظام iOS بشكل مثالي على إصدار iOS الحالي، ولكن إذا تمت ترقية نظام iOS، فقد لا يعمل بسبب مشكلات عدم التوافق.
ثغرة أمنية
تسمح ثغرة أمنية في نظام iOS للمخترقين بمهاجمة أجهزة iOS الخاصة بك وسرقة معلوماتك الشخصية. على مر السنين، تم اكتشاف ثغرات أمنية خطيرة في أجهزة iPhone في إصدارات مختلفة من نظام iOS.
تسريبات الذاكرة
تسرب الذاكرة عبارة عن كتل من الذاكرة المخصصة التي لم يعد البرنامج يستخدمها. يتسبب تسرب الذاكرة في تعطل تطبيق iOS الخاص بك.
إنها أخطاء ويجب إصلاحها دائمًا.
iOS يختبر MindMap
كما هو موضح في الشكل أعلاه، نظام التشغيل iOS الاختبار تُظهر الخريطة الذهنية جميع العناصر التي يجب على المختبر مراعاتها عند إجراء الاختبارات على نظام التشغيل iOS.
قائمة التحقق من اختبار تطبيقات iOS
صُممت هذه القائمة خصيصًا لاختبار خصائص تطبيقات iOS للهواتف المحمولة. ومن الواضح أنها تختبر الخصائص العامة للتطبيق فقط، وليس وظائفه.
- تحقق من وقت تثبيت التطبيق على الجهاز. تأكد من تثبيت التطبيق خلال وقت مقبول.
- بعد تثبيت التطبيق، تحقق من وجود أيقونة واسم له. تأكد أيضاً من أن كلاً من الأيقونة والاسم واضحان ويعكسان الغرض الأساسي من التطبيق.
- قم بتشغيل التطبيق وتحقق مما إذا كانت شاشة البداية معروضة.
- تحقق من مهلة شاشة البداية والوقت المستغرق لتحميل الشاشة الرئيسية. يجب أن يتم تحميل الشاشة الرئيسية للتطبيق في وقت مقبول. إذا استغرق تحميلها وقتًا طويلاً، فمن المرجح أن يقوم المستخدم بإغلاق التطبيق أو حتى حذفه. كذلك، تحقق من كيفية عرض المحتوى على الشاشة الرئيسية.
- يجب أن تكون الوظيفة الرئيسية للتطبيق واضحة على الفور. وينبغي أن تتحدث عن نفسها.
- تأكد من أن التطبيق يدعم الوضعين الأفقي والرأسي. إذا كان يدعمهما، فجرب التطبيق في كلا الوضعين. يجب أن تتكيف واجهة المستخدم وفقًا لذلك.
- شغّل التطبيق بدون اتصال بالإنترنت. تأكد من أن التطبيق يعمل كما هو مصمم/مطلوب. قد يتعطل التطبيق عند التشغيل أو قد يعرض شاشة فارغة.
- إذا كان التطبيق يستخدم خدمات الموقع، فتحقق مما إذا كان تنبيه إذن الموقع معروضًا أم لا. يجب أن يظهر هذا التنبيه للمستخدم مرة واحدة فقط.
- إذا كان التطبيق يرسل إشعارات فورية، فتحقق مما إذا كان تنبيه طلب الإذن بالإشعارات الفورية معروضًا أم لا. يجب أن يظهر هذا التنبيه للمستخدم مرة واحدة فقط.
- قم بتشغيل التطبيق، ثم أغلقه وأعد تشغيله. تحقق مما إذا كان التطبيق يعمل كما هو مصمم/مطلوب.
- أغلق التطبيق بالنقرping اضغط على زر الصفحة الرئيسية للجهاز ثم افتح التطبيق مرة أخرى. تحقق مما إذا كان التطبيق يعمل كما هو مصمم/مطلوب.
- بعد التثبيت، تحقق مما إذا كان التطبيق مدرجًا في تطبيق الإعدادات الخاص بجهاز iPhone.
- بعد إطلاق التطبيق، تحقق من وجوده في متجر التطبيقات. ستجد إصدارات أنظمة تشغيل مدعومة للتطبيق، لذا تأكد من وجوده في متجر التطبيقات على الأجهزة التي تعمل بإصدارات أنظمة تشغيل مدعومة. كما يجب ألا يظهر التطبيق في متجر التطبيقات على الأجهزة التي تعمل بإصدارات أنظمة تشغيل غير مدعومة.
- تحقق مما إذا كان التطبيق ينتقل إلى وضع السكون عند التشغيل في الخلفية لمنع استنزاف البطارية.
- إذا كان أداء التطبيق بطيئًا أو عند تحميل المحتويات، فتحقق مما إذا كان هناك رمز حالة التقدم ("جارٍ التحميل...")، ويفضل أن يكون مع رسالة محددة.
- ابحث عن التطبيق باسمه في شريط البحث الخاص بالجهاز. تحقق مما إذا كان التطبيق مدرجًا.
- تحقق مما إذا كان مظهر الأزرار التي تؤدي الإجراءات القياسية لم يتغير في التطبيق (على سبيل المثال: تحديث، تنظيم، حذف، رد، رجوع، إلخ).
- تأكد من عدم استخدام الأزرار القياسية لوظائف أخرى غير تلك التي تُستخدم لها عادةً.
استراتيجية اختبار iOS
بمجرد معرفة ما يجب فحصه، تأتي الخطوة التالية وهي كيفية اختباره. يوضح الشكل أدناه بعض أنواع استراتيجيات اختبار نظام iOS الشائعة.
الاختبار الآلي
يُعدّ الاختبار الآلي أحد أهمّ مزايا اختبار تطبيقات نظام iOS، إذ يمكّنك من اكتشاف الأخطاء ومشاكل الأداء بسرعة. فيما يلي فوائد الاختبار الآلي:
- يمكن تشغيل الاختبار الآلي على أجهزة متعددة، مما يوفر وقتك
- يمكن للاختبار الآلي استهداف مجموعات تطوير البرامج (SDKs). يمكنك تشغيل الاختبارات على إصدارات مختلفة من مجموعات تطوير البرامج.
- يؤدي الاختبار الآلي إلى زيادة إنتاجية الاختبار وتوفير تكاليف تطوير البرمجيات
- توجد العديد من أطر اختبار المصادر المفتوحة التي تدعم الاختبار الآلي على نظام iOS
اختبار الوحدة باستخدام OCUnit
عندما تم إصدار iOS SDK الأصلي، لم يكن موجودًا وحدة التجارب الإمكانيات. لذلك قدمت آبل OCUnit حل اختبار الوحدة في إصدار iOS SDK 2.2.
كان OCUnit إطار عمل لاختبار لغة Objective-C على نظام التشغيل Mac (الآن macOSكانت الميزة الأكبر لإطار عمل OCUnit هي تكامله الوثيق مع Xcode بيئة التطوير، كما هو موضح أدناه.
ملاحظة: تم إيقاف استخدام OCUnit (SenTestingKit)؛ لأن Xcode 5، أبل اختبار XCT تم استبدال هذا الإطار كمعيار - انظر قسم XCTest أدناه. تُظهر لقطات الشاشة هنا إصدارًا أقدم. Xcode الإصدار.
تظهر بعض فوائد OCUnit في الشكل أدناه.
اختبار واجهة المستخدم مع UIAutomation
كانت أتمتة واجهة المستخدم Javaسيناريو مكتبةٌ مُقدَّمة من شركة آبل، يُمكن استخدامها لإجراء اختباراتٍ آلية على الأجهزة الحقيقية وعلى مُحاكي نظام iOS. أُضيفت هذه المكتبة في حزمة تطوير البرامج لنظام iOS الإصدار 4.0. باستخدام ميزة أتمتة واجهة المستخدم، يُمكنك أتمتة اختبار التطبيق ليس فقط على المُحاكي، بل أيضًا على جهازٍ حقيقي.
ملاحظة: أوقفت شركة آبل دعم ميزة أتمتة واجهة المستخدم في Xcode تم حذف هذه الميزة في الإصدار 8 (2016) وما بعده. استخدم XCUITest لمشاريع اختبار واجهة المستخدم الجديدة؛ تعكس الفئات ولقطات الشاشة أدناه مجموعة الأدوات القديمة.
حققت أتمتة واجهة المستخدم هذه الفوائد:
- جهد أقل على الاختبار اليدوي
- يتطلب الأمر جهدًا أقل لتنفيذ جميع اختباراتك
- تم تبسيط إجراءات اختبار واجهة المستخدم (اضغط على بضعة أزرار وقم بتشغيل مجموعات الاختبار الكاملة الخاصة بك)
كانت أداة UIAutomation تعمل من خلال نصوص مكتوبة بلغة Javaنص برمجي. يحاكي أحداث المستخدم على تطبيق iOS المستهدف.
إيجابيات وسلبيات أتمتة واجهة المستخدم
| الايجابيات | سلبيات | |
|---|---|---|
| 1. | دعم جيد للإيماءة والدوران | إنها ليست مفتوحة المصدر، ودعم أقل من المطور |
| 2. | يمكن تشغيل اختبارات UIAutomation على الجهاز، وليس فقط على المحاكي. | لا يمكن التكامل مع الأدوات الأخرى بشكل جيد للغاية |
| 3. | وضعت في Javaسكريبت، لغة برمجة شائعة. |
يمثل الشكل أعلاه بعض الفئات الشائعة في إطار عمل UIAutomation.
- استخدم UIAElement الفئة هي الفئة الفائقة لجميع عناصر واجهة المستخدم في سياق الأتمتة
- استخدم الائتلاف العراقي الموحدTarget تمثل الفئة عناصر واجهة المستخدم عالية المستوى للنظام قيد الاختبار
- استخدم UIALogger يوفر الفصل معلومات الاختبار والخطأ حول وظيفة الاسترجاع
- استخدم UIAActivityView يسمح class بالوصول إلى عروض النشاط والتحكم فيها داخل تطبيقك.
- استخدم UIAActionSheet يسمح الفصل بالوصول إلى أوراق العمل والتحكم فيها داخل تطبيقك.
- اسم المستخدم إجراء الحدث
- فئة UISlider
- فئة زر UIA
- فئة UIAKey
- فئة لوحة المفاتيح UIA
أطر الاختبار الآلي الأخرى
- صريح: الآلي اختبار القبول إطار عمل لأجهزة iPhone و iPad (لم يعد يتم تحديثه بشكل فعال)
- KIF: هو دائرة الرقابة الداخلية إختبار الإدماج نطاق. فهو يسمح بأتمتة تطبيقات iOS بسهولة من خلال الاستفادة من سمات إمكانية الوصول التي يوفرها نظام التشغيل للأشخاص ذوي الإعاقات البصرية.
- Appium: برنامج مفتوح المصدر شائع، عبر منصة إطار عمل يقوم بأتمتة تطبيقات iOS من خلال برنامج تشغيل XCUITest من Apple
XCTest و XCUITest: أطر اختبار أبل الحديثة
يُعد كل من OCUnit وUIAutomation من العناصر التاريخية المهمة، لكنهما أصبحا الآن من الماضي. استبدلت شركة Apple كلاً من OCUnit و اختبار XCT in Xcode 5 (2013) و UIAutomation المهملة في Xcode 8 (2016) لصالح اختبار XCUIT، وهو مكون اختبار واجهة المستخدم في XCTest. هذه هي أطر الاختبار التي توفرها Apple وتدعمها في كل إصدار حالي من Xcode.
باستخدام XCTest، يمكنك كتابة اختبارات الوحدة في Swift أو Objective-C وتشغيلها من Xcode برنامج Test Navigator، xcodebuild يمكنك استخدام سطر الأوامر، أو المحاكي، أو الأجهزة الحقيقية. يقوم XCUITest بتشغيل تطبيقك عبر طبقة إمكانية الوصول، بحيث تتصرف اختبارات واجهة المستخدم بشكل مشابه للمستخدم الحقيقي.
| إطار العمل القديم | بديل حديث | ما الذي تغير |
|---|---|---|
| وحدة التحكم في التشغيل (مجموعة اختبار الاستشعار) | اختبار XCT | نفس مفاهيم اختبار الوحدات، مدمجة الآن في كل Xcode قالب المشروع |
| أتمتة واجهة المستخدم (Javaنص) | اختبار XCUIT | تُكتب اختبارات واجهة المستخدم بلغة Swift أو Objective-C بدلاً من Javaسيناريو |
؟؟؟؟ تلميح: أدوات متعددة المنصات مثل Appium أتمتة نظام التشغيل iOS من خلال XCUITest في الخلفية، بحيث تنتقل هذه المهارات بشكل مباشر.
الاختبار اليدوي
تُضفي الأتمتة السرعة، لكن التقنيات اليدوية المذكورة أدناه تضيف حكماً بشرياً لا تستطيع البرامج النصية توفيره.
اختبار استكشافي
هو اختبار بدون خطة اختبار رسمية. يُعدّ الاختبار الاستكشافي أسلوب اختبار منخفض التكلفة، ولكنه قد يغفل عن بعض الأخطاء المحتملة في تطبيقك على نظام iOS.
سلبيات الاختبار الاستكشافي مقابل إيجابياته
| الايجابيات | سلبيات | |
|---|---|---|
| 1. | Less التحضير ضروري؛ إذ يتم اكتشاف الأخطاء الخطيرة مبكراً. | يتطلب مهارة عالية من المختبر |
| 2. | لا خطة اختبار هناك حاجة إلى ذلك، مما يسرع من اكتشاف الأخطاء. | تغطية الاختبار منخفضة. لا يضمن أن يتم اختبار جميع متطلباتك. |
| 3. | يتم اكتشاف معظم الأخطاء مبكرًا عن طريق نوع من الاختبارات الاستكشافية | عدم وجود وثائق الاختبار |
اختبار المستخدم
اختبار المستخدم هو نوع من الاختبار اليدوي على iOS. الغرض من هذا الاختبار هو إنشاء تطبيقات أفضل، وليس فقط خال من العلل التطبيقات. يوضح الشكل أدناه أربعة أنواع من اختبار المستخدم.
اختبار المفاهيم
قم بتقييم استجابة المستخدمين لفكرة التطبيق قبل طرحه في السوق. يوضح الشكل أدناه إجراءات اختبار المفهوم على نظام iOS.
اختبار قابلية الاستخدام
اختبار قابلية الاستخدام يُعد اختبار سهولة الاستخدام اختبارًا لمدى سهولة استخدام تطبيقك على نظام iOS. في اختبار تطبيقات iOS، يمكن أن يكون اختبار سهولة الاستخدام مسجل للتذكر أو لمشاركتها مع الآخرين.
بعض الأدوات التي تدعم اختبار سهولة الاستخدام على نظام iOS هي:
تريماتا تطبيقات اختبار مستخدم الهاتف المحمول لـ Android و iOS.
Delight.io، يمكن لهذه الأداة التقاط تفاعل المستخدم الحقيقي على تطبيقات iOS الخاصة بك.
اختبار بيتا
اختبار بيتا هو اختبار التكامل باستخدام بيانات حقيقية للحصول على التقييم النهائي من المستخدمين. لتوزيع تطبيقاتك لاختبار النسخة التجريبية، عليك اتباع الخطوات التالية.
-قبل تكييف: إذا كنت تقوم باختبار تجريبي لمرشح نهائي للإصدار، فتأكد من التحقق من صحة التطبيق قبل توزيعه على المختبرين.
-البحث عن اختبار عبر الخدمة: تقوم بجمع معرّفات الأجهزة من المختبرين وإضافتها إلى حساب مطوّر Apple الخاص بك
-إنشاء توزيع مخصصتتيح خاصية التوزيع المخصص للمختبِر تشغيل تطبيقك على جهازه دون الحاجة إلى Xcode. تتضمن هذه الخطوة خطوتين فرعيتين
- إنشاء شهادات التوزيع
- إنشاء ملفات تعريف التوفير المخصصة
-التماس ردود الفعل من اختبار: يقوم المختبرون بإجراء الاختبارات وإرسال تقارير الأخطاء إليك. بعد إصدار تطبيقك، يمكنك الحصول على التقارير من متجر التطبيقات Connect (سابقا iTunes الاتصال).
ملاحظة: اليوم، تقوم معظم الفرق بتوزيع إصدارات تجريبية باستخدام TestFlight، مما يتيح لك دعوة ما يصل إلى 10,000 مختبر خارجي دون جمع معرفات الأجهزة يدويًا.
إختبار أ / ب
إختبار أ / ب هي واحدة من أقوى الطرق ل تقييم فعالية تطبيق iOS الخاص بك. يستخدم تجارب عشوائية مع جهازين A وB.
يتضمن اختبار A/B ثلاث خطوات رئيسية
- تكوين اختبارقم بإعداد نسختين من تطبيقك لنظام iOS (أ و ب) ومقياس اختبار.
- اختبار: اختبر إصداري تطبيق iOS المذكورين أعلاه على الأجهزة في وقت واحد.
- حللقم بقياس واختيار النسخة الأفضل لإصدارها.
تدعم الأدوات التالية اختبار A/B على نظام iOS.
- تنشأ: اختبار A/B لكل من iOS و Androidيمكن دمجه في تطبيق iOS الخاص بك، مما يجعل عملية الاختبار أسرع.
أفضل الممارسات لاختبار A/B
- تحديد الهدف من الاختبار الخاص بك. أي اختبار لا فائدة منه بدون هدف.
- شاهد يستخدم المستخدمون النهائيون تطبيقك في المرة الأولى
- يجري صورة واحدة؟ اختبار واحد لكل تحديث فقط. يوفر ذلك وقتك عند إجراء الاختبارات.
- الشاشات ادرس اختبارك بعناية. يمكنك التعلم من اختبارك من خلال مراقبته.
ممارسة اختبار iOS الأفضل
فيما يلي بعض النصائح التي يجب أن تعرفها عند تنظيم اختبار تطبيق iOS الخاص بك
- اختبار التطبيق على أ جهاز حقيقي للحصول على نظرة واقعية للأداء
- تحسن أساليب الاختبار الخاصة بك، لأن أساليب الاختبار التقليدية لم تعد كافية لتغطية جميع الاختبارات في اختبار نظام التشغيل iOS
- استخدم سجل وحدة التحكم لاختبار تطبيق iOS. تتضمن هذه الميزة في نظام iOS معلومات من كل تطبيق على الجهاز.
- وثيقة أخطاء التطبيق باستخدام لقطة شاشة مدمجة الأمر. فهو يساعد المطور على فهم كيفية حدوث الأخطاء.
- الإبلاغ عن الأعطال تُعد الأدوات مفيدة عند اختبار تطبيقك. فهي قادرة على اكتشاف الأعطال وتسجيل التفاصيل، مما يُسهّل عليك التحقيق في الأخطاء.
خرافات حول اختبار iOS
يتناول هذا القسم بعض الخرافات والحقائق الشائعة حول اختبار iOS
اختبار التطبيقات على نظام iOS و Android هو نفس الشيء.
آيفون (iOS) و Android هما منصتان طورتهما شركة آبل و Google على التوالي. وهي تختلف تماماً في بيئات الاختبار، وأطر الاختبار، ولغات البرمجة.
يكفي اختبار التطبيق على محاكي نظام التشغيل iOS.
لا يُعدّ محاكي نظام iOS قويًا بما يكفي لاختبار التطبيقات، لأن محاكي نظام iOS لديه بعض القيود:
- قيود الأجهزة (الكاميرا، إدخال الميكروفون، المستشعر)
- قد تبدو واجهة المستخدم الخاصة بتطبيقك وكأنها تعمل بشكل أسرع وأكثر سلاسة من تشغيلها على الجهاز
- قيود واجهة برمجة التطبيقات
- بعض الأطر غير مدعومة (مشغل الوسائط، مجموعة أدوات المتجر، واجهة مستخدم الرسائل..)
سيقوم الجميع بتنزيل تطبيقاتي من متجر التطبيقات لأنها تحتوي على العديد من الميزات
كلما زادت الميزات التي يحتوي عليها تطبيقك، زادت الأخطاء التي يمكن أن تحصل عليها. لن يقوم أي مستخدم بتنزيل تطبيقك إذا كان لا يزال به العديد من العيوب.

.png)











