← أحدث الأبحاث
💻 computer science

LLM-Based Robustness Testing of Microservice Applications: An Empirical Study

تُظهر هذه الدراسة التجريبية أن استراتيجية التلقين تؤثر بشكل كبير على تنوع وتغطية اختبارات المتانة المولدة بواسطة النماذج اللغوية الكبيرة لواجهات برمجة تطبيقات الخدمات المصغرة، مما يكشف أن نهج التعلم من أمثلة قليلة الموجه بالتصنيف يتفوق على كل من مجموعات النماذج الأكبر واللقنات الثابتة في كشف أنماط الفشل المتميزة.

المؤلفون الأصليون: Hrushitha Goud Tigulla, Marco Vieira

نُشر 2026-05-15
📖 5 دقيقة قراءة🧠 قراءة متعمّقة

المؤلفون الأصليون: Hrushitha Goud Tigulla, Marco Vieira

البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل

تخيل أنك تملك مطعماً مزدحماً يحتوي على مطبخ (التطبيق الرئيسي) ومحطات متخصصة: ركن السلطات، الشواية، محطة المشروبات، والصراف. كل محطة هي عبارة عن "خدمة مصغرة" (microservice)، وهي تتواصل مع بعضها البعض لإتمام طلبك.

الآن، تخيل أنك تريد التأكد من أن مطعمك لن ينهار إذا قام أحد الزبائن بشيء غريب. ربما يحاول طلب سلطة بعدد أصناف سالب، أو يحاول الدفع دون بطاقة ائتمان، أو يرسل رسالة طويلة جداً بحيث يصعب قراءتها. هذا ما يسمى بـ اختبار المتانة (Robustness Testing): وهو محاولة تعمد كسر النظام باستخدام مدخلات "سيئة" لمعرفة أين سيفشل.

المشكلة هي أن البشر يتعبون. لا يمكننا التفكير في كل شيء غريب قد يفعله الزبون. لذا، تساءل الباحثون في هذه الورقة البحثية: هل يمكننا استخدام الذكاء الاصطناعي (تحديداً النماذج اللغوية الكبيرة أو LLMs) لابتكار هذه الاختبارات الغريبة من أجلنا؟

إليك ما وجدوه، مشروحاً ببساة:

1. الإعداد: طهاة الذكاء الاصطناعي

قام الباحثون بتوظيف ثلاثة "طهاة ذكاء اصطناعي" مختلفين (نماذج ذكاء اصطناي بأحجام وتخصصات مختلفة) لكتابة هذه الاختبارات. أعطوهم قائمة طعام المطعم (مواصفات الـ API) وطلبوا منهم إنشاء اختبارات.

لقد جربوا 7 طرق مختلفة لطرح الأسئلة (تسمى استراتيجيات التلقين/Prompt Strategies):

  • اللوح الفارغ: مجرد قول "اكتب بعض الاختبارات".
  • المدير الصارم: إعطاؤهم قائمة مراجعة تحدد بالضبط ما يجب اختباره.
  • المعلم: عرض أمثلة على اختبارات سيئة عليهم أولاً.
  • المفكر: طلب التفكير خطوة بخطوة قبل الكتابة.
  • الدليل الخبير: إعطاؤهم كتاب قواعد حول كيفية تعطل الأشياء، بالإضافة إلى أمثلة لمواقف معينة صعبة.

2. الاكتشاف الكبير: طريقة سؤالك أهم من هو الشخص الذي تسأله

كان الاكتشاف الأكثر إثارة للدهشة هو أن الطريقة التي تطرح بها السؤال تهم أكثر من نوع الذكاء الاصطناعي الذي تستخدمه.

  • فخ "المدير الصارم": عندما أعطوا الذكاء الاصطناعي قائمة مراجعة صارمة (التلقين "الهيكلي")، كتب الثلاثة نماذج نفس الاختبارات تماماً. كان الأمر كما لو كنت تعطي ثلاثة طهاة مختلفين نفس بطاقة الوصفة؛ فجميعهم صنعوا نفس الطبق تماماً. وهذا أمر سيء لأنه إذا كانت الوصفة تحتوي على ثغرة، فستفوتك تلك الثغرة.
  • نجاح "الدليل الخبير": عندما أعطوا الذكاء الاصطناعي كتاب قواعد بالإضافة إلى أمثلة واضحة لمواقف صعبة (مثل الفرق بين "مفتاح مفقود" و"مفتاح فارغ")، بدأ الذكاء الاصطناعي يفكر بشكل مختلف. لقد وجدوا أخطاء فريدة فات الآخرين.

