بث مباشر 18.11 · الدفعة 318 نوفمبر، 19:00 بتوقيت موسكو — ورشة عملية مجانية لوكلاء الذكاء الاصطناعي · الدفعة 3 تبدأ 23.11ورشة 18 نوفمبر ←الدفعة 3 (23.11)
إصدارAPI / منتج · جاهز للعملHabr AI→ المصدر

مهندسو الجودة في SpaceWeb كلّفوا الذكاء الاصطناعي بكتابة الاختبارات الآلية: سكربت عملي في 50 دقيقة

دمج فريق ضمان الجودة في SpaceWeb الذكاء الاصطناعي في عملية الاختبار ليرى أين يوفّر الوقت وأين يقدّم كلاماً منمقاً بلا قيمة. يعمل الوكيل على نموذج محلي هو Qwen3.8-27B حتى لا تغادر البيانات الحساسة بيئة الشركة. أُنجزت حالات الاختبار وملفات JSON لواجهة API بسرعة، وبُني اختبار آلي لواجهة المستخدم بـ Pytest وSelenium في أقل من ساعة. لكن المحدّدات (selectors) والسلوك المتوقع يصححهما الإنسان في النهاية.

معالج بواسطة الذكاء الاصطناعي من Habr AI؛ بتحرير Hamidun News
مهندسو الجودة في SpaceWeb كلّفوا الذكاء الاصطناعي بكتابة الاختبارات الآلية: سكربت عملي في 50 دقيقة
المصدر: Habr AI. كولاج: Hamidun News.
استمع للمقال
بطاقة الحقائق والأرقام
المعيارالتفاصيل
المصدر الأصليHabr AI ↗
رئيس التحرير
حقيقة رئيسية #1الصياغة الأولية للتعليمات (prompt) والبحث عن المحدّدات — 30 دقيقة، وتصحيح الأخطاء — 20 دقيقة أخرى
حقيقة رئيسية #2يعدّ الذكاء الاصطناعي حالات الاختبار وقوائم المراجعة وملفات JSON التجريبية كمسودة، ويكملها مهندس الجودة
حقيقة رئيسية #3لفحوص IDOR اقترح الذكاء الاصطناعي تجربة قيم service_ref بالتتابع عبر Requests

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

ثلاث مهام للذكاء الاصطناعي وخيار واحد مهم

لم يحاول الفريق أتمتة كل شيء دفعة واحدة. اختاروا ثلاثة اتجاهات: وثائق الاختبار والبيانات (فحوص إيجابية وسلبية وحدّية، وخطط اختبار، وقوائم مراجعة)، وسكربتات الأتمتة، وتوسيع فحوص الأمان وواجهات API. المبدأ بسيط: الذكاء الاصطناعي يعدّ المسودة، والمختبِر يقرؤها ويكملها ويصحح أخطاءها.

أهم خيار عملي يتعلق بالبيانات. فبسبب حساسية المعلومات رُبط الوكيل بنموذج محلي هو Qwen3.8-27B. واستُخدم مساعد داخلي للوثائق والكود، وجرى كل شيء على الحزمة التقنية المعتادة: Postman وPython وPytest وSelenium. وإذا كنت تعمل بكود مغلق ومخططات API داخلية، فلا حاجة بالضرورة إلى سحابة خارجية لهذا النوع من العمل.

وفي حالة النماذج (forms) يبدو الأمر هكذا: تُحمَّل في النموذج الشروط المسبقة ومتطلبات إلزامية الحقول والتحقق منها، فيعيد جدولاً بالفحوص الإيجابية ثم السلبية. وللتكامل مع GitHub/GitLab أبرز الذكاء الاصطناعي إضافة إلى ذلك أكثر السيناريوهات حرجاً. أما بالنسبة لواجهة API فقد أُعطي الوكيل مثالاً على JSON صالح لإنشاء خادم VPS وطُلب منه إعداد البيانات: طلبات دنيا ومرجعية، وقيم حدّية، ونطاقات بحروف كيريلية، ورموز خاصة، وحالات غير صالحة مثل إنشاء خادم في منطقة غير موجودة.

ومع ذلك ينبغي قراءة النتيجة بعناية. ففي أحد الأمثلة وُصف اسم المضيف بأنه «63 حرفاً بالضبط»، لكن السلسلة أطول بوضوح، وتسلّلت مسافة إلى عنوان IPv6. وقد يكون ذلك مقصوداً في اختبار حدّي، لكن الأوثق مطابقة هذه الأمور يدوياً.

اختبار آلي في أقل من ساعة

أكثر الحالات دلالة هي أتمتة إنشاء صندوق بريد في لوحة الاستضافة. التعليمات (prompt) مكتوبة خطوة بخطوة وتتضمن كل ما يعرفه الشخص أمام الشاشة: Pytest وSelenium وChrome والمصادقة من conftest.py والمحدّدات الدقيقة وقواعد كلمة المرور (8–20 حرفاً، حروف وأرقام ورموز خاصة) وإعادة التوجيه المتوقعة إلى صفحة review. وأخرج النموذج ملف test_mail_add.py جاهزاً مع تعليقات وانتظارات صريحة عبر WebDriverWait وفحوص للنتيجة.

ثم زادوا المهمة تعقيداً وطلبوا جعل الاختبار معمَّماً (parametrized) لأسماء صناديق مختلفة. فنتج اختباران: test_create_valid_mail_box وtest_reject_invalid_mail_box. تفحص المجموعات الإيجابية طولي 1 و64 حرفاً والرموز الخاصة والأرقام. وتفحص السلبية الأحرف الكبيرة والمسافات والشرطة المائلة والطول 65. وإذا فشلت حالة واحدة يظهر فوراً أي سيناريو انكسر.

