الانتقال إلى المحتوى
جميع الرؤى

التقنية

اختبارات الانحدار: كيف تؤتمتها دون أن تخسر سبرنت

من أين تبدأ حين تكاد قاعدة الشيفرة تخلو من الاختبارات: المسارات الحرجة أولًا، واختبارات سريعة في CI، ومنهجية لا تعطّل الفريق.

الانحدار (regression) ميزة كانت تعمل ثم توقفت بعد تعديل ما. ووظيفة اختبارات الانحدار أن تكشفه قبل أن يكتشفه عملاؤك. والمشكلة في كثير من الفرق الناشئة أن قاعدة الشيفرة نمت أسرع من الاختبارات، ويبدو أن اللحاق بها يتطلب سبرنت كاملًا لا يملكه أحد.

إليك طريقة للتقدّم على مراحل صغيرة.

1. ابدأ بالمسارات الأعلى كلفة

حدّد المسارات الخمسة التي يكلّفك تعطّلها أكثر من غيرها: التسجيل، وتسجيل الدخول، والإجراء الرئيسي في المنتج، وتصدير البيانات، والإشعارات. اختبار شامل (end-to-end) واحد لكل مسار يحمي بالفعل ما هو مهم.

2. ثبّت السلوك الحالي قبل أن تغيّره

في الشيفرة القديمة، اكتب أولًا اختبارات توصيفية (characterisation tests): تصف ما تفعله الشيفرة اليوم، لا ما ينبغي أن تفعله. بعدها يمكنك تعديل الشيفرة، وستعرف فورًا إن تغيّر أي سلوك.

3. حافظ على سرعة حزمة الاختبارات

حزمة الاختبارات البطيئة ينتهي بها الأمر إلى الإيقاف. استهدف بضع دقائق في التكامل المستمر (CI):

  • اختبارات وحدات لمنطق الأعمال؛
  • بعض اختبارات التكامل لقاعدة البيانات واستدعاءات API؛
  • عدد قليل من الاختبارات الشاملة، تُخصَّص للمسارات الحرجة.

4. شغّلها مع كل Pull Request

الاختبار الذي لا يعمل تلقائيًا لا يحمي شيئًا. اربط حزمة الاختبارات بـCI، وامنع الدمج (merge) عند فشلها.

5. عالج الاختبارات المتذبذبة فورًا

الاختبار الذي يفشل عشوائيًا (flaky) يعوّد الفريق على تجاهل حالات الفشل. اعزله، وعالج السبب (أوقات الانتظار، أو ترتيب التنفيذ، أو البيانات المشتركة)، ثم أعده إلى الحزمة.

أين يأتي دور الذكاء الاصطناعي؟

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

الخلاصة

  • تغطية خمسة مسارات حرجة أجدى من نسبة تغطية مرتفعة بلا قيمة.
  • اختبارات سريعة، تُشغَّل مع كل Pull Request.
  • لا تهاون مع الاختبارات المتذبذبة.

نسلّم الاختبارات وعمليات الترحيل على شكل Pull Requests يراجعها فريقك ويدمجها: اطّلع على ما نقدّمه للفرق التقنية.