التشبيه: تخيل أنك تبحث عن مفاتيح مفقودة في منزل.

  • إذا قلت لثلاثة أشخاص مختلفين: "ابحثوا في المطبخ"، فسيذهب الجميع للبحث في المطبخ. وإذا لم تكن المفاتيح هناك، فلن تجد شيئاً.
  • أما إذا قلت لهم: "ابحثوا في المطبخ، ولكن تحققوا أيضاً من الثلاجة، والمحمصة، وسرير القطة"، فسوف يتوزعون ويجدون أماكن أكثر.
  • وجدت الورقة أن تغيير كيفية توجيهك للذكاء الاصطناعي للبحث كان أكثر فعالية من توظيف ذكاء اصطناعي "أفضل".

3. مفارقة "متخصص الأكواد"

أحد نماذج الذكاء الاصطناعي كان "متخصص أكواد" (مدرب خصيصاً لكتابة البرمجيات). قد تعتقد أن هذا سيكون الأفضل في العثور على الأخطاء.

  • المشكلة: عندما طُلب منه فقط "نقد وتحسين" عمله الخاص (استراتيجية تسمى Self-Refine)، كتب هذا المتخصص أكواداً مثالية لكنها لم تتحقق في الواقع من وجود أخطاء. كان الأمر يشبه طباخاً صنع كعكة جميلة لكنه نسي تذوقها ليرى ما إذا كانت محترقة.
  • الحل: عندما أعطى الباحثون هذا المتخصص "الدليل الخبير" (كتاب القواعد مع الأمثلة)، أصبح فجأة الأفضل أداءً، حيث وجد أخطاء أكثر من أي مزيج آخر. لقد منحها كتاب القواعد "النية العدائية" (Adversarial Intent)—أي عقلية محاولة كسر الأشياء، وهو ما لم تمنحه إياه تدريبات الأكواد الخاصة به بمفرده.

4. مفاجأة "الصفرية" (Zero-Shot)

كانت هناك استراتيجية واحدة حيث لم يعطوا الذكاء الاصطناعي أي تعليمات على الإطلاق، فقط قائمة الطعام.

  • النتيجة: وجد هذا الذكاء الاصطناعي نوعاً معيناً من الأخطاء فات الآخرين: الأخطاء القائمة على الحالة (State-based bugs).
  • التشبيه: كان الذكال الاصطناعي الآخرون يركزون على "هل المكون طازج؟" (التحقق من البيانات). أما ذكاء الـ "Zero-Shot" فكان يفكر: "مهلاً، هل حاول الزبون طلب الحلوى قبل أن يطلب الطبق الرئيسي؟" (التحقق من التدفق).
  • الدرس: حتى الذكاء الاصطناعي "الغبي" أو غير الموجه يمكنه العثور على أخطاء منطقية غريبة يغفل عنها الذكاء الاصطناعي الموجه بدقة لأن الموجه يكون شديد التركيز على القواعد.

5. الارتباك بين "المفتاح الغائب" و"القيمة الفارغة"

تسلط الورقة الضوء على ارتباك محدد وقع فيه الذكاء الاصطناعي.

  • القاعدة: "إذا كانت القيمة مفقودة، اجعلها Null".
  • خطأ الذكاء الاصطناعي: فسر الذكاء الاصطناعي ذلك على أنه "اجعل القيمة نصاً فارغاً" (مثل name="").
  • الواقع: في الأنظمة الحاسوبية، name="" (فارغ) و name (مفقود تماماً) هما أمران مختلفان تماماً، ويكسران النظام بطرق مختلفة.
  • الحل: لم يستطع الذكاء الاصطناعي التمييز بينهما حتى أراهم الباحثون أمثلة ملموسة لكل منهما. وبمجرد رؤية الفرق، تمكنوا من اختبار كلا السيناريوهين.

ملخص النتائج المستخلصة

  • لا تكتفِ بتوظيف ذكاء اصطناعي أكبر: ذكاء اصطناعي أصغر مع تلقين (Prompt) أفضل يمكنه هزيمة ذكاء اصطناعي ضخم مع تلقين سيء.
  • لا تكن صارماً جداً: إذا أعطيت الذكاء الاصطناعي قائمة مراجعة جامدة، فسيقومون جميعاً بنفس الاختبارات تماماً. عليك أن تعطيهم قواعد ولكن تترك لهم مساحة للإبداع.
  • أرِهم، ولا تكتفِ بإخبارهم: إذا كنت تريد من الذكاء الاصطناعي فهم فرق دقيق (مثل "مفقود" مقابل "فارغ")، فعليك أن تريه مثالاً.
  • امزج استراتيجياتك: للعثور على أكبر عدد من الأخطاء، لا ينبغي أن تشغل اختباراً واحداً فقط. بل يجب أن تشغل مزيجاً: بعض الاختبارات الصارمة، وبعض الاختبارات الموجهة، وحتى بعض الاختبارات "العشوائية" بدون تعليمات.

باختصار، تثبت الورقة أن طريقة حديثك مع الذكاء الاصطنا هي "الخلطة السرية" للعثور على أخطاء البرمجيات، وليس مجرد حجم الذكاء الاصطناعي نفسه.

غارق في أبحاث مجالك؟

تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.

جرّب Digest →