أتمتة مقابل يدوي — متى تأتمت

مقال مجاني 5 دقيقة

مقدمة

عرفنا ليش نحتاج أتمتة الاختبار. وهسا بدنا نجاوب على السؤال المعاكس، وهو الأهم:

متى لا لازم تأتمت؟

لأنه أشهر خطأ بعد لا أحد يتعلّم الأتمتة إنه يحاول يأتمت كل شيء. وهذا يخلق مشروع بمئات الاختبارات، معظمها لا يلقط عيوب، وكلها تحتاج صيانة.

وهذا الدرس مهم إلك بالتحديد لأنك جاي من الاختبار اليدوي. والانتقال للأتمتة يخلق إغراء إنك تتخلّى عن اليدوي كلياً — وهذا غلط كبير.

مهم
الأتمتة لا تستبدل الاختبار اليدوي — بتحرّرك منه. تأخذ منك الأشياء المملة والمتكرّرة، حتى تصرف وقتك على اللي الآلة لا تستطيع أن تعمله: التفكير، والاستكشاف، والحكم.

الأهداف التعليمية

بنهاية هذا الدرس، ستكون قادراً على:

  • تقرر إذا حالة اختبار تستاهل الأتمتة
  • تحسب المردود الحقيقي لأي اختبار مؤتمت
  • تعرف ماذا يضلّ يدوي دايماً
  • تتجنّب الاختبارات التي كلفتها أكثر من فايدتها

المعادلة

كل اختبار مؤتمت له تكلفة وله فايدة:

التكلفة = وقت الكتابة + (وقت الصيانة × عدد التغييرات)
الفايدة = وقت التنفيذ اليدوي × عدد المرات التي سيشتغل فيها

والقرار بسيط: الأتمتة تستاهل عندما الفايدة > التكلفة.

مثال يستاهل

اختبار تسجيل الدخول:

  • كتابته: ساعة
  • صيانته: 10 دقايق كل 3 شهور
  • تنفيذه يدوي: دقيقتين
  • يعمل: 200 مرة بالسنة (كل commit)
التكلفة = 60 + (10 × 4) = 100 دقيقة بالسنة
الفايدة = 2 × 200 = 400 دقيقة بالسنة

مردود 4 أضعاف. يستاهل بوضوح.

مثال ما يستاهل

اختبار "التقرير السنوي بيتولّد صح":

  • كتابته: 6 ساعات (فيه بيانات معقّدة وPDF)
  • صيانته: ساعة كل مرة يتغير شكل التقرير
  • تنفيذه يدوي: 20 دقيقة
  • يعمل: مرة بالسنة
التكلفة = 360 دقيقة + صيانة
الفايدة = 20 دقيقة

خسارة 18 ضعف.اختبره يدوي.

نصيحة
المتغيّر الحاسم هو عدد المرات — مش صعوبة الاختبار. اختبار صعب يعمل 200 مرة يستاهل. اختبار سهل يعمل مرة ما يستاهل. وهذا يفسر ليش اختبارات الـ Regression هي أفضل مرشّح للأتمتة: هي بطبيعتها تعمل كل مرة.

أتمتها ✅

الحالة ليش
Regression تعمل كل مرة — أفضل مرشّح بالمطلق
Smoke تعمل كل commit
مسارات حرجة (دخول، دفع) تكلفة الفشل عالية جداً
حسابات ومعادلات الآلة أدق من البشر بمراتب
بيانات كثيرة (100 حالة بريد) مستحيل يدوياً
متصفحات متعددة نفس الاختبار × 4 متصفحات
API سريع جداً وثابت — أعلى مردود
تجهيز البيانات مش اختبار أصلاً، لكن بيوفّر وقت هائل
مهم
آخر صفّين هما أعلى مردود بالقائمة، وأقل واحدين بينتبهلهم الناس. اختبار الـ API أسرع 20 ضعف من اختبار الواجهة وأثبت بمراتب. ومعظم الفرق بتأتمت الواجهة أول وتنسى الـ API — والصح العكس. وتجهيز البيانات مش اختبار — لكن أتمتته بتوفّر أكثر من أي اختبار. ستشوف هذا بالتفصيل بآخر قسم بالكورس.

