ما هو الاختبار المضمن في اختبار البرمجيات؟
⚡ ملخص ذكي
يتحقق الاختبار المدمج من السلوك الوظيفي وغير الوظيفي للبرامج والأجهزة معًا، لأنه في النظام المدمج يكون الاثنان مرتبطين ارتباطًا وثيقًا ولا يمكن التحقق من أي منهما بشكل صحيح بمفرده.
ما هي الأنظمة المدمجة؟
الأنظمة المضمنة هي أجهزة يتم التحكم بها إلكترونيًا حيث يكون البرمج والعتاد متكاملين بشكل وثيق. قد تحتوي الأنظمة المدمجة على مجموعة متنوعة من أجهزة الحوسبة. وهي عبارة عن حواسيب شخصية مدمجة في أجهزة أخرى لتشغيل وظائف محددة للتطبيقات. عادةً لا يكون المستخدم النهائي على دراية بوجودها.
اختبار مضمّن
الاختبار المدمج هي عملية اختبار للتحقق من الوظائف و غير وظيفية تتضمن اختبارات الأنظمة المدمجة فحص خصائص كل من البرمجيات والأجهزة، والتأكد من خلو المنتج النهائي من العيوب. والهدف الرئيسي من هذه الاختبارات هو التحقق من مدى توافق المنتج النهائي، المكون من برمجيات وأجهزة مدمجة، مع متطلبات العميل.
يُجري اختبار البرمجيات المدمجة فحوصات للتأكد من جودة البرمجيات المعنية ومطابقتها لجميع المتطلبات اللازمة. ويُعدّ هذا الاختبار منهجًا ممتازًا لضمان أمن التطبيقات الحساسة، مثل المعدات الطبية والسكك الحديدية والطيران وصناعة السيارات وغيرها. ويُعدّ الاختبار الدقيق والشامل ضروريًا لمنح شهادات اعتماد البرمجيات.
كيفية إجراء اختبار البرامج المضمنة
بشكل عام، أنت تختبر لأربعة أسباب:
- للعثور على الأخطاء في البرمجيات
- يساعد على تقليل المخاطر لكل من المستخدمين والشركة
- خفض تكاليف التطوير والصيانة
- لتحسين الأداء
في اختبار الأنظمة المدمجة، يتم تنفيذ الأنشطة التالية:
- يتم تزويد البرنامج ببعض المدخلات.
- يتم تنفيذ جزء من البرنامج.
- تتم مراقبة حالة البرنامج، ويتم فحص المخرجات بحثًا عن الخصائص المتوقعة مثل ما إذا كانت المخرجات تتطابق مع النتيجة المتوقعة، ومدى توافقها مع المتطلبات، وعدم وجود أعطال في النظام.
أنواع اختبار البرمجيات المضمنة
بشكل أساسي، هناك خمسة مستويات من الاختبارات التي يمكن تطبيقها على البرامج المدمجة.
اختبار وحدة البرمجيات
وحدة البرمجة إما دالة أو فئة. يُجري فريق التطوير، وخاصة المطور، اختبار الوحدة، وعادةً ما يتم ذلك وفق نموذج مراجعة الأقران. تُطوّر حالات الاختبار بناءً على مواصفات الوحدة.
اختبار التكامل
اختبار التكامل يمكن تصنيفها إلى قسمين:
- اختبار تكامل البرمجيات
- اختبار تكامل البرمجيات/الأجهزة
في النهاية، يتم اختبار تفاعل مكونات الأجهزة والبرامج. وقد يشمل ذلك فحص التفاعل بين الأجهزة الطرفية المدمجة والبرامج.
يتميز تطوير البرمجيات المدمجة بخاصية فريدة: وهي أن بيئة التشغيل الفعلية التي تعمل فيها البرمجيات تُنشأ عادةً بالتوازي مع البرمجيات نفسها. وهذا يُسبب صعوبة في الاختبار، إذ لا يُمكن إجراء اختبار شامل في بيئة محاكاة.
اختبار وحدة النظام
أما الوحدة المراد اختبارها فهي إطار عمل كامل يتكون من كود البرنامج الكامل بالإضافة إلى كل شيء نظام التشغيل في الوقت الحقيقي (نظام التشغيل في الوقت الحقيقي) والأجزاء المتعلقة بالمنصة مثل المقاطعات وآليات المهام والاتصالات وما إلى ذلك. لم يعد بروتوكول نقطة التحكم استدعاءً لدالة أو استدعاءً لطريقة، بل أصبح رسالة يتم إرسالها أو استقبالها باستخدام قوائم انتظار رسائل نظام التشغيل في الوقت الحقيقي.
تتم ملاحظة موارد النظام لتقييم قدرة النظام على دعم تنفيذ النظام المضمن. ولهذا الجانب، اختبار الصندوق الرمادي يُعدّ هذا الأسلوب هو الأسلوب المفضل للاختبار. وبحسب المؤسسة، فإن اختبار وحدة النظام إما من مسؤولية المطور أو من مسؤولية فريق متخصص في تكامل الأنظمة.
اختبار تكامل النظام
تبدأ الوحدة المراد اختبارها بمجموعة من المكونات داخل عقدة واحدة. وتتألف نقاط التحكم والمراقبة (PCOs) من مزيج من بروتوكولات الاتصال المتعلقة بالشبكة وأحداث نظام التشغيل في الوقت الحقيقي (RTOS)، مثل رسائل الشبكة. بالإضافة إلى المكون، يمكن للمختبِر الافتراضي أن يؤدي دور العقدة أيضًا.
اختبار التحقق من صحة النظام
الوحدة المراد اختبارها هي نظام فرعي مكتمل التنفيذ، أو النظام المدمج بالكامل. يهدف هذا الاختبار النهائي إلى تلبية المتطلبات الوظيفية للكيان الخارجي. تجدر الإشارة إلى أن الكيان الخارجي قد يكون شخصًا، أو جهازًا في شبكة اتصالات، أو كليهما.
الفرق: الاختبار المضمن واختبار البرمجيات
يقارن الجدول أدناه بين اختبار الأنظمة المدمجة والاختبار التقليدي اختبار البرمجيات.
| اختبار البرمجيات | اختبار مضمّن |
|---|---|
| يرتبط اختبار البرمجيات بالبرمجيات فقط. | يرتبط الاختبار المضمن بكل من البرامج والأجهزة. |
| في المتوسط، 90% من الاختبارات التي تُجرى في العالم تتم يدوياً بالكامل اختبار الصندوق الأسود. | يتم إجراء الاختبارات المدمجة على الأنظمة أو الرقائق المدمجة، ويمكن أن تكون اختبارات الصندوق الأسود أو اختبار الصندوق الأبيض. |
| المجالات الأساسية للاختبار هي فحوصات واجهة المستخدم الرسومية والوظائف والتحقق من الصحة ومستوى معين من اختبار قاعدة البيانات. | تتمثل المجالات الرئيسية للاختبار في سلوك الأجهزة بالنسبة لعدد المدخلات التي يتم إعطاؤها لها. |
| يتم إجراء اختبار البرمجيات بشكل رئيسي على التطبيقات المستندة إلى خادم العميل والويب والهاتف المحمول. | يتم إجراء الاختبارات المدمجة بشكل عام على الأجهزة. |
| على سبيل المثال، Google Mailياهو Mail, Android التطبيقات. | على سبيل المثال، آلات مجال الرعاية الصحية، ووحدات التحكم الدقيقة المستخدمة في أجهزة الكمبيوتر. |
التحديات: اختبار البرمجيات المضمنة
بعض التحديات التي قد يواجهها المرء أثناء اختبار البرمجيات المدمجة:
تبعية الأجهزة
يُعدّ الاعتماد على المكونات المادية من أبرز الصعوبات التي تواجه اختبار البرمجيات المدمجة، وذلك بسبب محدودية الوصول إلى هذه المكونات. ومع ذلك، قد لا تُحاكي برامج المحاكاة سلوك الجهاز الفعلي بدقة، وقد تُعطي انطباعًا خاطئًا عن أداء النظام وسهولة استخدام التطبيق.
البرامج مفتوحة المصدر
معظم مكونات البرمجيات المدمجة مفتوحة المصدر، وليست مطورة داخلياً، ولا تتوفر لها مجموعة اختبارات شاملة. يوجد نطاق واسع من تركيبات الاختبارات والسيناريوهات الناتجة عنها.
البرمجيات مقابل عيوب الأجهزة
جانب آخر يتمثل في تطوير البرمجيات لأجهزة جديدة. خلال هذه العملية، يمكن اكتشاف نسبة عالية من عيوب الأجهزة. ولا يقتصر العيب المكتشف على البرمجيات فقط، بل قد يكون مرتبطًا بالأجهزة أيضًا.
العيوب القابلة للتكرار
يصعب إعادة إنتاج العيوب أو تكرارها في حالة الأنظمة المدمجة. وهذا يُجبر إجراءات اختبار الأنظمة المدمجة على إعطاء كل عيب قيمة أعلى بكثير مما هو عليه في الحالة العادية، وعلى جمع أكبر قدر ممكن من البيانات اللازمة بشكل معقول للعثور على السبب الجذري للعيب.
تحديثات البرامج المستمرة
تتطلب الأنظمة المدمجة تحديثات برمجية دورية، مثل ترقيات النواة، وإصلاحات الثغرات الأمنية، وبرامج تشغيل الأجهزة المختلفة، وما إلى ذلك. وتؤدي القيود المرتبطة بتحديثات البرامج إلى صعوبة تحديد الأخطاء، كما تزيد من أهمية عملية البناء والنشر.
