مرحبا يا هبر! أقدم إليكم ترجمة المقال
"WWDC19: الابتداء بخطة الاختبار لـ XCTest" للمخرج Shashikant Jagtap.

في مؤتمر
WWDC الأخير ، عرضت شركة Apple ميزات جديدة رائعة للمطورين. يضيف Xcode 11 أيضًا بعض الميزات الرائعة. يمكنك أن تقرأ عنها في
ملاحظات الإصدار . واحدة من أهم الأدوات التي تم الإعلان عنها هذا العام هي اختبار خطة اختبارات XCTest و Xcode UI. في هذه المقالة ، سنبحث بالتفصيل كيف ستعمل وظيفة خطة الاختبار مع XCTest. إذا كنت تريد معرفة المزيد من التفاصيل ، شاهد فيديو جلسة
"الاختبار على Xcode".خطة اختبار Xcode
قبل Xcode 11 ، كان تكوين الاختبار جزءًا من مخططات Xcode. إذا أراد المطورون تكوين مجموعات اختبار مختلفة لظروف مختلفة ، فقد قاموا إما بإنشاء دائرة جديدة أو تحرير دائرة موجودة لتلبية احتياجات اختبار محددة. كان تكوين الاختبار مرتبطًا بشكل وثيق بأنظمة Xcode ، لذلك اضطررت إلى إنشاء العديد من المخططات لمهام مختلفة أثناء الاختبار.
تتيح الوظيفة الجديدة في Xcode 11 للمطورين ومهندسي ضمان الجودة تخصيص الاختبارات لتناسب احتياجاتهم. تسمح لك خطة الاختبار بتحديد:
- ما الاختبارات لتشغيل في التجمع ؛
- كيفية إجراء هذه الاختبارات (على سبيل المثال ، بترتيب عشوائي أو أبجدي) ؛
- كيفية إدارة أدوات الاختبار (على سبيل المثال ، المرفقات ولقطات الشاشة) ؛
- كيفية استخدام أدوات وقت التشغيل كجزء من الاختبار.
مع خطة اختبار Xcode ، يمكنك تكوين مجموعات الاختبار بشكل مستقل عن مخططات Xcode. هذا هو تحسن كبير في تكنولوجيا الاختبار التي يمكن أن تأخذ الاختبارات الخاصة بك إلى المستوى التالي. الآن دعونا نلقي نظرة على خطة اختبار Xcode في العمل.
السيناريو
لنفترض أننا وضعنا خطة اختبار للاختبارات الوظيفية مع المتطلبات التالية:
- يجب أن تشمل الاختبارات الوظيفية مجموعات لاختبار الدخان والانحدار ؛
- يجب إجراء اختبارات الدخان في لندن (المملكة المتحدة) واختبارات الانحدار في سان فرانسيسكو (الولايات المتحدة الأمريكية) ؛
- يجب إجراء اختبارات الدخان بالترتيب الأبجدي ، ويجب إجراء اختبارات الانحدار بترتيب عشوائي للوقوف على المشكلات بين الاختبارات.
سننشئ خطة الاختبار هذه لـ Xcode لمختلف منصات Apple.
إنشاء خطة اختبار في Xcode
Xcode 11 يسمح لنا بتحديد هذه المتطلبات في خطة الاختبار. يسمح لك Xcode بإنشاء "خطة اختبار" من تكوين المخطط الحالي. عندما تقوم بتحرير الدائرة والمتابعة إلى خطوات الاختبار الحالية ، يعرض Xcode خيارًا لإنشاء خطة اختبار. يمكنك إنشاء خطة اختبار بالإعدادات التالية:
- خطة اختبار فارغة : تنشئ قالبًا فارغًا وتسمح لك بوضع خطتك الخاصة ؛
- خطة الاختبار من المخطط : يأخذ تكوين الدائرة ويقوم بإنشاء خطة اختبار ؛
- اختر خطة الاختبار : إذا كان لديك بالفعل خطة اختبار تم إنشاؤها ، فيمكنك تحديدها وإضافتها إلى المخطط.
للتعرف على نفسك ، قم بإنشاء "خطة اختبار" من تكوين الدائرة.

