اليوم سنحكي عن أربع مصطلحات مهمة جداً في عالم الاختبارات. كل واحد منهم يأتي في وقت مختلف وله هدف مختلف.
المصطلحات هذه كثير ناس تخلط بينهم! خلينا نفهمهم بطريقة بسيطة وعملية.
بنهاية هذا الدرس، ستكون قادراً على:
Retesting = إعادة الاختبار للتأكد إن الـ Bug تصلح
نعمله بعد الـ Bug Fixing - يعني بعد أن الـ Developer يصلح المشكلة.
تخيل لقينا Bug في Amazon:
المشكلة: عندما تضيف منتج للسلة، السعر يظهر غلط - يظهر $0 بدل السعر الحقيقي! ❌
الخطوات:
كيف نعمل Retesting؟
Regression = التأكد إن الـ Functions القديمة لسه شغالة بعد التغيير
نعمله بعد أي تغيير بالكود - سواء تصليح Bug أو إضافة Feature جديدة.
بعد أن عملنا Retesting وتأكدنا إن السعر صار صحيح، لازم نتأكد من الباقي:
ليش؟ لأنه الـ Developer عندما صلح مشكلة السعر، ممكن بالغلط خرب شي آخر!
| Retesting | Regression |
|---|---|
| نختبر الـ Bug اللي تصلح بس | نختبر الـ Functions القديمة |
| نتأكد إن المشكلة راحت | نتأكد إن التصليح ما خرب شي آخر |
زمان، عندما كانوا يفحصوا الماكينات والأجهزة، كانوا يشغلوها أول مرة ويشوفوا: لو طلع دخان (Smoke) معناته في مشكلة رئيسية!
Smoke = اختبار سريع للأشياء الرئيسية قبل أن نضيع وقتنا
نعمله عندما يكون في:
Uber أطلق version جديد. قبل أن نختبر كل شي بالتفصيل، نفعل Smoke Testing:
لو أي واحد من هذه ما اشتغل ← ما نكمل! نرجع الـ Build للـ Developer.
Sanity = اختبار الشيء الجديد الذي انضاف
نعمله بعد الـ Smoke Testing - بعد أن نتأكد إن الأساسيات شغالة.
| Smoke Testing | Sanity Testing |
|---|---|
| الأشياء الرئيسية القديمة | الـ Feature الجديدة |
| General وسريع | Specific ومحدد |
| أول شي نعمله | بعد الـ Smoke |
Uber ضاف ميزة جدولة الرحلات مسبقاً.
أولاً - Smoke Testing:
ثانياً - Sanity Testing للميزة الجديدة:
1. لقينا Bug ❌
↓
2. Developer صلح الـ Bug
↓
3. Retesting: نتأكد إن الـ Bug تصلح ✅
↓
4. Regression: نتأكد إن القديم لسه شغال ✅1. Build جديد أو Feature جديدة
↓
2. Smoke Testing: الأساسيات شغالة؟ ✅
↓
3. Sanity Testing: الجديد شغال؟ ✅
↓
4. Regression: القديم لسه شغال؟ ✅| النوع | متى؟ | الهدف | الـ Scope |
|---|---|---|---|
| Retesting | بعد تصليح Bug | التأكد إن المشكلة تصلحت | الـ Bug فقط |
| Regression | بعد أي تغيير | التأكد إن القديم لسه شغال | الـ Functions القديمة |
| Smoke | Build جديد | التأكد إن الأساسيات شغالة | Critical Functions |
| Sanity | Feature جديدة | التأكد إن الجديد شغال | الـ Feature الجديدة |
Bug Found: عندما تضغط Play، الفيديو لا يشتغل ❌
الخطوات:
New Feature: Careem ضاف خيار "Careem Box" للتوصيل
الخطوات:
Bug Found: الـ Promo Code لا يعمل ❌
الخطوات:
✅ Retesting = بعد تصليح Bug، نتأكد إن المشكلة راحت
✅ Regression = بعد أي تغيير، نتأكد إن القديم لسه شغال
✅ Smoke = أول شي بعد Build جديد، نتأكد إن الأساسيات شغالة
✅ Sanity = بعد الـ Smoke، نتأكد إن الجديد شغال
✅ الترتيب:
تم إصدار تحديث رئيسي لتطبيق، وقام فريق الاختبار تشغيل اختبار سريع للتأكد من أن الميزات الأساسية تعمل بشكل صحيح قبل البدء باختبارات أكثر شمولاً. ما نوع الاختبار؟
Smoke Testing
لأنه اختبار سريع للـ Basic Functions قبل أن نكمل.
بعد إصلاح خلل في تطبيق، قام فريق الاختبار تشغيل اختبارات للتحقق من أن الخلل تم إصلاحه بالفعل. ما نوع الاختبار؟
Retesting
لأننا نختبر الـ Bug اللي تصلح بالتحديد.
تم إضافة ميزة جديدة إلى تطبيق، وقام فريق الاختبار تشغيل اختبارات للتحقق من أن الميزة الجديدة تعمل بشكل صحيح. ما نوع الاختبار؟
Sanity Testing
لأننا نختبر الـ Feature الجديدة بالتحديد.
بعد إجراء تغييرات في الكود، قام فريق الاختبار تشغيل اختبارات للتأكد من أن التغييرات لم تؤثر سلباً على وظائف التطبيق القائمة. ما نوع الاختبار؟
Regression Testing
لأننا نختبر الـ Functions القديمة بعد التغيير.
ما الفرق الرئيسي بين Smoke و Sanity؟
Smoke أول شي، Sanity بعده.
يعطيكم العافية، ونلتقي بالدرس القادم!