اختبار الذكاء الاصطناعي الآلي، المعنى الأول: ذكاء اصطناعي يؤتمت اختباراتك
تغطية مولَّدة من منتجك، وخطوات معبَّر عنها بوصفها نوايا حتى لا تكسرها التغييرات الشكلية، وإخفاقات تُعاد بصيغة يستطيع من يتولى الإصلاح الاستفادة منها. البرنامج الخاضع للاختبار عادي وحتمي؛ أما الذكاء الاصطناعي فموجود في الأدوات.
هذا ما تفعله معظم المنتجات في هذه الفئة، وهو ما تحتاجه معظم الفرق.
المعنى الثاني: اختبار نظام يحتوي على ذكاء اصطناعي
هنا يكون المنتج نفسه غير حتمي. فالمُدخَل ذاته يُنتج مخرجات مختلفة، ومن ثمّ يسقط أسلوب «المتوقع يساوي الفعلي» وتحتاج إلى نوع آخر من التوكيدات.
خصائص لا مساواة
تحقَّق من أن المُخرَج بالشكل الصحيح، وأنه يستشهد بمصدر، وأنه يلتزم بالطول المحدد، وأنه يرفض ما ينبغي رفضه.
توزيعات لا تشغيلات مفردة
التشغيل الواحد لا يكاد يخبرك بشيء. شغِّل مرات كثيرة وتتبَّع المعدل.
انحدار لا قيم مطلقة
السؤال هو هل جعل هذا التغيير الأمور أسوأ، لا هل النتيجة مثالية.
الخطأ المشترك بين الاثنين
افتراض أن نجاح الفحص يعني شيئًا دون التأكد أصلًا من أن هذا الفحص قادر على الإخفاق. في الحالة الحتمية ينتج عن ذلك مجموعات اختبار مليئة بتوكيدات لا يمكن أن تتحول إلى الأحمر أبدًا. وفي الحالة غير الحتمية ينتج عنه منظومات تقييم تمنح أي شيء درجة عالية.
اكسر شيئًا عن عمد. دقيقة واحدة، وهي الدليل الوحيد على أن أيًّا من نوعَي الفحص متصل فعلًا بما يزعم أنه يقيسه.
رسم الحد داخل منتج مختلط
معظم المنتجات التي تحتوي على ذكاء اصطناعي ليست في أغلبها ذكاءً اصطناعيًا، والخطوة المفيدة هي رسم الخط بوضوح بدل ترك اللاحتمية تنتشر.
كل ما يحيط بالميزة برمجيات عادية: المصادقة، والتخزين، وحدود المعدل، والواجهة التي تعرض المُخرَج. كل ذلك يُختبر بالطرق التقليدية، ومعاملة المنتج كله على أنه غير قابل للتنبؤ لأن أحد مكوناته كذلك تُفقدك قدرًا كبيرًا من التغطية الرخيصة والموثوقة.
وداخل هذا الحد، انتقل إلى الخصائص والمعدلات. يدخل المُدخَل، ويتغير المُخرَج، وما تتحقق منه هو أنه بالشكل الصحيح، وأنه يستشهد بشيء حقيقي، وأنه يرفض ما ينبغي رفضه. وتدوين موضع هذا الحد مرة واحدة هو ما يمنع الفريق من المبالغة في اختبار الأجزاء الحتمية بأساليب إحصائية، أو التقصير في اختبار جزء الذكاء الاصطناعي لأن التوكيدات الدقيقة ظلت تخفق.
أي الحالتين لديك
إذا كان منتجك يعطي الإجابة نفسها مرتين، فأنت في الحالة الأولى وتحتاج إلى تغطية مولَّدة تُنفَّذ على التطبيق العامل. وإن لم يكن كذلك، فأنت في الحالة الثانية وتحتاج إلى توكيدات قائمة على الخصائص وإلى معدلات بدل النجاح أو الإخفاق.
وكثير من المنتجات يجمع بين الاثنين: تطبيق حتمي بداخله ميزة ذكاء اصطناعي واحدة. اختبر الأجزاء الحتمية بالطريقة المعتادة، وعامل ميزة الذكاء الاصطناعي بوصفها مسألة قائمة بذاتها بدل مدّ أسلوب واحد ليغطي الاثنين.
الطرفية
npm install -g @testsprite/testsprite-cli
testsprite setup
وتغطي لوحة التحكم الأمر نفسه لمن لا يريد تثبيتًا محليًا، وتوجد مجموعة الأوامر الكاملة في مستودع CLI.
مساران، والاختيار بينهما يتعلق حقًا بمن يملك خط التسليم. فربط GitHub App من لوحة التحكم لا يتطلب أي تغيير في مستودعك على الإطلاق، لأنه يتفاعل مع النشر الذي تُصدره عملية البناء لديك بالفعل. وإضافة خطوة GitHub Actions تضع الفحص داخل المستودع حيث يخضع للمراجعة كبقية عملية البناء.
أي المعنيين يغطي TestSprite
الأول. فهو يستخدم الذكاء الاصطناعي للتحقق من البرمجيات العادية: تغطية مولَّدة من منتجك، وخطوات معبَّر عنها بوصفها نوايا، وتنفيذ على التطبيق المنشور، وإخفاق يُعاد بصيغة يستطيع وكيل برمجة التصرف بناءً عليها.
وبالنسبة لمنتج يحتوي على ميزة ذكاء اصطناعي، فهذا يغطي كل ما يحيط بها، وهو معظم المنتج: المصادقة، والتخزين، وتحديد المعدل، والواجهة، والمسارات التي يسلكها المستخدم فعليًا. وتتكفل Auto-Authentication وDynamic Variables وDependency Chains وAuto-Cleanup بمشكلات الحالة في جانب API.
أما الميزة نفسها فتحتاج إلى توكيدات قائمة على الخصائص وإلى معدلات، وهذه منظومة اختبار مختلفة. ورسم ذلك الحد بوضوح هو ما يتيح لك تغطية رخيصة وموثوقة للغالبية الحتمية بدل معاملة المنتج كله على أنه غير قابل للتنبؤ.
أيهما يفعل TestSprite؟
الأول. فهو يتحقق من سلوك التطبيق الحتمي على المنتج العامل، بما في ذلك التطبيقات التي تحتوي على ميزات ذكاء اصطناعي.
كيف نختبر ميزة تعتمد على نموذج لغوي كبير؟
توكيدات قائمة على الخصائص تُنفَّذ مرات كثيرة، مع تتبع المعدلات بدل النتائج المفردة. وعادةً ما يكون التحقق من الرفض والتنسيق ووجود الاستشهاد أيسر من التحقق من جودة الإجابة.
هل يمكن لمجموعة الاختبارات نفسها أن تغطي الاثنين؟
الأجزاء الحتمية، نعم. أما الميزة غير الحتمية فتحتاج إلى منظومتها الخاصة بمفهومها الخاص للنتيجة الناجحة.
ما معدل النجاح المعقول لميزة ذكاء اصطناعي؟
أيًّا كان معدلك السابق. فالأهداف المطلقة المستعارة من معايير القياس نادرًا ما تنتقل إلى منتجك.
هل يُعدّ تشغيل فاشل واحد خللًا؟
ليس بمفرده في ميزة غير حتمية. المؤشر هو معدل تغيّر؛ أما التشغيل الواحد فضجيج.
موضوعان وعبارة واحدة.
يعني اختبار الذكاء الاصطناعي الآلي إما ذكاءً اصطناعيًا يختبر برمجياتك، وإما اختبار برمجيات تحتوي على ذكاء اصطناعي. الأول يتطلب تغطية مولَّدة تُنفَّذ على التطبيق العامل، والثاني يتطلب خصائص ومعدلات. وكلاهما يحتاج إلى فحوص تأكدت من قدرتها على الإخفاق.