Automated Test Case Generation for Airborne Software Using a VAE–Transformer Model
تقترح هذه الورقة إطار عمل قائماً على نموذج (VAE–Transformer) يجمع بين تمثيلات مصفوفة المجال-الحدث المهيكلة ومتجهات الدلالات-الحالة لتوليد حالات اختبار متنوعة وعالية الجودة، مما يحسن التغطية والكفاءة بشكل كبير في عملية فحص البرمجيات الجوية ذات الأهمية المتعلقة بالسلامة مقارنة بالطرق التقليدية.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
تعتمد الطائر الحديثة على البرمجيات لإدارة كل شيء، بدءاً من أدوات التحكم في الطيران وصولاً إلى تخطيط المهام. هذا الكود هو كود حرج للسلامة، مما يعني أن خطأً واحداً قد يؤدي إلى عواقب كارثية. ولهذا السبب، يجب على المهندسين اختبار هذه البرامج بصرامة لضمان عملها بشكل صحيح تحت كل الظروف الممكنة. ويتمثل التحدي الرئيسي في هذا الاختبار في أن البرنامج يعمل في حالات معقدة ومتغيرة. فعلى سبيل المثال، قد يكون الأمر بتغيير وضع الطيران صالحاً فقط إذا كانت الطائرة في حالة "تجهيز" (armed state) محددة وكان مستوى البطارية كافياً. وغالباً ما تعاني طرق الاختبار التقليدية هنا لأنها تعامل بيانات الإدخال كمجرد تدفق من التغييرات العشوائية. وعندما تُطبق هذه التغييرات العشوائية على بيانات مهيكلة، فإنها غالباً ما تكسر قواعد التنسيق أو تتجاهل الحالة الراهنة للنظام، مما يؤدي إلى فشل الاختبار قبل أن يتمكن حتى من الوصول إلى المسارات العميقة والخفية حيث قد تختبئ الأخطاء.
لقد طور باحثون من جامعة نورث وسترن بوليتكنيكال وجامعة الطيران المدني الصينية نهجاً جديداً لحل هذه المشكلة. فقد أنشأوا نظاماً يستخدم الذكاء الاصطناğı لتوليد حالات اختبار عالية الجودة مصممة خصيصاً للبرمجيات المحمولة جواً. وبدلاً من مجرد تحوير البيانات بشكل أعمى، يفهم منهجهم أولاً بنية الإدخال والحالة الراهنة لأنظمة الطائرة. ثم يستخدمون نوعين متميزين من نماذج تعلم الآلة يعملان معاً لإنشاء سيناريوهات اختبار جديدة تكون صالحة هيكلياً ومناسبة سياقياً. وقد اختبر الباحثون هذا النظام على ستة نماذج مختلفة من نظام تحكم في الطيران حقيقي، ووجدوا أن منهجهم اكتشف مسارات تنفيذ أكثر خفاءً وغطى جزءاً أكبر من الكود مقارنة بأدوات الاختبار القياسية، وكل ذلك مع استهلاك موارد حاسوبية أقل.
يكمن جوهر هذا المنهج الجديد في كيفية تمثيل البيانات. فمدخلات البرمجيات المحمولة جواً ليست مجرد سلاسل عشوائية من الأرقام؛ بل هي منظمة في كتل محددة، مثل شبكة حيث يمثل كل صف خطوة في تسلسل، ويمثل كل عمود معلومة معينة، مثل أمر ما، أو إعداد وضع، أو قراءة مستشعر. وقد نظم الباحثون بيانات الاختبار الخاصة بهم في تنسيق الشبكة هذا. كما استخرجوا ملخصاً للحالة التشغيلية للطائرة — مثل ما إذا كان النظام في وضع التجهيز، أو ما هو الوضع الذي يعمل فيه، أو ما إذا كانت هناك أعطال نشطة — وحولوها إلى متجه معلومات مدمج. ويعمل هذا المتجه كمجموعة من القواعد أو القيود لعملية التوليد، مما يضمن أن أي حالة اختبار جديدة يتم إنشاؤها تحترم الحالة الراهنة للنظام.
لتوليد حالات اختبار جديدة، يستخدم النظام بنية مكونة من جزأين. الجزء الأول هو "المشفر التلقائي التبايني" (variational autoencoder)، والذي يعمل كمولد للتنوع. فهو يتعلم الأنماط الكامنة لحالات الاختبار الناجحة من البيانات التي رآها. وبدلاً من مجرد نسخ الأمثلة القديمة، فإنه ينشئ فضاءً مستمراً من الاحتمالات حيث يمكنه أخذ عينات من التباينات الجديدة. ومن الأهمية بمكان أنه يقوم بذلك مع تثبيت متجه الحالة التشغيلية. وهذا يعني أنه يمكنه إنتاج العديد من الاختلافات الهيكلية المختلفة لحالة اختبار معينة، والتي تظل جميعها ضمن ظروف حالة محددة، مثل "في وضع التجهيز وفي وضع التحليق المستقر". وهذا يسمح للنظام باستكشاف مسارات عديدة دون كسر قواعد الحالة التي يتطلبها البرنامج عن طريق الخطأ.
أما الجزء الثاني من النظام فهو نموذج "ترانسفورمر" (Transformer)، وهو نوع من الشبكات العصبية المعروف بقدرته على فهم العلاقات بين الأجزاء المختلفة من التسلسل. وفي هذا السياق، ينظر النموذج إلى شبكة الأحداث والحقول بالكامل في آن واحد. فهو يفهم أن أمراً أُرسل في بداية تسلسل ما قد يحتاج إلى أن يكون متوافقاً مع علامة حالة (status flag) تم ضبطها في نهاية التسلسل. ويستخدم النظام آلية "بوابة" خاصة لدمج قيود الحالة من الجزء الأول مع التباينات المتنوعة من الجزء الثاني. وهذا يضمن أن المخرج النهائي هو حالة اختبار كاملة ومتماسكة، حيث يكون لكل حقل معنى بالنسبة للآخر وبالنسبة للحالة العامة. ويقوم النموذج بتوليد حالة الاختبار بأكملها بالتوازي، بدلاً من تخمين كل بايت على حدة، مما يساعد في الحفاظ على السلامة الهيكلية للبيانات.
قام الباحثون بتقييم منهجهم باستخدام وحدة "القائد" (commander module) لنظام التحكم في الطيران PX4، وهو نظام آلي طيران مفتوح المصدر واسع الاستخدام. وقارنوا نهجهم بـ "المُفحّص الموجه بالتغطية" (coverage-guided fuzzer) القياسي، الذي يعتمد على التحويرات العشوائية، وبنموذج "الشبكة التنافسية التوليدية" (GAN)، وهو نوع آخر من نماذج الذكاء الاصطناعي المستخدمة لتوليد البيانات. وأظهرت النتياج أن منهج (VAE-Transformer) تفوق باستمرار على الطرق الأخرى. ففي وحدة "القائد"، زاد من تغطية الحواف (edge coverage) بنحو 4.9 نقطة مئوية، وتغطية السطور (line coverage) بنحو 5.1 نقطة مئوية، وتغطية الفروع (branch coverage) بنحو 4.6 نقطة مئوية مقارنة بالمُفحّص القياسي. والأهم من ذلك، أنه وصل إلى هذه المستويات الأعلى من التغطية باستخدام جهد حاسوبي أقل بنسبة 9.6 بالمائة تقريباً، مقاساً بعدد مرات تنفيذ البرنامج.
ولم تقتصر هذه الميزة على وحدة واحدة؛ فقد اختبر الفريق النظام على ستة نماذج مختلفة من منطق التحكم، بما في ذلك إدارة المهمة، ومراقبة الحالة الصحية، وأنظمة التعافي من المخاطر. وعبر جميع النماذج الستة، اكتشف المنهج الجديد مسارات تنفيذ فريدة أكثر بكثير وغطى أسطر كود أكثر من طرق المقارنة. فعلى سبيل المثال، وجد في وحدة "مدير المهمة" 77 مساراً فريداً أكثر مما وجده أفضل منهج منافس. كما أظهر النظام قدرة أكثر اتساقاً على إيجاد مسارات جديدة بمرور الوقت، بينما كانت الطرق الأخرى غالباً ما تصل إلى مرحلة ثبات حيث تتوقف عن اكتشاف كود جديد. وأشار الباحثون إلى أن المنهج كان فعالاً بشكل خاص في التعامل مع تبعات الحالة المعقدة التي تميز برمجيات التحكم في الطيران، حيث يعتمد صلاحية مدخل ما على مزيج دقيق من التوقيت والقيم وحالات النظام.
تضمنت الدراسة أيضاً تجارب لتحديد الأجزاء الأكثر أهمية في النظام. فعندما قام الباحثون بإزالة "المشفر التلقائي التبايني" أو مكون "الترانسفورمر"، انخفض الأداء، مما يشير إلى أن كلا الجزأين ضروريان لتحقيق أفضل النتائج. وبالمثل، عندما استبدلوا آلية "البوابة التكيفية" بطرق أبسط لدمج المعلومات، أصبح النظام أقل كفاءة في إيجال مسارات جديدة. وهذا يشير إلى أن الطريقة المحددة التي يوازن بها النموذج بين قيود الحالة والتنوع العشوائي هي عامل رئيسي في نجاحه. وخلص الباحثون إلى أن نهجهم يقدم وسيلة قابلة للتطبيق لأتمتة اختبار البرمجيات عالية الموثوقية، مما يحسن كل من شمولية الاختبار وكفاءته.
وعلى الرغم من أن النتائج واعدة، إلا أن المؤلفين يقرون بأن منهجهم صُمم لمدخلات ذات طول ثابت وحدود حقول واضحة، وهو أمر شائع في العديد من أنظمة التحكم في الطيران ولكن ليس في جميعها. وهم يقترحون أن العمل المستقبلي سيحتاج إلى معالجة البروتوكولات ذات الطول المتغير وقيود التفاعل الأكثر تعقيداً. ومع ذلك، توضح الدراسة أنه من خلال الجمع بين فهم حالات النظام ونماذج توليدية متقدمة، يمكن إنشاء حالات اختبار أكثر فعالية في الكشف عن العيوب الخفية من الطرق العشوائية التقليدية. ويوفر هذا النهج أداة جديدة لضمان سلامة وموثوقية البرمجيات التي تحافظ على طيران الطائرات الحديثة.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.