الفرق بين Functional و Non-Functional Testing
تعرّف على الفرق الأساسي بين الفحص الوظيفي (Functional Testing) والفحص غير الوظيفي (Non-Functional Testing)، مع أمثلة عملية توضح أهداف ومجالات كل نوع في فحص البرمجيات.
قبل ما تبدأ
- مقدمة في فحص البرمجيات (Software Testing Basics)
الخلاصة بنقاط
- الفحص الوظيفي (Functional Testing) يركز على ماذا يفعله النظام (What the system does) للتأكد من مطابقة الميزات للمتطلبات.
- الفحص غير الوظيفي (Non-Functional Testing) يركز على كيف يعمل النظام (How the system performs) مثل الأداء، الأمان، وسهولة الاستخدام.
- الفحص الوظيفي يغطي حالات مثل تسجيل الدخول، إنشاء الحساب، والعمليات المالية.
- الفحص غير الوظيفي يغطي جوانب مثل الأداء تحت الضغط (Load Testing)، الأمان (Security)، وسرعة الاستجابة.
يعتبر كل من Functional Testing و Non-Functional Testing من الركائز الأساسية لضمان جودة أي تطبيق أو نظام برمجي، ولكنهما يختلفان في الهدف والتركيز:
1. الفحص الوظيفي (Functional Testing)
يركز هذا النوع على التحقق من أن النظام يعمل وفقاً للمتطلبات الوظيفية (Functional Requirements) المحددة مسبقاً.
- السؤال الأساسي: ماذا يفعل النظام؟ (What does the system do?)
- الهدف: التأكد من أن كل ميزة (Feature) في التطبيق تعمل بشكل صحيح وتؤدي وظيفتها المتوقعة.
- أمثلة:
- فحص عملية تسجيل الدخول باستخدام اسم مستخدم وكلمة مرور صحيحة.
- فحص إمكانية إضافة منتج إلى سلة التسوق وإتمام عملية الدفع.
2. الفحص غير الوظيفي (Non-Functional Testing)
يركز على الجوانب التشغيلية وصفات الجودة للنظام بدلاً من الوظائف المباشرة.
- السؤال الأساسي: كيف يعمل النظام؟ (How well does the system perform?)
- الهدف: التأكد من أن النظام يعمل بكفاءة، أمان، وسرعة تحت مختلف الظروف.
- أمثلة:
- فحص الأداء (Performance Testing): قياس زمن استجابة الموقع عند زيادة عدد المستخدمين.
- فحص الأمان (Security Testing): التأكد من حماية البيانات ضد الثغرات والاختراقات.
- فحص سهولة الاستخدام (Usability Testing): تقييم مدى سهولة تصفح الواجهات بالنسبة للمستخدم.
الخلاصة: الفحص الوظيفي يضمن أن التطبيق يفعل الأشياء الصحيحة، بينما الفحص غير الوظيفي يضمن أن التطبيق يفعلها بالطريقة الصحيحة والآمنة.
تحديد نوع الفحص للمتطلبات البرمجية
- اقرأ المتطلب: "يجب أن يتمكن المستخدم من إعادة تعيين كلمة المرور عبر البريد الإلكتروني." وحدد هل هو Functional أم Non-Functional.
- اقرأ المتطلب: "يجب أن يتحمل الموقع 10,000 مستخدم بالتزامن دون أن تتجاوز استجابة الصفحة ثانيتين." وحدد نوعه.
فكر في السؤال الأساسي: هل المتطلب يشرح ميزة وظيفية أم يقيس جودة وأداء النظام؟
اكشف الحل
- المتطلب الأول: Functional Testing (لأنه يفحص وظيفة وميزة محددة في النظام).
- المتطلب الثاني: Non-Functional Testing (لأنه يقيس الأداء وسرعة الاستجابة تحت الضغط).
شاهد 90% من الفيديو حتى ينحسب هذا الدرس مكتمل.





النقاش 🔻