Table of Contents
ما هي "التطور الـ "الاختبار الـ "دريفن
() تطوير اختبارات الـ (Driven Development) هو ممارسة مُنضبطة لتطوير البرمجيات تعكس تسلسل الترميز التقليدي، وبدلاً من كتابة الرموز ثم كتابة اختبارات للتحقق منها، يقوم المطورون بكتابة اختبار فاشل أولاً، ثم يكتبون رمزاً إنتاجياً كافياً لجعل هذا الاختبار يمر، ويعيدون في النهاية صياغة الرمز مع الحفاظ على جميع الاختبارات، وقد تكرر هذا المفهوم في كل سمة أو برمجة جديدة.
وفي مجال التنمية، فإن الاختبار هو بمثابة تحديد دقيق لما ينبغي أن يفعله الرمز، لأن الاختبار مكتوب قبل التنفيذ، فإن المطور يصمم بطبيعة الحال الواجهة والسلوك من منظور المستهلك، والنتيجة هي البرمجية النظيفة والنموذجية والقابلة للاختبار التي تميل إلى أن تكون لديها عيوب أقل ويسهل الحفاظ عليها بمرور الوقت، ولا تقتصر الممارسة على أي لغة أو مجال معين، وقد اعتمدت على نطاق واسع في تطوير الشبكة وخدماتها الأساسية.
دور البرمجيات في مشاريع الهندسة الكهربائية
ونادرا ما تكون مشاريع الهندسة الكهربائية الحديثة مجرد نظم معدات، فمن شركة المتحكمات الدقيقة في أجهزة المستهلكين إلى أجهزة التحكم المنطقي القابلة للبرمجة في التشغيل الآلي الصناعي، والبرمجيات الآن، والتحكم في الأجهزة الكهربائية، والرصد، والارتقاء بها إلى أقصى حد، والوحدات المراقبة الإلكترونية الآلية، والأجهزة الطبية، وأجهزة توليد الطاقة، والآلات الآلية، كلها تعتمد على الانقلاب الضيق بين البرمجيات والتلفزيونات المادية.
ونظراً للطبيعة الحرجة لهذه النظم، لا يمكن أن يكون الاختبار بعد التفكير، وكثيراً ما تنطوي نُهج الاختبار التقليدية على كتابة مجموعة البرامج الحاسوبية الكاملة، وإدماج المعدات، ثم إجراء اختبارات على مستوى المنظومة في وقت متأخر من دورة التنمية، مما يؤدي إلى إعادة العمل باهظ التكلفة عندما تكتشف الحشرات في مرحلة التكامل، ويتيح هذا النهج وسيلة لنقل الكشف عن العيوب إلى المراحل الأولى من التطوير عن طريق التحقق من كل وحدة من السلوك فور إنشائها.
لماذا مسائل التطوير الصناعي خاصة للهندسة الكهربائية
وتطرح مشاريع الهندسة الكهربائية تحديات فريدة تجعل من تطوير تكنولوجيا المعلومات ذات قيمة خاصة:
- Hardware-software interrelated - يمكن أن يظهر حشرة البرامجيات كعطل في المعدات، والعكس صحيح.
- Safety-critical compliance - Standards like IEC 61508 (functional safety) and ISO 26262 (autotomotive) require rigorous testing evidence.
- Realtime constraints] – Timing fines are notoriously hard to debug.TDD encourages writing tests that verify timing behavior, often through simulation or equipment-in-the-loop environments.
- لترهيب الوصول المادي إلى المعدات ] - عندما تكون النماذج الأولية شحيحة أو باهظة التكلفة، يتيح تطوير تكنولوجيا المعلومات التحقق من البرامجيات الهامة على آلة الاستقبال باستخدام المصابيح والسخرات، مما يقلل من الاعتماد على توافر المعدات.
استحقاقات مفصلة من شعبة خدمات تنمية المشاريع الهندسية الكهربائية
الكشف المبكر عن الأخطاء
وفي مشروع هندسة كهربائية نموذجي يقوده شلال المياه، قد لا يظهر عيب في البرمجيات إلا أثناء تكامل النظام، بعد أسابيع من كتابة الرمز، وعند هذه النقطة، يتم دفن السبب الجذري في طبقات الافتراضات وغيرها من التغييرات، ويمسك قسم التطوير التقني هذه الأخطاء في غضون دقائق، وكل اختبار يقوم على أساس فحص دقيق لكل خط من الرموز المكتوبة، ونتيجة لذلك انخفاض كبير في تكلفة إصلاح الحشرات - التي يشار إليها في إنتاجها بمقياس 10x أو 100x.
تحسين نوعية المدونة ومنهجيتها
ومن الطبيعي أن تؤدي اختبارات الكتابة أولا إلى وضع مدونة مقترنة بشكل متسم بالاتساق الشديد، ولجعل وظيفة قابلة للاختبار في العزلة، يجب على المطور أن يحقن المعالين بدلا من المكالمات التي تستخدم في أجهزة صلبة، وهذا ينتج برامجيات يسهل تجديدها وتوسيعها وإعادة استخدامها عبر مختلف منابر المعدات، وفي النظم المدمجة التي كثيرا ما يتعين نقلها إلى ملوثات جديدة، تكون هذه القاعدة قيمة.
Automated Test Suite as Documentation
أما الوثائق التقليدية الخاصة بمشاريع الهندسة الكهربائية - المواصفات، ووثائق التصميم، وأدلة المستخدمين - التي تُعد في حالة عفا عليها الزمن، إلا أن مجموعة من الاختبارات التي تجرى تُخبر دائماً بالحقيقة عما يفعله النظام فعلاً، ويمكن لأعضاء الفريق الجدد أن يتعلموا السلوك المتوقع بقراءة أسماء الاختبارات والتأكيدات، كما أن الاختبارات تستخدم كمواصفات قابلة للتنفيذ للتحقق من المعدات الموجودة في الشبكة، مما يجعلهم مادة حية تحافظ على أهميتها طوال دورة حياة المنتج.
تعزيز موثوقية إدماج برامجيات البرمجيات
وكثيرا ما تنطوي اختبارات الاندماج في الهندسة الكهربائية على أجهزة الحفر الفيزيائية، والأوعية، ولوازم الطاقة التي تكون باهظة الثمن لإنشاء والوقت الذي يستغرقه تشغيلها، وتتحول هذه المادة إلى أكبر قدر ممكن من الاختبارات على طبقة البرامجيات، وعندما تكون المعدات مرتبطة في نهاية المطاف، يمكن للفريق أن يركز على المسائل المتبقية المتعلقة بالتكامل بدلا من إبطال الأخطاء المنطقية الأساسية، والثقة المكتسبة من جناح الاختبار الأخضر تعني عقد دورات أقل ليلا وانتهاء من الزمن.
تنفيذ برنامج تطوير التكنولوجيا في مشاريع الهندسة الكهربائية
ويتطلب تطبيق برنامج تطوير التكنولوجيا في سياق هندسي كهربائي بعض التكيف مع مراعاة المعالين من المعدات، والقيود المفروضة في الوقت الحقيقي، والقيود المفروضة على الأدوات، وقد ثبت أن النهج التالي المتدرج فعال في مشاريع تتراوح بين برامج مراقبة السيارات وأجهزة الاتصال الذكية للشبكة.
الخطوة 1: تحديد المتطلبات الواضحة والمخططات المتوقعة
وقبل كتابة أي اختبارات، يجب على الفريق أن يتفق على سلوك كل عنصر من عناصر البرامجيات، وكثيرا ما يتم ذلك باستخدام حالات الاستخدام أو آلات الدولة، وعلى سبيل المثال، ينبغي أن يرتفع جهاز مراقبة السرعة من صفر إلى هدف الآلية في إطار نافذة زمنية معينة، دون أن يكون هناك تجاوز في التصويب أكثر من 10 في المائة، ثم تستمد حالات الاختبار من هذه المتطلبات، كما تحدد في هذه المرحلة الوصلات البينية بين المعدات والمركبات العضوية الثابتة والنواتج، التي تحتاج إلى خلاصات.
الخطوة 2: كتابة الاختبارات الآلية التي تحقق من السلوك، بما في ذلك التفاعلات بين الأجهزة
وقد يؤكد الاختبار، في حالة إعادة درجة الحرارة، أن الوظيفة التي تعود إلى درجة الحرارة صفر، تعود إلى درجة حرارة معينة، وتستخدم إطاراً للسخرة لتحفيز الطرف الآخر، إذ يستخدم العديد من مشاريع تطوير تكنولوجيا المعلومات المدمجة نظاماً للاختبارات (C) يستخدم نظاماً للاختبارات (Cefcompner) مع مكتبات متحركة مثل إطار عمل المزمار.
وبالنسبة للتفاعلات المعقدة في مجال المعدات، مثل توليد القدرة على إحداث حرجية التوقيت، يمكن أن يُجرى الاختبار على هيئة تقييم باستخدام أداة اختبار، حيث يصبح اختبار المعدات في الموقع ذا أهمية، والمفتاح هو البدء في اختبارات الوحدة المعزولة والتوسع تدريجياً في اختبارات التكامل التي تجري على المعدات المستهدفة.
الخطوة 3: كتابة القانون الأدنى لإختبار
(ب) مقاومة الحث على كتابة وظيفة إضافية، والهدف هو جعل الاختبار خضراء مع أبسط تنفيذ ممكن، وإذا كان الاختبار يتوقع قراءة درجة حرارة تبلغ 25 درجة مئوية عندما تبلغ قيمة الـ 512 درجة، فإن المدونة قد تكون تحويلاً كيميائياً مباشراً، وهذا الحد الأدنى من الاختبار يبقي التدفق الرمزي مائلاً ومركّزاً، وكثيراً ما يكشف عن حالات الاختبار المفقودة، وإذا كان التنفيذ يبدو تافهاً، فإ النظر في كتابة اختبارات الإضافية التي تتخطى السلوك الأكثر تعقيداً.
الخطوة 4: المفاعل مع نظام تقييم البرمجيات المزودة بأجهزة الموجات الصلبة
وبعد مرور الاختبارات، يُعاد تكييف الرمز لتحسين الهيكل أو الأداء أو القدرة على القراءة، وإذا كان الرمز سينفذ على منافسة دقيقة مستهدفة، فإن هذا التكاثر قد ينطوي على إضافة تقديرات مجمّعة أو تعديل لحجم الكلمات، ومن الناحية الجوهرية، يجب أن تظل مجموعة الاختبارات خضراء بعد إعادة التصنيع، وفي هذه المرحلة، تجري نفس الاختبارات على المعدات الفعلية (إن وجدت) للتأكد من دقة سجل نقاط الاختبار.
الخطوة 5: إدماج الاختبار المستمر والأوتوماتيكي
(أ) إنشاء خط أنابيب للتكامل المستمر يقوم ببناء البرمجيات ويدير جناح الاختبار على كل التزام، وقد يشمل ذلك، بالنسبة للمشاريع المدمجة، بناء كل من ثنائي الاختبارات القائم على المضيف والإطار المؤسسي المستهدف، كما تجري بعض الأفرقة مجموعة فرعية من اختبارات مكتب تنسيق الشؤون الإنسانية على مسارات اختبار مخصصة تحفزها إدارة الاستخبارات المركزية.
التحديات المشتركة والحلول العملية
واعتماد هذه المبادرة في مجال الهندسة الكهربائية ليس بدون عقبات، إذ إن إدراك هذه التحديات وإحداث التخفيف من آثارها أمران يحسنان فرص النجاح في التنفيذ.
منظومات المعالينة من المعدات الحاسوبية وأجهزة المحاكاة
ويمكن أن يُحاكي بدقة اختبارات الوصلات الطرفية للموجات الجاهزة، وأجهزة تحديد البيانات، والوصلات البينية للاتصال، التي تمر على الجهة المضيفة، قد تفشل في تحقيق الهدف بسبب الاختلافات في السلوك دون المستوى، والحل هو استراتيجية اختبار مطبقة: استخدام اختبارات الوحدات القائمة على أساس الاستضافة مع نماذج لأغلبية عمليات التحقق المنطقي، ثم إجراء عدد أقل من اختبارات التكامل على دليل المعدات الفعلية.
اختبار التوقيت وضبط الزمن الحقيقي
وهناك العديد من النظم المدمجة التي لها مواعيد نهائية صعبة في الوقت الحقيقي، وهي وظيفة تُحسب قانون الرقابة يجب أن تنتهي في غضون عدد قليل من اللحظات الدقيقة، ولا يمكن للاختبارات التقليدية للوحدة على كربون مختلط قياس التوقيت المستهدف بدقة، ولاختبار التوقيت، وكتابة التأكيدات التي تُفرض على الهدف باستخدام جهاز توقيت عال، وفي الممارسة العملية، كثيرا ما تعتمد الأفرقة على مزيج من التفتيش الرمزي، والتحليل الثابت، واختبارات الأداء المكرامية التي تُسَمَتَتَتَمَتَتَتَتَتَمَتَتَتَتَتَتَتَتَتَتَتَتَتَتَتَتَتَتَتَتَتَتَتَمَتَتَتَتَتَتَتَتَتَتَتَتَمَمَتَتَتَتَتَتَتَتَتَتَتَتَتَتَتَتَتَتَتَتَتَتَتَتَتَتَ
التدريب الجماعي والمقاومة الثقافية
(ب) يحتاج مهندسو الكهرباء إلى تغيير في التفكير في المعدات أولاً، وقد يكونون غير مألوفين في ممارسات اختبار البرمجيات، ويحتاج هذا الرقم إلى تغيير في التفكير: الاختبارات الكتابية قبل أن يشعر الرمز بأنها غير طبيعية في البداية. ويوفر التدريب العملي باستخدام مشاريع صغيرة متجذرة (مثلاً، حلقة اتصال مع فريق الاختبارات المحلية) ودورات البرمجة البرمجية التي تركز على جودة الاختبارات، كما يساعد في ذلك الكتب مثل [FLT:]
Toolchain and Compiler Constraints
وكثيراً ما تفتقر مجموعة الأدوات الشاملة إلى اختبار وطني، ولا توفر بعض بيئات البرمجيات المتطورة المتطورة المتطورة مكتبة معيارية ضرورية لأطر الاختبار، وتشمل الحلول استخدام سلسلة أدوات مأهولة من PC-hosted مع هدف محاكاة (مثلاً، نموذج الاختبارات الكمية لمؤسسة ARM Cortex-M) أو استخدام إطار اختباري للوزن الخفيف مثل [FLT:]
الأدوات والأطر اللازمة لتطوير تكنولوجيا المعلومات في الهندسة الكهربائية
وهناك عدة أدوات مصممة أو مكيفة خصيصاً لأغراض التنمية في مجال الهندسة المدمجة والكهربائية:
- CppUTest] - إطار اختباري للوحدة بالنسبة لجيم وجيم+ يعمل بشكل جيد على المضيف والهدف، ويشمل الدعم المقدم من المواسير ويمكن إدماجه في مشاريع قائمة على الإكليب أو المشاريع القائمة على المكياج.
- Unity] — A light weight C test framework that is highly portable, even to bare-metal microcontrollers. Often coupleed with CMock for automatic mock generation.
- Google Test] — Primarily for C+ projects. While it is heavier than CppUTest, it is robust and has excellent assertion macros. Suitable for applications that run on an operating system or RTOS.
- pytest] - For projects that use Python for automatic scripts, test tooles, or data acquisition, pytest can be used with TDD to validate communication protocols and data processing algorithms.
- Hardware-in-the-loop platforms] — Products from National Instruments, dSPACE, and Vector informatics allow running software tests against real or simulated equipment with closed-loop control. These platforms can be triggered from Jenkins or GitLab CI.
Case Study: TDD for a Motor Control Firmware Project
ولتوضيح التطبيق العملي للشبكة، والنظر في مشروع لجهاز التحكم الآلي في السيارات التابع لدائرة البلدان النامية بلا هوادة، وباستخدام هذه الأداة، قام الفريق أولا بكتابة اختبارات لمنطق التبديل: نظرا لموقع متناوب (مُنَزَّز كمدخل زاوي)، ينبغي أن تولد البرمجيات البرمجية النمط الصحيح للجهاز المزود بمقياس للجرعات، وتشمل مجموعة الاختبارات حالات خطوبة (الوغاء، وتجاوزات).
وبعد التحقق من المنطق، قام الفريق بتصوير الرمز إلى المتحكم المصغر المستهدف وأجرى نفس الاختبارات باستخدام جهاز سطو مشغل تابع للمجموعة، ولم تُستخدم سوى ثلاثة اختبارات بسبب افتراضات التوقيت في جيل PWM، وقد تم تحديد هذه الإخفاقات بتعديل سجلات تشكيلة التوقيت، وتم تحديث مجموعة الاختبارات لتعكس السلوك المستهدف الصحيح، وكانت النتيجة هي وجود جهاز لمراقبة السيارات على مستوى الإنتاج الذي كان لديه عدد أقل من خمسة حشرات خلال الاختبارات الميدانية.
خاتمة
إن تطوير الـ (الدريفن) هو أسلوب قوي لتحسين نوعية البرمجيات في مشاريع الهندسة الكهربائية، وبكتابة اختبارات قبل وضع الرموز، تلتقط الأفرقة عيوب في وقت مبكر، وتصمم نظماً نموذجية أكثر، وتنشئ وثائق معيشة تتوافق مع السلوك الفعلي للجمع بين المعدات والبرمجيات، وفي حين أن التحديات مثل معلّفات المعدات، والقيود في الوقت الحقيقي، والتدريب الجماعي، يمكن التغلب عليها باستراتيجيات ملائمة للتعجيل بنتيجة الاختبارات، والتقليل من مراحل اعتمادها.
إن اعتماد برنامج تطوير التجارة والتنمية يتطلب استثماراً أولياً في البنية التحتية للاختبارات وتحولاً في الثقافة الإنمائية، ولكن بالنسبة للمهندسين الكهربائيين الذين يتعاملون مع ارتفاع تكلفة إعادة تشغيل المعدات، بل وارتفاع تكلفة الفشل الميداني، فإن الاستثمار يدفع لنفسه مرات عديدة، وابدأ بنموذج واحد صغير، وكتابة اختبار له، وتجربة الثقة التي تأتي من مجرى اختبار خضراء، ثم توسيع نطاق الممارسة لتشمل النظام بأكمله.