عرفنا ليش نحتاج أتمتة الاختبار. وهسا بدنا نجاوب على السؤال المعاكس، وهو الأهم:
متى لا لازم تأتمت؟
لأنه أشهر خطأ بعد لا أحد يتعلّم الأتمتة إنه يحاول يأتمت كل شيء. وهذا يخلق مشروع بمئات الاختبارات، معظمها لا يلقط عيوب، وكلها تحتاج صيانة.
وهذا الدرس مهم إلك بالتحديد لأنك جاي من الاختبار اليدوي. والانتقال للأتمتة يخلق إغراء إنك تتخلّى عن اليدوي كلياً — وهذا غلط كبير.
بنهاية هذا الدرس، ستكون قادراً على:
كل اختبار مؤتمت له تكلفة وله فايدة:
التكلفة = وقت الكتابة + (وقت الصيانة × عدد التغييرات)
الفايدة = وقت التنفيذ اليدوي × عدد المرات التي سيشتغل فيهاوالقرار بسيط: الأتمتة تستاهل عندما الفايدة > التكلفة.
اختبار تسجيل الدخول:
التكلفة = 60 + (10 × 4) = 100 دقيقة بالسنة
الفايدة = 2 × 200 = 400 دقيقة بالسنةمردود 4 أضعاف. يستاهل بوضوح. ✅
اختبار "التقرير السنوي بيتولّد صح":
التكلفة = 360 دقيقة + صيانة
الفايدة = 20 دقيقةخسارة 18 ضعف. ❌ اختبره يدوي.
عدد المرات — مش صعوبة الاختبار.
اختبار صعب يعمل 200 مرة يستاهل. اختبار سهل يعمل مرة ما يستاهل.
وهذا يفسر ليش اختبارات الـ Regression هي أفضل مرشّح للأتمتة: هي بطبيعتها تعمل كل مرة.| الحالة | ليش |
|---|---|
| Regression | تعمل كل مرة — أفضل مرشّح بالمطلق |
| Smoke | تعمل كل commit |
| مسارات حرجة (دخول، دفع) | تكلفة الفشل عالية جداً |
| حسابات ومعادلات | الآلة أدق من البشر بمراتب |
| بيانات كثيرة (100 حالة بريد) | مستحيل يدوياً |
| متصفحات متعددة | نفس الاختبار × 4 متصفحات |
| API | سريع جداً وثابت — أعلى مردود |
| تجهيز البيانات | مش اختبار أصلاً، لكن بيوفّر وقت هائل |
| الحالة | ليش |
|---|---|
| اختبار استكشافي | يعتمد على الحدس والفضول — الآلة ما عندها |
| تجربة المستخدم | «هل هذا سهل؟» حكم بشري |
| التصميم البصري | «هل هذا جميل؟» — والمقارنة البصرية تلتقط الفرق مش الجودة |
| يشتغل مرة أو مرتين | التكلفة أكثر من الفايدة |
| ميزة لسا تتغيّر كل يوم | ستصلّح الاختبار أكثر مما تشغّله |
| CAPTCHA | مصمّم حتى يمنع الآلة — بالتصميم |
| إشعارات نظام / بريد فعلي | تعقيد عالي مقابل فايدة قليلة |
data-test من أول يوم — وهذا أخذناه بدرس Shift Left: التحضير بدري، والأتمتة عندما تستقر.وهذا الجزء المهم إلك كمختبر:
1. الاختبار الاستكشافي
الآلة تفحص اللي قلتلها تفحصه. انت تجد اللي لا أحد فكّر فيه. «ما لو ضغطت رجوع بمنتصف الدفع؟» — سؤال لا ييجي لآلة.
2. الحكم على الجودة
«الرسالة هذه مفهومة؟» «هذا التدفّق منطقي؟» «المستخدم سيحتار هون؟» — كلها أسئلة بشرية.
3. الاختبار الأول لأي ميزة
قبل أن تأتمت، اختبر يدوياً. لأنك وقتها تفهم الميزة، وتجد العيوب الواضحة، وتعرف ما يستاهل يُأتمت أصلاً.
أتمت اللي تعمله أكثر من مرة. اختبر يدوياً اللي يحتاج تفكير.
والنسبة الصحّية بأي مشروع:
70% Regression مؤتمتة ← الآلة تعمل
20% اختبار استكشافي يدوي ← انت بتفكّر
10% اختبار يدوي لميزات جديدة ← انت بتستكشفالأتمتة لا تستبدل الاختبار اليدوي — بتحرّرك منه.
المعادلة: الفايدة = وقت يدوي × عدد المرات. والتكلفة = كتابة + صيانة.
المتغيّر الحاسم هو عدد المرات، مش صعوبة الاختبار.
وهذا يفسر ليش الـ Regression أفضل مرشّح — بطبيعتها تعمل كل مرة.
اختبار الـ API أعلى مردود — أسرع 20 ضعف وأثبت. ومعظم الفرق تبدأ بالواجهة، والصح العكس.
وتجهيز البيانات مش اختبار، لكن أتمتته توفّر أكثر من أي اختبار.
ما تأتمت ميزة لسا تتغيّر كل يوم — لكن اطلب data-test من أول يوم.
الاستكشاف والحكم على الجودة بيضلوا بشريين — الآلة تفحص اللي قلتلها، وانت تجد اللي لا أحد فكّر فيه.
ما تأتمت ميزة ما اختبرتها يدوياً — وإلا رح تأتمت اللي بتتوقّعه مش ما يحدث.
الأتمتة الناجحة بتُقاس بكم وقت حرّرت للتفكير — مش بعدد الاختبارات.
في الدرس الجاي: رح نشوف مكوّنات أتمتة الاختبار — القطع اللي بيتكوّن منها أي مشروع أتمتة، قبل ما نبلش نكتب.
يلا، نلتقي بالدرس الجاي!