✅ أولاً: أنواع الـ Testing الأساسية
📌 1. Functional Testing
بيركز على:
هل الـ Feature دي شغالة زي ما هو مطلوب في الـ Requirements؟
أشهر أنواعه:
-
Unit Testing
-
Integration Testing
-
System Testing
-
Acceptance Testing
-
API Testing
-
Smoke Testing
-
Verification & Validation
-
Regression Testing
🗯 مثال:
بتختبر زرار الـ Login
→ هل بيشتغل؟
→ هل بينقلك للصفحة الصحيحة بعد إدخال البيانات؟
→ هل البيانات بتتأكد وتتسجل في النظام؟
لو فيه خلل في أي خطوة → ده Functional Bug.
📌 2. Non-Functional Testing
بيركز على:
جودة وأداء واستجابة وكفاءة النظام تحت الظروفالعادية والظروف المعينة.
أنواعه كتيرة ومنها:
-
Compatibility Testing
-
Configuration Testing
-
Environment Testing
-
Security Testing
-
Usability Testing
-
Performance Testing (تركيزنا هنا 👇)
🔸 Performance Testing
جزء من Non-Functional
هدفه يقيس:
-
استجابة النظام (Response Time)
-
قدرته على تحمل الحمل (Load Handling)
-
استقراره مع عدد كبير من المستخدمين أو البيانات
🗯 مثال:
-
صفحة المنتج بتاخد 8 ثواني تفتح بدل 2 ثانية
→ ده Performance Bug. -
لما عدد المستخدمين يزيد عن 100 يحصل Crash
→ برضه Performance Bug.
⚠️ ملاحظات هامة:
Functional Bugs و Performance Bugs هما نوعان مختلفان وبيتم التفرقة بينهم بناء على تأثيرهم على النظام
الـ Functional Bugs:
دي الأخطاء اللي بتأثر على وظائف النظام. بمعنى تاني، لو كانت فيه مشكلة في تنفيذ بعض الأوامر أو العمليات اللي المفروض البرنامج يقدر يعملها.
مثال: لو في زرار في واجهة المستخدم مش شغال، أو لو فيه عملية معينة زي تسجيل الدخول أو التسجيل غير شغالة كما هو متوقع.
الـ Performance Bugs:
دي الأخطاء اللي بتأثر على أداء النظام، وبيكون تأثيرها في سرعة النظام أو استجابته.
🗯️مثال:
👈لو الرساله مبتعبرش علي الاكشن اللي هيتعمل تبقي functional
ولو ظهر رسالة غريبه مره واحده تبقي functional
لو خطأ إملائي او تعبير عن المسدج غلط تبقى Content
ولو الخطأ في ان الكلام مش متناسق او مش علي لاين واحد desgin )UI/UX)
👈لو الحاجه نفسها باللوجيك بتاعها بتعمل عليها تيست دا functional
لو بتست resposivenessاو سرعه استجابه او أداء دا يبقى nonfunctional: performance
⚠️ملحوظة
الdesgin bugs بتكون جزء من nonfunctional/performance
في حالة ان الاخطاء في الdesginاثرت على اداء السيستم ففي الحالة دي هرفعها ك nonfunctional
إنما لو فيه مشكلة في الdesgin انه مش مطابق مثلا للrequirment اوفي مشكلة بالux فدي برفعها ك design bugs.
وعمتا تحديد النوع بيجي مع الخبرة في الشغل