🧠 1. Error (خطأ برمجي أو بشري)
هو خطأ بيعمله الـ Developer أثناء كتابة الكود.
-
مثال: مبرمج نسي يضيف شرط التحقق من كلمة المرور.
- ممكن يظهر في شكل exception مثلا يخلي الكود ميعملش run, و بيكتشفه الشخص الي بيكتب الكود سواء ديفيلوبر او تستر بيعمل اوتوميشن
🐞 2. Defect / Bug (عيب في الكود)
هو الأثر الناتج عن الـ Error، وبيتم اكتشافه أثناء التستنج.
📌 Defect
هو الفرق بين الـ Expected Result والـ Actual Result في النظام.
👤 مين بيكتشفه؟
-
ممكن يكتشفه المطور (Developer) أثناء الـ Unit Testing أو TDD
-
أو يكتشفه المختبر (Tester) أثناء تنفيذ Test Cases بعد الـ Implementation
📌 Bug
هو defect تم اكتشافه بواسطة الـ Tester، وتم تسجيله في أدوات التتبع (زي Jira)، واتعمله Assign للمطور عشان يصلحه.
يعني ببساطة:
Bug = Defect + تم الإبلاغ عنه من قبل التستر
💥 3. Failure (فشل أثناء التشغيل)
هو لما الـ bug يظهر في بيئة الـ Production أو أثناء استخدام النظام فعليًا.
🔍 وغالبًا اللي بيكتشفه هو العميل أو المستخدم النهائي، وبيحصل بسبب:
bug متسرب من التستنج
أو سلوك لم يتم اختباره بالكامل
-
مثال: المستخدم بيضغط تسجيل دخول، لكن التطبيق بيهنج أو بيفتح صفحة غلط.
⚠️ ملاحظات بسيطة:
-
مش دايمًا الـ bug لازم يكون في production، لأن ده اسمه failure وقتها
-
ومش كل defect بيتحول لbug، ممكن يتغلق لو مش valid أو won’t fix