ما تأتمتها ❌

الحالة ليش
اختبار استكشافي يعتمد على الحدس والفضول — الآلة ما عندها
تجربة المستخدم «هل هذا سهل؟» حكم بشري
التصميم البصري «هل هذا جميل؟» — والمقارنة البصرية تلتقط الفرق مش الجودة
يشتغل مرة أو مرتين التكلفة أكثر من الفايدة
ميزة لسا تتغيّر كل يوم ستصلّح الاختبار أكثر مما تشغّله
CAPTCHA مصمّم حتى يمنع الآلة — بالتصميم
إشعارات نظام / بريد فعلي تعقيد عالي مقابل فايدة قليلة
تحذير
الصف الخامس أكثر واحد بيوقع فيه المبتدئين: أتمتة ميزة لسا قيد التطوير. الميزة تتغيّر كل يوم، فبتصلّح الاختبار كل يوم، وبعد أسبوعين تشعر إنه الأتمتة عبء. والمشكلة مش بالأتمتة — بالتوقيت. القاعدة: انتظر تستقر الميزة. وبالمقابل، اطلب data-test من أول يوم — وهذا أخذناه بدرس Shift Left: التحضير بدري، والأتمتة عندما تستقر.

ماذا يضلّ يدوي دايماً

وهذا الجزء المهم إلك كمختبر:

1. الاختبار الاستكشافي

الآلة تفحص اللي قلتلها تفحصه. انت تجد اللي لا أحد فكّر فيه. «ما لو ضغطت رجوع بمنتصف الدفع؟» — سؤال لا ييجي لآلة.

2. الحكم على الجودة

«الرسالة هذه مفهومة؟» «هذا التدفّق منطقي؟» «المستخدم سيحتار هون؟» — كلها أسئلة بشرية.

3. الاختبار الأول لأي ميزة

قبل أن تأتمت، اختبر يدوياً. لأنك وقتها تفهم الميزة، وتجد العيوب الواضحة، وتعرف ما يستاهل يُأتمت أصلاً.

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

القاعدة الذهبية

أتمت اللي تعمله أكثر من مرة. اختبر يدوياً اللي يحتاج تفكير.

والنسبة الصحّية بأي مشروع:

70% Regression مؤتمتة ← الآلة تعمل
20% اختبار استكشافي يدوي ← انت بتفكّر
10% اختبار يدوي لميزات جديدة ← انت بتستكشف
نصيحة
علامة إنه فريقك بتوازن صح: المختبرين عندهم وقت يستكشفوا. وعلامة إنه في مشكلة: المختبرين قاعدين ينفّذوا نفس 200 حالة بالإيد كل إصدار. الأتمتة الناجحة بتُقاس بكم وقت حرّرت للتفكير — مش بعدد الاختبارات.

خلاصة الدرس

  1. الأتمتة لا تستبدل الاختبار اليدوي — بتحرّرك منه.

  2. المعادلة: الفايدة = وقت يدوي × عدد المرات. والتكلفة = كتابة + صيانة.

  3. المتغيّر الحاسم هو عدد المرات، مش صعوبة الاختبار.

  4. وهذا يفسر ليش الـ Regression أفضل مرشّح — بطبيعتها تعمل كل مرة.

  5. اختبار الـ API أعلى مردود — أسرع 20 ضعف وأثبت. ومعظم الفرق تبدأ بالواجهة، والصح العكس.

  6. وتجهيز البيانات مش اختبار، لكن أتمتته توفّر أكثر من أي اختبار.

  7. ما تأتمت ميزة لسا تتغيّر كل يوم — لكن اطلب data-test من أول يوم.

  8. الاستكشاف والحكم على الجودة بيضلوا بشريين — الآلة تفحص اللي قلتلها، وانت تجد اللي لا أحد فكّر فيه.

  9. ما تأتمت ميزة ما اختبرتها يدوياً — وإلا رح تأتمت اللي بتتوقّعه مش ما يحدث.

  10. الأتمتة الناجحة بتُقاس بكم وقت حرّرت للتفكير — مش بعدد الاختبارات.


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

يلا، نلتقي بالدرس الجاي!