منصة SaaS لقطاع البناء
عمل فريقنا، من داخل فريق التطوير لدى Subtraid، على أتمتة اختبارات شاملة مدعومة بالذكاء الاصطناعي ومكتوبة باستخدام Playwright وTypeScript. تُكتب الاختبارات بنمط page object وتعمل ضمن مسار CI.
هذه ليست مشاريع عملاء لـ Pepechura؛ عمل فريقنا داخل الفرق الخاصة بهذه الشركات.
منصة SaaS لقطاع البناء
عمل فريقنا، من داخل فريق التطوير لدى Subtraid، على أتمتة اختبارات شاملة مدعومة بالذكاء الاصطناعي ومكتوبة باستخدام Playwright وTypeScript. تُكتب الاختبارات بنمط page object وتعمل ضمن مسار CI.
Playwright أداة مفتوحة المصدر لأتمتة المتصفح من تطوير Microsoft. يفتح الاختبار متصفحاً حقيقياً، ويسجّل الدخول كما يفعل المستخدم، ويملأ النماذج، وينقر على الأزرار، ثم يتحقق من ظهور النتيجة المتوقعة على الشاشة. يمكن تشغيل الاختبار نفسه على Chromium وFirefox وWebKit، وهو المحرك الذي يقوم عليه Safari. ولأن Playwright ينتظر من تلقاء نفسه حتى يصبح العنصر ظاهراً وقابلاً للنقر، فإنه يزيل منذ البداية أحد الأسباب الرئيسية للاختبارات التي «تنجح أحياناً وتفشل أحياناً».
محاولة أتمتة كل شيء تنتج مجموعة اختبارات تكلف صيانتها أكثر من كتابتها. نخصص الأتمتة للمسارات التي تتكرر مع كل إصدار ويكون تعطلها مكلفاً. أما التجربة الأولى لميزة جديدة، والاختبار الاستكشافي الذي يخرج عن السيناريو، وفحص سهولة الاستخدام، فتبقى عملاً بشرياً. في مشاريعنا يختبر مهندس ضمان جودة أول كل إصدار قبل نشره؛ والأتمتة لا تحل محل هذا الفحص، بل تعفيه من تكرار الخطوات نفسها كل أسبوع.
| مناسب للأتمتة | الأفضل اختباره يدوياً | |
|---|---|---|
| المسار | مسارات تبقى كما هي مع كل إصدار: تسجيل الدخول، إنشاء الحساب، الدفع، الطلب، إرسال النماذج | الميزات الجديدة التي لم تستقر بعد |
| ما يُفحص | إنشاء السجل، ورؤية الدور الصحيح للشاشة الصحيحة، وظهور رسالة الخطأ | وضوح النص وراحة التخطيط |
| متى | مع كل إصدار وكل دمج للكود، تلقائياً | على الشاشات التي تغيرت، مرة في كل إصدار |
| الطريقة | سيناريو مكتوب مسبقاً بالخطوات نفسها في كل مرة | اختبار استكشافي يجرّب الاستخدام غير المتوقع |
عندما ينجح اختبار أحياناً ويفشل أحياناً، يتوقف الفريق بعد فترة عن النظر في النتائج الحمراء وتفقد الأتمتة قيمتها. لتجنب ذلك نكتب الاختبارات منذ البداية وفق هذه القواعد:
طبّق فريقنا هذه القواعد أثناء عمله على أتمتة اختبارات مبنية على Playwright من داخل فريق التطوير لدى Subtraid: اختبارات مكتوبة بلغة TypeScript، وبنية تضع كل شاشة في page object، وإعداد يسجّل الدخول مرة واحدة لكل دور مستخدم ويشارك الجلسة بين الاختبارات، ومسار CI يشغّل مجموعة حرجة قصيرة والمجموعة الكاملة كلاً على حدة. واستُعين في كتابة الاختبارات بوكلاء برمجة بالذكاء الاصطناعي زُوّدوا بقواعد بنية الاختبارات مكتوبة.
نكتب الاختبارات باللغة نفسها التي كُتب بها التطبيق؛ فيُكتشف المحدِّد المكتوب خطأً أو المعامل الناقص قبل تشغيل الاختبار.
حقول كل شاشة وأزرارها في صنف واحد. عندما تتغير الواجهة يُحدَّث هذا الصنف وحده وتبقى السيناريوهات كما هي.
تعمل الاختبارات في مسار CI مثل GitHub Actions أو Bitbucket Pipelines، داخل صورة Docker الرسمية لـ Playwright؛ تعطي المجموعة الحرجة نتيجة سريعة، وتعمل المجموعة الكاملة في خطوات متوازية.
يتيح إعادة مشاهدة كل خطوة من الاختبار الفاشل وطلبات الشبكة والشاشة في تلك اللحظة، فيُعثر على السبب دون تخمين.
لتوليد بيانات اختبار جديدة وواقعية في كل تشغيل، فلا تتصادم الاختبارات في بياناتها.
في الأعمال المتكررة مثل كتابة سيناريوهات جديدة وإضافة معرّفات الاختبار إلى الواجهة، نستعين بوكلاء يعملون وفق قواعد بنية مكتوبة.
نتحدث عن تطبيقك، وعدد مرات إصدارك للنسخ، والمسارات التي تختبرها يدوياً اليوم.
نرتّب المسارات الأكثر ضرراً عند تعطلها، ونكتب الأدوار والبيئة (الاختبار أو ما قبل الإنتاج) التي ستعمل عليها.
كل أسبوع تُضاف اختبارات جديدة إلى مسار CI. ترى التقرير أنت أيضاً، ونختار معاً مسارات الأسبوع التالي.
يختبر مهندس ضمان جودة أول الإصدار قبل نشره. ونوثّق طريقة تشغيل الاختبارات وقراءة التقرير وقواعد إضافة اختبارات جديدة.
نصلح مجاناً الأخطاء التي تظهر في هذه الفترة. وبعدها يمكن أن يكون تحديث الاختبارات مع تغير الواجهة جزءاً من الصيانة الشهرية.
ننشر المدد ونطاقات الميزانية في صفحتي تطوير تطبيقات الويب والأسعار، وكل ما في هذه الصفحة يتبع الأرقام نفسها.
نعم. لا يهتم Playwright بالتقنية التي بُني بها التطبيق؛ فهو يعمل مع أي تطبيق ويب يُفتح في المتصفح. وإذا لم تكن في الواجهة معرّفات اختبار ثابتة نضيفها مع الاختبارات، وهذا يتطلب الوصول إلى الكود المصدري.
الانتظار التلقائي للعناصر، وتشغيل عدة محركات متصفح عبر واجهة واحدة، وتشغيل الاختبارات بالتوازي، وتسجيل أثر الاختبارات الفاشلة، كلها مدمجة فيه. ومع ذلك، إذا كان لدى فريقك مجموعة اختبارات مستقرة على Cypress أو Selenium، فلا ننصح بإعادة كتابتها لمجرد تغيير الأداة.
Playwright مخصص للويب: يمكنه محاكاة أحجام شاشات متصفحات الجوال وسلوك اللمس، لكنه لا يستطيع التحكم في تطبيق أصلي يُنزّل من المتاجر. إذا كان لديك تطبيق جوال، نناقش الطريقة المناسبة له بشكل منفصل في المكالمة التعريفية.
نعم. تتحقق الأتمتة من أن المسارات المعروفة لم تتعطل؛ أما معرفة ما إذا كانت الميزة الجديدة مصممة بشكل صحيح، أو ما يحدث عند استخدام غير متوقع، فهو عمل بشري. في مشاريعنا يختبر مهندس ضمان جودة أول كل إصدار قبل نشره.
ترخيص استخدام دائم للبرنامج ووثائقه. وإذا أردت نقل الكود المصدري إليك فذلك ممكن مقابل رسوم إضافية تُذكر بشكل منفصل في العرض.
أخبرنا بالمسارات التي تختبرها يدوياً اليوم؛ وفي مكالمة تعريفية مجانية مدتها 30 دقيقة نحدد معاً أيها يستحق الأتمتة.