تحتاج إلى تسمية خطة الاختبار وتحديد هدف الاختبار الصحيح. عند إنشاء خطة اختبار ، يتم توصيلها بالدارة. ومع ذلك ، يمكن أن يتجاوز المخطط أي خطة اختبار تم إنشاؤها بعد استخدام العلامة عند استدعاء الأمر Xcodebuild. بعد إنشاء خطة اختبار ، يمكنك إرفاقها بهدف محدد. دعنا نضيف الخطة الحالية إلى الهدف من خلال اختبارات واجهة المستخدم ونمنحها اسمًا.

ستجد ملفًا جديدًا بالملحق functional.xctestplan. هذه هي خطة الاختبار الخاصة بك. يمكن تحريره إذا لزم الأمر. يمكنك إنشاء خطة اختبار مركبة في نفس الهدف ، وفقًا لاحتياجات الاختبارات. في هذه المرحلة ، لدينا خطة اختبار متاحة لهدفنا من خلال اختبارات واجهة المستخدم.
ملف خطة الاختبار
ملف Test Plan هو ملف تكوين بسيط يشبه json والذي يحتوي على معلومات حول كيفية تكوين الاختبارات الخاصة بك لتعمل بشكل مستقل عن أي دائرة. فيما يلي إعدادات تكوين الاختبار المختلفة المتوفرة في خطة الاختبار. تحتوي خطة الاختبار الأساسية على ثلاثة عناصر رئيسية:
- تكوينات (تكوين)؛
- أهداف الاختبار
- الإعدادات (إعدادات).
يحتوي كل تكوين في خطة الاختبار على مجموعة من الاختبارات المرتبطة بها مع إعدادات مختلفة. وفقًا لمتطلبات خطة الاختبار الخاصة بنا ، سنحتاج إلى تكوينين: الأول لاختبار الدخان ، والآخر لاختبار الانحدار.
الآن دعنا نفتح ملف functional.xctestplan في Xcode وأعد تسمية التكوين 1 للدخان uk ، ثم انقر على زر "+" في أعلى الخطة وأضف تكوينًا آخر للانحدار-الولايات المتحدة الأمريكية.
الآن لدينا تكوينان في اختبار الخطة وترتبط خطة الاختبار بالفعل بهدف مع اختبارات واجهة المستخدم. إضافة بعض الإعدادات إلى كل التكوين. عند تحديد تكوين دخان المملكة المتحدة ، يمكننا تغيير الموقع إلى لندن وإجراء تغييرات أخرى على الإعدادات. وبالمثل ، قم بتغيير تكوين الانحدار-الولايات المتحدة الأمريكية. هذا ما ستبدو عليه خطة الاختبار لتحفيز الانحدار:

الإعدادات المتاحة في خطة الاختبار:
- الحجج - تسمح لك بتجاوز وسيطات التشغيل وبيئة التشغيل للاختبارات ؛
- التعريب - يتيح لك تكوين اختبارات لمختلف المواقع الجغرافية واللغات واللغات. هذا إعداد رائع جدًا لاختبار التدويل والتعريب.
- اختبار واجهة المستخدم / المرفق / تنفيذ الاختبار / تغطية الشفرة - خيارات محددة لاختبار واختبار واجهة المستخدم. يمكنك أن تقرر ما إذا كنت تريد ترك القطع الأثرية أو حذفها في أقرب وقت ممكن. يمكنك أيضًا اختيار الترتيب الذي يتم به تشغيل الاختبارات وحساب تغطية الشفرة ؛
- أدوات تشخيص رمز Xcode - تتوفر العديد من أدوات تشخيص رمز Xcode ، مثل Address Sanitizer أو Thread Sanitizer ، للبحث عن أخطاء وقت التشغيل. يمكنك أيضًا استخدام خيارات أخرى تساعدك في البحث عن تسرب الذاكرة ، إلخ.
إنشاء خطة اختبار من الصفر
إذا كنت لا ترغب في إنشاء خطة اختبار باستخدام مخطط Xcode ، يمكنك دائمًا إنشاء خطة اختبار جديدة من خلال Xcode -> المنتج -> خطة الاختبار.

بعد إنشاء خطة اختبار بهذه الطريقة ، سوف نعلقها على بعض أهداف الاختبار بإضافة اختبارات إليها. في المثال أدناه ، أنشأنا خطة اختبار جديدة وأضفنا إليها اختبارات.

