ما هو اختبار المكونات؟ التقنيات، أمثلة لحالات الاختبار
⚡ ملخص ذكي
يقوم اختبار المكونات بفحص كل جزء فردي من التطبيق على حدة، دون دمجه مع الباقي، بحيث يتم العثور على العيوب وإصلاحها داخل وحدة واحدة قبل بدء التجميع.
ما هو اختبار المكونات؟
اختبار المكونات هو نوع من أنواع اختبار البرمجيات حيث يتم اختبار كل مكون على حدة، دون دمجه مع المكونات الأخرى. ومن منظور معماري، يُطلق عليه أيضًا اسم اختبار الوحدةوتطلق بعض المراجع عليه اسم اختبار البرامج.
أي برنامج ككل يتكون من عدة مكونات، ويتناول اختبار مستوى المكونات اختبار هذه المكونات بشكل فردي. وهو أحد أكثر الاختبارات شيوعاً. اختبار الصندوق الأسود أنواع الاختبارات التي يجريها فريق ضمان الجودة.
من المفيد التنويه مبكراً إلى مسألة التسمية. يتناول معجم ISTQB اختبار المكونات و وحدة التجارب يُستخدم مصطلحا "اختبار الوحدة" و"اختبار المكونات" كمرادفين لنفس مستوى الاختبار. لكن العديد من فرق التطوير، كما هو الحال في هذه المقالة، تُبقي على الفصل بينهما عمليًا: يُجري المطورون اختبارات الوحدة على كودهم الخاص، ثم يُجري المختبرون اختبارات المكونات على النسخة المُسلّمة. ويُوضح جدول المقارنة في نهاية هذه المقالة هذا التمييز العملي.
كما يوضح الرسم البياني أدناه، فإن اختبار المكونات له استراتيجية وخطة اختبار خاصة به، حيث يتم النظر في كل جزء من البرنامج أو التطبيق على حدة. لكل مكون، سيناريو الاختبار يتم تعريفها، ثم يتم تقسيمها إلى حالات اختبار عالية المستوى، وأخيراً إلى حالات اختبار تفصيلية منخفضة المستوى. حالات تجريبية مع وجود متطلبات مسبقة.
يختلف استخدام مصطلح "اختبار المكونات" من مجال لآخر ومن منظمة لأخرى. وتتلخص الأسباب الأكثر شيوعًا لهذا الاختلاف في المفهوم فيما يلي.
- نوع نموذج دورة حياة التطوير المختار
- مدى تعقيد البرنامج أو التطبيق قيد الاختبار
- سواء تم إجراء الاختبار مع أو بدون عزله عن المكونات الأخرى في التطبيق
تُنتج دورة حياة اختبار البرمجيات العديد من مُخرجات الاختبار، أي الوثائق التي يتم إنشاؤها واستخدامها أثناء أنشطة الاختبار. ومن بينها سياسة الاختبار واستراتيجية الاختبار اللتان تُحددان أنواع الاختبارات المُستخدمة ومدى عمقها في أي مشروع.
من يقوم باختبار المكونات
يُجري المختبرون اختبار المكونات. أما اختبار الوحدات فيُجريه المطورون، الذين يختبرون وظيفة أو إجراءً محددًا. وبمجرد اكتمال اختبار الوحدات، يبدأ اختبار المكونات، ويتولى المختبرون مسؤولية هذا الاختبار.
متى يتم إجراء اختبار المكونات
يُجرى اختبار المكونات مباشرةً بعد انتهاء المطورين من اختبار الوحدات، ويتم إصدار النسخة لفريق الاختبار. تُعرف هذه النسخة باسم نسخة اختبار الوحدات (UT). في هذه المرحلة، يتم اختبار الوظائف الرئيسية لكل مكون.
معايير الدخول لاختبار المكونات
- تم تطوير الحد الأدنى من المكونات التي سيتم تضمينها في بناء UT واختبارها بشكل فردي.
معايير الخروج لاختبار المكونات
- تعمل وظائف كل مكون كما هو محدد.
- لم يتبق أي عيب حرج أو عالي أو متوسط الخطورة أو ذو أولوية مفتوحة في سجلات العيوب.
تقنيات اختبار المكونات
يتم تصنيف اختبار المكونات بطريقتين بناءً على عمق مستوى الاختبار.
- CTIS — اختبار المكونات الصغيرة
- اختبار المكونات على نطاق واسع (CTIL)
CTIS — اختبار المكونات الصغيرة
يمكن إجراء اختبار المكونات مع أو بدون عزلها عن المكونات الأخرى في التطبيق قيد الاختبار. وعندما يتم إجراؤه مع عزل المكونات الأخرى، يُشار إليه باسم اختبار المكونات على نطاق صغير.
مثال 1: في موقع ويب يحتوي على خمس صفحات ويب مختلفة، فإن اختبار كل صفحة ويب على حدة وبعزلة عن المكونات الأخرى هو اختبار المكونات على نطاق صغير.
مثال 2: تحتوي الصفحة الرئيسية لموقع guru99.com الموضحة أدناه على العديد من المكونات، مثل الصفحة الرئيسية، والاختبار، SAPالويب، يجب تعلمه!، البيانات الضخمة، المشاريع الحية والمدونة.
أي برنامج يتكون من مكونات عديدة بنفس الطريقة، ولكل مكون مكوناته الفرعية. اختبار كل وحدة من الوحدات المذكورة في المثال 2 على حدة، دون مراعاة تكاملها مع المكونات الأخرى، هو اختبار مكونات مصغر.
يؤدي فتح القائمة المنسدلة "الاختبار" إلى الكشف عن المكونات الفرعية لمكون الاختبار: الاختبار اليدوي، SOAPUI، QTP, JUnit, Seleniumإدارة الاختبارات و اختبار المحمولفي اللقطة أدناه، تم تمييز هذه المكونات الفرعية باللون الأحمر.
اختبار المكونات على نطاق واسع (CTIL)
يُشار إلى اختبار المكونات الذي يتم إجراؤه دون عزلها عن المكونات الأخرى في التطبيق قيد الاختبار باسم اختبار المكونات بشكل عام.
يوضح المثال الفرق بشكل أفضل. لنفترض أن تطبيقًا ما يتكون من ثلاثة مكونات: المكون أ، والمكون ب، والمكون ج.
قام المطور ببناء المكون "ب" ويريد اختباره. لاختبار المكون "ب" بشكل كامل، تعتمد بعض وظائفه على المكون "أ" وبعضها الآخر على المكون "ج"، كما يوضح الرسم البياني أدناه.
يكون تدفق الوظائف A → B → C، مما يعني أن المكون B يعتمد على كل من A و C. في هذا التدفق، يكون stub هو الوظيفة المستدعاة ويكون driver هو الوظيفة المستدعاة.
لم يتم تطوير المكونين A وC بعد. لاختبار المكون B بشكل كامل، يتم استبدال A وC ببرنامج تشغيل ووحدة وهمية حسب الحاجة، بحيث يعمل المكونان المفقودان كعناصر وهمية إلى حين توفر المكونات الحقيقية.
- كعب: يتم استدعاء دالة وهمية (stub) بواسطة المكون قيد الاختبار. المكون C غير جاهز، لذا تحل الدالة الوهمية محله وتعيد الاستجابات التي يتوقعها المكون B.
- السائق: يقوم برنامج التشغيل باستدعاء المكون قيد الاختبار. المكون أ غير جاهز، لذلك يحل برنامج التشغيل محله ويستدعي المكون ب بالمدخلات المطلوبة.
أمثلة لحالات الاختبار لاختبار المكونات
ترتبط صفحتا الويب أدناه ببعضهما البعض من وجهة نظر الوظائف، مما يجعلهما زوجًا مفيدًا من المكونات للاختبار.
الصفحة الأولى هي صفحة تسجيل الدخول لموقع الخدمات المصرفية التجريبي.
عندما يقوم المستخدم بإدخال معرف مستخدم وكلمة مرور صحيحين وينقر على زر الإرسال، تنتقل الصفحة إلى الصفحة الرئيسية لموقع البنك التجريبي، كما هو موضح أدناه.
هنا، تُعتبر صفحة تسجيل الدخول مكونًا، والصفحة الرئيسية مكونًا آخر. ويُطلق على اختبار وظائف كل صفحة على حدة اسم اختبار المكونات.
سيناريوهات اختبار المكونات في صفحة الويب 1:
- أدخل معرف مستخدم غير صالح وتحقق من ظهور تحذير سهل الاستخدام للمستخدم النهائي.
- أدخل اسم مستخدم وكلمة مرور غير صالحين، ثم انقر فوق إعادة تعيين، وتحقق من مسح حقلي اسم المستخدم وكلمة المرور.
- أدخل اسم مستخدم وكلمة مرور صحيحين وانقر على زر تسجيل الدخول.
سيناريوهات اختبار المكونات في صفحة الويب 2:
- تأكد من عرض رسالة الترحيب الخاصة بصفحة المدير على الصفحة الرئيسية.
- تأكد من أن جميع الروابط الموجودة على الجانب الأيسر من صفحة الويب قابلة للنقر.
- تأكد من ظهور معرف المدير في منتصف الصفحة الرئيسية.
- تحقق من وجود الصور الثلاث المختلفة على الصفحة الرئيسية، وفقًا للرسم التوضيحي.
اختبار الوحدة مقابل اختبار المكونات
يلخص الجدول أدناه كيف يختلف المستويان في الممارسة اليومية.
| وحدة التجارب | اختبار المكونات |
| اختبار البرامج والوحدات الفردية لإثبات أن البرنامج يعمل وفقًا للمواصفات. | اختبار كل عنصر أو جزء من البرنامج بشكل منفصل، مع أو بدون عزله عن العناصر الأخرى. |
| تم التحقق من صحة التصميم وفقًا لوثائق التصميم. | تم التحقق من صحة النتائج وفقًا لمتطلبات الاختبار وحالات الاستخدام. |
| تم إنجازه بواسطة مطورين. | تم إنجازه بواسطة مختبرين. |
| تم إنجازه أولاً. | يتم ذلك بعد اكتمال اختبار الوحدة من جانب المطورين. |
| عادة ما يتم إصلاح العيوب في الموقع ولا يتم تسجيلها رسميًا. | يتم تسجيل العيوب و tracتم اجتياز عملية إدارة العيوب بنجاح. |






