الفرق بين Testing و Checking

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

مقدمة

اليوم سنحكي عن واحد من أهم المفاهيم في مجال الاختبار - الفرق بين Testing و Checking. أغلب الناس تستخدم المصطلحين كأنهم نفس الشيء، لكن الحقيقة؟ همّ مختلفين تماماً! وفهم هذا الفرق هو الذي سيجعلك مختبر محترف.

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

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

  • فهم الفرق الجوهري بين Testing و Checking
  • معرفة متى نستخدم كل واحد
  • إدراك ليش Testing هو شغل بشري لا يمكن نعمله أتمتة بالكامل

ما هو Checking (التحقق)؟

Checking هو عملية التحقق من شيء معروف مسبقاً.

خلّينا نفهمها بالتفصيل:

  • عندك نتيجة متوقعة: أنت تعرف ما المفروض أن يصير بالضبط
  • مقارنة Expected vs Actual: تتحقق إذا النتيجة الفعلية بتطابق النتيجة المتوقعة
  • خطوات محددة: تتبع سيناريو واضح ومكتوب مسبقاً
  • قابل للأتمتة: الذكاء الاصطناعي أو أدوات الأتمتة تستطيع أن تعمله
نصيحة
Checking هو عملية تأكيد - تتأكد إن الشيء الذي أنت عارفه شغّال صح.

مثال عملي من حياتنا اليومية

تخيّل إنك تريد أن تتحقق من وظيفة تسجيل الدخول في Facebook:

سيناريو Checking:

  1. افتح facebook.com
  2. أدخل email صحيح: test@example.com
  3. أدخل password صحيح: Pass123!
  4. اضغط على زر "تسجيل الدخول"

النتيجة المتوقعة: المستخدم يسجل دخول وينتقل لصفحة الـ News Feed

هذا checking كلاسيكي - واضح، محدد، وتستطيع أن تكرره ألف مرة بنفس الطريقة.

تحذير
كثير مختبرين بيوقفوا عند الـ Checking وبيحسبوا إنهم خلصوا شغلهم. هذا أكبر غلط!

ما هو Testing (الاختبار)؟

Testing هو شيء مختلف تماماً. هو عملية استكشاف وتجريب.

خصائص Testing:

  • بحث عن المجهول: تدور على مشاكل ما أحد فكّر فيها
  • طرح أسئلة جديدة: كل عندما تلاقي إجابة، تطلع أسئلة جديدة
  • استكشاف السيناريوهات: تجرب حالات غير متوقعة
  • يحتاج عقل بشري: الإبداع والحدس والتعاطف مطلوبين
نصيحة
Testing هو عملية استكشاف - تدور على المشاكل التي ممكن تصير ولسّا ما أحد اكتشفها.

نفس المثال - لكن هذه المرة Testing!

نرجع لمثال تسجيل الدخول في Facebook، لكن هسّا كمختبر حقيقي (Tester مش Checker):

أسئلة الاستكشاف:

  • ماذا يصير لو المستخدم حاول يسجل دخول 100 مرة بدقيقة واحدة؟ في حماية؟
  • ما لو استخدم emoji في الـ password؟ 🔥💯
  • ماذا يصير لو فتح 10 تبويبات وحاول يسجل دخول من كلهم بنفس الوقت؟
  • كيف تتصرف الصفحة مع إنترنت بطيء جداً؟
  • ما لو المستخدم كتب المعلومات بالعربي بدل الإنجليزي؟
  • ما لو ضغط زر Login مرتين بسرعة؟
  • كيف يتعامل النظام لو المستخدم نسّخ ولصّق الـ password بدلاً من أن يكتبه؟

شايف الفرق؟

  • الـ Checking يسأل: "هل الوظيفة شغّالة؟"
  • الـ Testing يسأل: "وين ممكن تنكسر؟ ما التأثير على المستخدمين؟"

ليش Testing شغل بشري؟

Testing يحتاج مهارات لا تلاقيها في الأدوات أو الذكاء الاصطناعي:

1. الإبداع (Creativity)

المختبر بيخترع سيناريوهات جديدة ما أحد فكّر فيها. يسأل "What if...?" باستمرار.

2. التعاطف (Empathy)

المختبر بيحط حاله مكان المستخدم. يفهم شعوره وتوقعاته. يعرف ما الذي سيزعجه أو يربكه.

3. فهم السياق (Context Understanding)

المختبر يفهم الـ Business، الأولويات، والأهداف. يعرف ما المهم فعلاً ولا يمكن نأجله.

4. الحدس (Intuition)

المختبر الخبير عنده "إحساس" لمّا يكون في شيء مش مظبوط. هذا الإحساس بيجي من الخبرة والممارسة.

نصيحة
الذكاء الاصطناعي يستطيع يعمل Checking بكفاءة عالية، لكن Testing لسّا يحتاج عقل بشري مبدع.

خلاصة الدرس

اليوم تعلمنا:

Checking Testing
التحقق من المعروف استكشاف المجهول
نتيجة متوقعة واضحة نبحث عن المشاكل
خطوات محددة أسئلة مفتوحة
يمكن أتمتته بالكامل يحتاج عقل بشري
"هل يعمل؟" "وين يمكن أن ينكسر؟"

النقطة الأهم:

الـ Checking مهم ولازم نعمله (ويفضل نعمله أتوماتيكياً)، لكن Testing هو الشغل الحقيقي للمختبر المحترف. هو الذي بيفرقك عن أداة أتمتة أو AI Agent.

دورك كمختبر مش إنك "تشغّل test cases" - دورك إنك تستكشف، تفكر، تسأل، وتحمي المستخدمين من المشاكل التي ممكن تصير.