من حيث الوقت: استغرق نحو 30 دقيقة لصياغة التعليمات والبحث عن المحدّدات، و20 دقيقة أخرى لتصحيح الأخطاء. ليست المسألة «ضغطة زر وانتهى»، لكن النتيجة جيدة لهيكل روتيني.

وتظهر القيود أيضاً في الكود. ففي الاختبار السلبي لم يكن الذكاء الاصطناعي يعرف كيف يستجيب النظام للخطأ، فاقترح خيارين: إما أن تعرض الواجهة الأمامية خطأ، وإما أن يُرسَل النموذج دون إعادة توجيه. وبقي الخيار الثاني معلّقاً كتعليق في الكود، واضطر الإنسان إلى توضيح السلوك. وإضافة إلى ذلك، في الاختبار الإيجابي تُضاف لاحقة عشوائية للأسماء التي لا تنتهي برقم. وبسببها تتحول حالة «64 حرفاً بالضبط» إلى اسم أطول من الحد، أي أن الفحص الحدّي ينكسر عملياً. ولا يلتقط هذه الأمور سوى المراجعة.

IDOR: بداية موجودة ونتائج لم تظهر بعد

تتعلق الحالة الثالثة بأمان API. كان المطلوب فحص IDOR في الأسلوب edit (JSON-RPC): الحقل service_ref معرّف مباشر للكائن، ويجب على الخادم التحقق من امتلاك المستخدم صلاحية الوصول إليه. اقترح الوكيل فوراً فحصاً أساسياً: إرسال الطلب نفسه مع service_ref لمستخدم آخر. ثم طلب الفريق كتابة سكربت بـ Requests يمر على القيم من ملف TXT يحوي معرّفات خدمات الغير.

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

ما الذي يمكن تطبيقه عملياً

  • زوّدوا النموذج بسياق منظَّم: الشروط المسبقة ومخطط الأسلوب ومثال JSON صالح ومحدّدات محددة. تعتمد جودة النتيجة على التعليمات (prompt).
  • تعاملوا مع المخرجات كمسودة. تحققوا من حدود القيم والسلوك المتوقع عند الأخطاء والمحدّدات (locators).
  • للبيانات الحساسة انشروا نموذجاً محلياً: أظهرت SpaceWeb أن سيناريو عملياً ممكن معه أيضاً.
  • ابدؤوا بالروتين: حالات الاختبار وبيانات الاختبار وهياكل اختبارات واجهة المستخدم. فهناك يكون التوفير أوضح.

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

القصة

أسئلة وأجوبة حول الخبر

ما أبرز التفاصيل حول ثلاث مهام للذكاء الاصطناعي وخيار واحد مهم؟

لم يحاول الفريق أتمتة كل شيء دفعة واحدة. اختاروا ثلاثة اتجاهات: وثائق الاختبار والبيانات (فحوص إيجابية وسلبية وحدّية، وخطط اختبار، وقوائم مراجعة)، وسكربتات الأتمتة، وتوسيع فحوص الأمان وواجهات API. المبدأ بسيط: الذكاء الاصطناعي يعدّ المسودة، والمختبِر يقرؤها ويكملها ويصحح أخطاءها. أهم خيار عملي يتعلق بالبيانات. فبسبب حساسية المعلومات رُبط الوكيل بنموذج محلي هو Qwen3.8-27B. واستُخدم مساعد داخلي للوثائق والكود، وجرى كل شيء على الحزمة التقنية المعتادة: Postman وPython وPytest وSelenium.

ما أبرز التفاصيل حول اختبار آلي في أقل من ساعة؟

أكثر الحالات دلالة هي أتمتة إنشاء صندوق بريد في لوحة الاستضافة. التعليمات (prompt) مكتوبة خطوة بخطوة وتتضمن كل ما يعرفه الشخص أمام الشاشة: Pytest وSelenium وChrome والمصادقة من conftest.py والمحدّدات الدقيقة وقواعد كلمة المرور (8–20 حرفاً، حروف وأرقام ورموز خاصة) وإعادة التوجيه المتوقعة إلى صفحة review. وأخرج النموذج ملف test_mail_add.py جاهزاً مع تعليقات وانتظارات صريحة عبر WebDriverWait وفحوص للنتيجة. ثم زادوا المهمة تعقيداً وطلبوا جعل الاختبار معمَّماً (parametrized) لأسماء صناديق مختلفة.

ما أبرز التفاصيل حول IDOR: بداية موجودة ونتائج لم تظهر بعد؟

تتعلق الحالة الثالثة بأمان API. كان المطلوب فحص IDOR في الأسلوب edit (JSON-RPC): الحقل service_ref معرّف مباشر للكائن، ويجب على الخادم التحقق من امتلاك المستخدم صلاحية الوصول إليه. اقترح الوكيل فوراً فحصاً أساسياً: إرسال الطلب نفسه مع service_ref لمستخدم آخر. ثم طلب الفريق كتابة سكربت بـ Requests يمر على القيم من ملف TXT يحوي معرّفات خدمات الغير. في الجزء المتاح من المنشور ينقطع النص عند هذه الخطوة، لذا لا توجد هنا نتائج نهائية بشأن IDOR.

ZK
جمال حميدون — مدير المنتجات في Alpina Digital ومدير منتج AlpinaGPT. يبني منتجات الذكاء الاصطناعي منذ 2019. بدأ Hamidun News كمشروع شخصي ثم أصبح مُجمِّعًا إنتاجيًا بأكثر من 6000 قارئ.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
ما رأيك؟
جارٍ تحميل التعليقات…