إنشاء خطة اختبار من المصدر
كما ذكرنا سابقًا ، تعد Xcode Test Plan مجرد ملف تكوين ، حيث قمنا بتثبيت جميع التكوينات التي حددناها. في السيناريو الخاص بنا ، أنشأنا functional.xctestplan ، ويبدو أن الكود المصدري له كالتالي:
{ "configurations" : [ { "name" : "smoke-uk", "options" : { "language" : "en-GB", "locationScenario" : { "identifier" : "London, England", "referenceType" : "built-in" }, "region" : "GB", "testExecutionOrdering" : "lexical" } }, { "name" : "Regression-usa", "options" : { "addressSanitizer" : { "enabled" : true }, "language" : "en", "locationScenario" : { "identifier" : "San Francisco, CA, USA", "referenceType" : "built-in" }, "region" : "US", "testExecutionOrdering" : "random" } } ], "defaultOptions" : { "codeCoverage" : false }, "testTargets" : [ { "target" : { "containerPath" : "container:XCTestPlan.xcodeproj", "identifier" : "9B0E393A22A6EB5400F666A1", "name" : "XCTestPlanUITests" } } ], "version" : 1 }
يمكنك إنشاء التكوين بهذه الطريقة وحفظه في ملف بالملحق .xctestplan في Xcode 11.
إطلاق خطة الاختبار
نحن الآن نفهم عملية إنشاء ملف اختبار الخطة في Xcode. دعونا نرى كيفية تشغيل اختبار الخطة والحصول على تقارير في Xcode. يمكنك إجراء الاختبارات من خلال Xcode -> المنتج -> الاختبار كالمعتاد ، عن طريق تشغيل خطط الاختبار المرفقة على المخطط. في حالتنا ، سيؤدي ذلك إلى تشغيل كل من تكوينات الاختبار - الدخان والانحدار.
هناك العديد من خيارات سطر الأوامر في Xcodebuild لعرض وتشغيل خطط الاختبار. يمكنك تشغيل الأمر التالي:
$ Xcodebuild -showTestPlans -scheme YOUR_SCEME
سيعرض جميع خطط الاختبار للدائرة الحالية. يمكنك أيضًا إجراء اختبار منفصل:
$ Xcodebuild -project XCTestPlan.Xcodeproj/ -scheme XCTestPlan -destination 'platform=iOS Simulator,OS=13.0,name=iPhone XR' test -testPlan functional
سيقوم هذا البرنامج النصي بتشغيل الاختبار باستخدام تكوين خطة الاختبار.
تقارير خطة الاختبار
بعد إجراء اختبارات خطة اختبار محددة ، يمكنك مشاهدة التقارير الجيدة التي تم إنشاؤها في Xcode. يتم إنشاء التقارير بشكل منفصل لكل تكوين.

في Xcode ، في قسم اختبار التنقل ، يمكنك تصفية التقارير حسب خطط الاختبار. يمكن تكوين تقارير خطة اختبار Xcode على خادم Xcode.
شفرة المصدر التجريبي متاحة على جيثب: XCTestPlanخطة اختبار Xcode: التطبيق
باختصار حول المكان الذي يمكن فيه استخدام خطة اختبار Xcode وكيفية تغييرها اعتمادًا على تكوين الدائرة. فيما يلي بعض الأمثلة لاستخدام خطة اختبار Xcode:
- أنواع مختلفة من الاختبارات ، كما هو موضح في العرض التوضيحي: الدخان ، الانحدار ، إلخ ؛
- اختبار تدويل التطبيق وتوطينه ، على سبيل المثال ، إذا كنت ترغب في اختبار التطبيق الخاص بك لعدة لغات ، يمكنك إنشاء تكوينات مختلفة ؛
- إجراء اختبارات ثقيلة ، مثل اختبارات الأداء والضغط ، وفصلها عن الاختبارات الوظيفية. يمكنك تكوين اختبارات للعمل مع أدوات تشخيص الشفرة أو اختبارات أخرى غير وظيفية.
العديد من السيناريوهات الأخرى ممكنة أيضًا حيث يمكن أن تساعد خطط اختبار Xcode في توسيع عملية الاختبار.
استنتاج
مع خطة اختبار Xcode ، يمكن نقل XCTest إلى المستوى التالي مع القدرة على إدارة التكوين الخاص بك وتشغيل الاختبارات الخاصة بك. خطط اختبار Xcode تمنحك سيطرة أفضل على منصة الاختبار المستندة إلى Apple.