يوضّح هذا المستند كيفية استخدام نصوص Robo البرمجية، وهي اختبارات تعمل على أتمتة مهام ضمان الجودة اليدوية للتطبيقات على الأجهزة الجوّالة، وتتيح استراتيجيات الدمج المستمر (CI) والاختبار قبل الإصدار. على سبيل المثال، يمكنك استخدام نصوص Robo البرمجية لاختبار تجربة مستخدم شائعة أو تقديم إدخال محدّد لواجهة المستخدم، مثل اسم مستخدم وكلمة مرور. نصوص Robo البرمجية هي إحدى ميزات اختبار Robo.
تستخدم نصوص Robo البرمجية اختبار Robo كمحرّك للاختبار. وفي أبسط أشكالها، تتألف نصوص Robo البرمجية من سلسلة من إجراءات واجهة المستخدم، مثل إدخال النص "اسم المستخدم" ثم النقر على الزر "حسنًا". ويمكن أن تتضمّن نصوص Robo البرمجية أيضًا إجراءات مثل انتظار ظهور عنصر، والنقر على نقطة معيّنة داخل عنصر، وتنفيذ أوامر shell الخاصة بأداة Android Debug Bridge (adb).
تتفوّق نصوص Robo البرمجية على أُطر الاختبار التقليدية في المزايا التالية:
| الإمكانية | الوصف |
| متين للغاية | يمكن أن تتحمّل نصوص Robo البرمجية اختلافات كبيرة في البنية والسلوك بين إصدارات التطبيق، كما يمكنها التعامل مع عدم استقرار التطبيق. |
| أسئلة مفتوحة | بعد اكتمال نص Robo البرمجي، يمكن أن يتولّى اختبار Robo الأساسي مهمة مواصلة اختبار التطبيق. ويتيح أسلوب الاختبار المتواصل هذا العديد من حالات الاستخدام الرئيسية. على سبيل المثال، يمكنك استخدام نص Robo برمجي لنقل تطبيق إلى حالة معيّنة من خلال تنفيذ عملية تسجيل دخول مخصّصة. |
| قابل للتسجيل | لست بحاجة إلى كتابة نصوص Robo البرمجية يدويًا، بل يمكن تسجيلها باستخدام أداة تسجيل نصوص Robo البرمجية في "استوديو Android". ولا تتطلّب عملية إنشاء نصوص Robo البرمجية أو تعديلها عادةً أي معرفة بتطوير تطبيقات الأجهزة الجوّالة. |
| المرونة | يمكن أن تتفاعل نصوص Robo البرمجية مع عناصر واجهة المستخدم غير الأصلية الشائعة في الألعاب. |
يتم تشغيل نصوص Robo البرمجية بشكل مشروط أثناء اختبار Robo، ما يتيح للمستخدمين تحسين سلوك Robo، وعادةً ما يكون ذلك لتحقيق تغطية أكبر أو استهداف وظائف معيّنة. على عكس أُطر الاختبار التقليدية، تتيح نصوص Robo البرمجية ما يلي:
- شروط مختلفة لتشغيل الإجراء، مثل أن يكون اسم حزمة تطبيق معيّن نشطًا (أو غير نشط) أو أن يظهر عنصر معيّن على الشاشة (أو لا يظهر).
- عناصر التحكّم في التنفيذ، مثل الحد الأقصى لعدد عمليات التنفيذ والأولوية ومرحلة الزحف ذات الصلة
- أنواع الإجراءات غير التقليدية (الشَرطية، وتجاهُل العناصر، وإغلاق الشاشة)
ننصحك باستخدام نصوص Robo البرمجية كلما أمكن ذلك لأنّه يمكن صيانتها بسهولة. على سبيل المثال، يمكنك استخدام نص برمجي خاص بـ Robo لإجراء ما يلي:
- انتقِل إلى مسارات العمل المهمة للوصول إلى الوظيفة الأساسية للتطبيق. على سبيل المثال، يمكنك تسجيل الدخول وإعداد حالة التطبيق بعد التشغيل الأول وتسجيل مستخدم جديد.
- يمكنك توجيه Robo إلى جزء معيّن من التطبيق للاستفادة إلى أقصى حد من وقت "اختبار Robo". يوجّه نص Robo البرمجي "اختبار Robo" للوصول إلى الجزء ذي الصلة من التطبيق، حيث يستأنف "اختبار Robo" عملية الزحف المبرمَجة بالكامل.
- إحضار تطبيق إلى حالة أو شاشة معيّنة لإجراء تحليل، مثلاً، لتحليل رسالة داخل التطبيق أو سياسة الخصوصية أو مستوى معيّن من لعبة
- إجراء اختبار لقياس حالة التطبيق شامل، مع أو بدون استئناف اختبار Robo لعملية الزحف التلقائية بالكامل بعد اكتمال نص Robo البرمجي
استخدِم ميزات أكثر تقدّمًا في نصوص Robo البرمجية لتنفيذ ما يلي:
- تنفيذ إجراءات قبل أن يبدأ Robo في الزحف إلى التطبيق قيد الاختبار أو بعد انتهاء عملية الزحف، مثل محو بيانات التطبيق قيد الاختبار قبل عملية الزحف أو تغيير إعدادات الجهاز
- تغيير جوانب سلوك Robo أثناء الزحف، وخاصةً:
- اجعل Robo يتجاهل بعض التطبيقات المصغّرة لواجهة المستخدم أو شاشات التطبيق.
- توفير إجراء مخصّص لتنفيذه بواسطة Robo عند الرجوع من شاشة معيّنة
- اجعل Robo ينفّذ إجراءات محدّدة كلما تم رصد شاشة تطبيق معيّنة أثناء الزحف.
- يمكنك تخصيص طريقة تنفيذ Robo لعملية الزحف بالكامل. على سبيل المثال، يمكنك استخدام مجموعة من الإجراءات الشرطية وغير الشرطية لإبقاء التطبيق قيد الاختبار في الخلفية طوال عملية الزحف، مع تنفيذ عمليات معالجة الجهاز ورفض أي مربعات حوار منبثقة تظهر أثناء عملية الزحف.
يُرجى العِلم أنّ نصوص Robo البرمجية لا تحلّ محل جميع أنواع الاختبارات. ستظل بحاجة إلى اختبارات الوحدات لرصد أخطاء المنطق المنخفض المستوى في تطبيقك، ولا تتطلّب هذه الاختبارات عادةً بيئة Android أو iOS. ننصحك بإكمال اختبارات Robo النصية باختبارات أدوات مستهدَفة يمكن أن تتضمّن تأكيدات محدّدة ومفصّلة بشأن منطق النشاط التجاري، والتي من الأفضل التعبير عنها في الرمز.
الخطوات التالية
للتعرّف على بنية نصوص Robo البرمجية وإمكاناتها واستخدامها وإجراءاتها، راجِع دليل مراجع نصوص Robo البرمجية.