انتقل إلى المحتوى الرئيسي
Fugen Services logo

هندسة البرمجيات

اختبارات تكتشف التراجعات، وليس اختبارات تضخم نسبة التغطية

تستحق مجموعة الاختبارات أن تمتلكها عندما تجعلك مستعدًا للنشر يوم الجمعة. معظمها لا يستحق ذلك، لأمرين: إما أنها تختبر الكود بدلًا من السلوك، لذا تنكسر في كل مرة يتم فيها إعادة هيكلة الكود وتنجح رغم وجود خلل في عملية الدفع — أو أنها غير مستقرة لدرجة أن الفريق يعيد تشغيلها حتى تصبح خضراء.

مؤشر

ابتداءً من £4,500

السعر الثابت متفق عليه كتابة قبل بدء أي عملية تطوير.

اطلب عرض سعر+44 7488 265083

المشكلة التي يحلها

النسبة المئوية للتغطية هي المقياس الذي يسبب ذلك. فالسعي وراء نسبة 80% ينتج مئات الاختبارات على دوال تافهة ولا أي اختبار للمسارات الأربعة التي تنتج أرباحك. وفي الوقت نفسه، مجموعة الاختبارات غير المستقرة ضارة حقًا: فهي تعلم الفريق تجاهل العلامات الحمراء، وهو أمر أسوأ من عدم وجود اختبارات على الإطلاق.

ماذا ستحصل

اختبار المسارات التي تدرّ الأرباح

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

الاختبار المناسب في المستوى المناسب

اختبارات الوحدة للمنطق، واختبارات التكامل لطبقات البيانات، واختبارات الشاملة للمسارات الحقيقية فقط. اختبارات الشاملة بطيئة وهشة؛ استخدامُها لكل شيء هو سبب abandonment مجموعات الاختبارات.

عدم تسامح مطلق مع عدم الاستقرار

الاختبار غير المستقر هو خلل ويجب إصلاحه أو حذفه، ولا يعاد تشغيله حتى يصبح نافذًا. استخدام أوقات انتظار محددة ومصادِر بيانات بدلاً من تأخيرات عشوائية.

ربطها بالتكامل المستمر كحاجز

تشغيلها على كل طلب سحب وتعطيل الدمج عند الفشل، مع الحفاظ على وقت التشغيل قصير بما يكفي حتى لا يكون هناك دافع لتجاوزه.

فحوصات إمكانية الوصول ودعم المتصفحات

فحوصات axe الآلية على الصفحات الرئيسية، وتشغيلات حقيقية في Chrome وSafari وFirefox. أخطاء التخطيط الخاصة بـ Safari شائعة وغير مرئية إذا كنت تختبر فقط في Chrome.

فشل يمكن تشخيصه

لقطة شاشة وفيديو ومسارات يتم التقاطها عند الفشل، بحيث يكون البناء الأحمر تشخيصًا يستغرق دقيقتين بدلاً من نصف يوم من إعادة الإنتاج المحلي.

كيف نعمل

  1. العثور على المسارات الحرجة

    أي مسارات، إذا تعطلت لمدة ساعة، ستكلفك أموالاً أو خسارة عملاء. قائمة المسارات هذه هي خطة الاختبار.

  2. تقييم ما هو موجود

    مراجعة الاختبارات الحالية لمعرفة ما تؤكده فعلياً. بعضها يحتفظ به، وبعضها يحذف — اختبار لا يمكنه الفشل بشكل معنوي أسوأ من عدم وجوده.

  3. بناء البنية التحتية للاختبار

    تغذية بيانات الاختبار، والمثبتات، وبيئة يمكن للاختبارات أن تعمل عليها بشكل متكرر.

  4. أتمتة المسارات الحرجة

    تغطية شاملة للمسارات ذات الأولوية أولاً.

  5. حماية خط الأنابيب

    ربطه بعمليات التكامل المستمر (CI) مع فحص إلزامي، مع الحفاظ على سرعة المجموعة.

  6. التسليم

    متابعة كتابة المطورين للاختبارات بنفس الأنماط، لأن مجموعة الاختبارات التي يعتمد صيانتها على مقاول واحد فقط تموت عند مغادرته.

ما يجب أن تتوقعه

  • اكتشاف الانحدارات في المسارات الحرجة قبل الإطلاق
  • مجموعة اختبارات يمكن للفريق الوثوق بها، بحيث يعني اللون الأحمر التوقف
  • إطلاق التحديثات دون الحاجة إلى فحص يدوي مسبق
  • تشخيص الفشل من خلال التكامل المستمر (CI) دون الحاجة إلى إعادة إنتاجه محلياً

مبني باستخدام

  • Playwright
  • Cypress
  • Vitest
  • Jest
  • PHPUnit
  • Pest
  • Testing Library
  • axe-core
  • GitHub Actions
  • Lighthouse CI
  • k6

Mainstream, well-supported technology — chosen so you can hire for it and so another team could take the project over.

الاختبار وضمان الجودة (QA) للبرمجيات — your questions

بما في ذلك الأسئلة المتعلقة بالتكلفة، والتي تتجاهلها معظم الشركات في صفحاتها.

يكلف أتمتة الرحلات الحرجة لتطبيق ويب نموذجي ما بين £4,500 إلى £12,000 بناءً على عددها ودرجة قابلية اختبار التطبيق حاليًا. عندما لا يحتوي التطبيق على أي فواصل للاختبار، نحتاج إلى إعادة هيكلة مسبقة نحدد نطاقها بشكل منفصل بدلاً من إخفائها.

نحن لا نهدف إلى نسبة مئوية، لأنها مقياس خاطئ — 90% تغطية بدون اختبار لعملية الدفع أسوأ من 40% مع اختبار شامل لها. الهدف هو تغطية كل مسار حرج للإيرادات من البداية إلى النهاية، وكل إصلاح خلل يجب أن يصاحبه اختبار كان من الممكن أن يكتشفه.

Playwright للعمل الجديد: دعم حقيقي عبر المتصفحات بما في ذلك Safari، و paralelism أفضل، وعارض التتبع يجعل تشخيص الأخطاء أسرع بكثير. Cypress أداة جيدة ونحن نعمل على الحفاظ على مجموعات الاختبار الحالية به بدلاً من الإصرار على إعادة كتابتها.

نعم. أحيانًا يحتاج التطبيق إلى تعديلات صغيرة ليصبح قابلاً للاختبار — محددات ثابتة، طريقة لزرع البيانات، أو خطاف للتحكم في الوقت. هذه التغييرات تستحق القيام بها بغض النظر، لأن الكود الصعب في اختباره عادة ما يكون صعبًا في تعديله أيضًا.

نعم، للاختبار الاستكشافي قبل الإصدار المهم — فالبشرية تجد مشكلات قابلية الاستخدام التي لن تلتقطها أيAssertion. أما بالنسبة للاختبار التراجعي، فلا: تكرار نفس الفحوصات يدويًا في كل إصدار مكلف وغير موثوق به، وهو بالضبط ما صممت الأتمتة لتجنبها.

تحدث إلى من سبق له بناء هذا

A short call is usually enough to tell you whether this is the right service for your situation — including when it is not.