كُتبت هذه الصفحة في الأصل باللغة الإنجليزية. الترجمات مدعومة بالذكاء الاصطناعي ولا تزال قيد التحسين —أخبرناإذا وجدت شيئاً غير دقيق.
Integration Testing هو الجزء الذي لا تستطيع AI تخطِّيه نيابةً عنك
tech

Integration Testing هو الجزء الذي لا تستطيع AI تخطِّيه نيابةً عنك

April 19, 2026 بواسطة The Salty Korean 3 دقيقة قراءة

المنصة تعمل. End-to-end، طوال الطريق: log in، تصفُّح اللوبي، الجلوس على طاولة، رؤية المقاعد، فتح dialog الـ buy-in، مراقبة يد واحدة.

الوصول إلى هنا تطلَّب أربعة منشورات. باغ في الـ routing، وعدم تطابق في تنسيق البيانات، وauth guard معطَّل، وبيئة تطوير كانت تتجاهل تغييرات الكود في صمت.

وتطلَّب أيضاً integration testing. وهو موضوع هذا المنشور.

كيف بدت مرحلة الاختبار

اختبرنا باستخدام Playwright — أداة لأتمتة المتصفح تكتب نصوصاً برمجية لتفاعلات حقيقية مع المتصفح وتتحقَّق من النتائج. متصفح حقيقي. طلبات حقيقية. واجهة UI حقيقية مرسومة.

الجلسة: log in ببيانات اختبار، الوصول إلى اللوبي، التأكُّد من أن كروت الطاولات تُرسم بالارتفاع الصحيح، الانتقال إلى طاولة، التأكُّد من ظهور شريط header مع زر lobby وزر help، التأكُّد من أن seat picker يرسم كل المقاعد المفتوحة.

كل خطوة فشلت في أول تشغيل.

كروت الطاولات كانت بارتفاع 572 بكسل لأن CSS Grid يطبِّق align-items: stretch افتراضياً عندما يكون هناك عنصر واحد فقط في الصف. لم يحدِّد أحدٌ هذا. ولم يكسره أحدٌ عمداً. هذا ببساطة ما يفعله CSS.

الانتقال إلى طاولة كان يُدخل المتصفح في حلقة redirect. الـ auth guard كان يفحص قيمة context للـ router لم تُملأ مطلقاً.

هذه ليست أنماط فشل خاصة بـ AI. هذه فئة من الباغات لا تظهر إلا عندما يعمل الـ stack بالكامل معاً. كانت ستظهر أيضاً في كود كتبه بشر. ومرحلة الاختبار تلتقطها في كلتا الحالتين.

لماذا لا يزال الكود الذي ولَّدته AI يحتاج هذا

هناك نسخة من التطوير المدعوم بالـ AI تتعامل مع الاختبار باعتباره اختيارياً. منطقها: الـ spec صحيح، والـ agent يطبِّق الـ spec، وبالتالي فالتطبيق صحيح.

هذا المنطق ينهار عند طبقة التكامل.

كل مكوِّن على حدة يمكن أن يطبِّق الـ spec الخاص به بشكل صحيح، ومع ذلك يفشل في التواصل مع المكونات الأخرى. الـ spec يصف السلوك في حالة العزل. والـ integration testing يتحقَّق من السلوك في حالة التركيب. ومواصفات بطول 100 صفحة تغطي كل مجال في النظام لا تصف رغم ذلك كل قيمة افتراضية لـ CSS Grid وكل ترتيب لتهيئة context الـ router.

تشغيل الشيء هو الطريقة الوحيدة لرؤية كيف يبدو تشغيل الشيء.

ما يفعله الإنسان لا يزال

كل فشل في جلسة الاختبار حدَّده شخصٌ يراقب متصفحاً. كرت الـ lobby يتمدَّد إلى الارتفاع الكامل — تلك ملاحظة بصرية، وليست مسجَّلة في log. الطاولة تُحمَّل فارغة — ذلك تطلَّب مراقبة طلبات الـ network وملاحظة الـ 404. حلقة الـ redirect تمَّ تتبُّعها باتباع سجل التنقُّل في المتصفح.

هذه الملاحظات تحدث قبل أن تنخرط الـ AI في التشخيص. الـ agent يستطيع تتبُّع باغ وصفته أنت. والوصف يتطلَّب إنساناً يفهم كيف يُفترض أن يبدو السلوك.

هذا ليس قصوراً في المنهجية. هذا هو شكل المنهجية وهي تعمل بشكل صحيح. الإنسان يحدِّد النظام، ويتحقَّق من المخرجات، ويصعِّد الأعطال. الـ agent يشخِّص ويصلح. هذا التقسيم يصمد طوال مرحلة الاختبار.

أين نحن الآن

بيئة الـ dev تجتاز end-to-end testing. المنصة جاهزة تشغيلياً. بين الآن وحتى open beta: تحقُّق نهائي على staging، وتكامل card payment processor، وتفعيل geofencing.

مرحلة الاختبار لم تنتهِ. لقد ارتفعت في الـ stack فقط.

salty.poker changelog يتحدَّث مع كل ما نطلقه. تابعه إن أردت تتبُّع البناء في الوقت الحقيقي.

للسلسلة الكاملة عن منهجية الهندسة — كيف يقود الـ spec الجلسات، وكيف يبدو دور المعماري عبر مرحلة الاختبار، وما الذي يعلِّمك إيَّاه ما يقارب 30 سنة من بناء البرمجيات حول التكرار — تلك السلسلة تجري بالتوازي على The Salty Korean.

Stay salty.

الوسوم: testing agentic-ai platform development integration
مشاركة:

The Salty Korean

مؤسس Salty Poker Network. يكتب عن بوكر تكساس وبناء المنصات ومستقبل البوكر عبر الإنترنت. اقرأ المزيد على The Salty Korean.