تطوير البرمجيات المدفوع بالاختبار باستخدام وكلاء الذكاء الاصطناعي

تطوير البرمجيات المدفوع بالاختبار باستخدام وكلاء الذكاء الاصطناعي

تعرّف على أفضل الممارسات لدمج TDD مع وكلاء البرمجة بالذكاء الاصطناعي مثل Windsurf وClaude 3.5 Sonnet لأتمتة وتبسيط عملية تطوير البرمجيات لديك.

ما هو TDD (تطوير البرمجيات المدفوع بالاختبار)؟

في جوهره، يدور TDD حول عملية دورية تُعرف باسم أحمر-أخضر-إعادة هيكلة (Red-Green-Refactor). تبدأ الدورة بمرحلة “الأحمر”، حيث يكتب المطور اختبارًا تلقائيًا يحدد ميزة أو سلوكًا مرغوبًا فيه. يُكتب هذا الاختبار بحيث يفشل في البداية لأن الكود المقابل لم يتم إنشاؤه بعد. هذا الفشل الأولي مهم جدًا، فهو يضمن أن الاختبار يختبر الوظيفة المقصودة فعلاً ويمكنه اكتشاف الأخطاء بعد تنفيذ الكود.

تشمل مرحلة “الأخضر” التالية كتابة الحد الأدنى من الكود اللازم لجعل الاختبار الفاشل ينجح. يشجع هذا المبدأ المطورين على التركيز على المتطلبات الفورية التي يحددها الاختبار، والحفاظ على قاعدة كود نظيفة، وتجنب المبالغة في التعقيد.

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

كيف تؤتمت خط تطوير TDD بالكامل؟

هناك العديد من العوامل التي تؤثر في أداء وكلاء الذكاء الاصطناعي أثناء البرمجة، من نموذج اللغة الكبير إلى كيفية تنظيم الكود وخط تطويرك. لقد وجدنا أن TDD فعال مع Windsurf مع Claude 3.5 Sonnet. فيما يلي مثال لمهمة تم تنفيذها باستخدام TDD.

ماذا تحتاج؟

قبل أن نبدأ في البرمجة، نحتاج إلى ما يلي:

اختبارات كافية

تأكد من أن لديك بالفعل اختبارات وفقًا لـ TDD، وأنها تغطي معظم نطاق مشكلتك الذي تعتقد أنه منطقي ومفيد لوكيل الذكاء الاصطناعي. لست بحاجة إلى تغيير أو تخصيص أي شيء من أجل وكيل الذكاء الاصطناعي. إذا كانت اختباراتك ونمط تسميتها مبنية على معيار معين فسيكون ذلك أفضل. كخطوة أولى، سيشاهد وكيل الذكاء الاصطناعي هذه الاختبارات لبدء التنفيذ.

إليك مثال على اختبار لديّ يختبر ما إذا تم إدراج مستند بشكل صحيح في MongoDB:

MongoDB test example

الواجهات (Interfaces)

الواجهة في جافا (أو أي لغة برمجة أخرى) هي بنية تحدد كيف يجب أن تبدو الكلاسات وما هي الدوال التي يجب أن تنفذها. لتوجيه وكيل الذكاء الاصطناعي بشكل أفضل، من المفيد إنشاء واجهة لمخزن البيانات (repository) الخاص بك لإدراج المستندات:

Java interface example Java interface code

وصف محدد للمهمة

أخيرًا، نحتاج إلى وصف محدد للمهمة. عادةً، يمكنك استخدام JIRA أو قضايا GitHub لتعريف المهمة. هذا هو وصفنا:

Task description screenshot

ابدأ Vibe Coding

Vibe Coding تعني أنك تصف ما تحتاجه باللغة الإنجليزية البسيطة (أو حتى أوامر صوتية)، ويقوم الذكاء الاصطناعي بإنشاء الكود لك في الوقت الفعلي. نتعمق أكثر في Vibe Coding في هذه المدونة. هذا هو الـ prompt الذي استخدمته في Windsurf لتنفيذ المهمة من أجلي:

Prompt example for Windsurf

نفذ الاستعلام التالي كمجموعة من استعلامات مسماة وكود جافا.

ابحث عن جميع السائقين الذين أكملوا ما لا يقل عن X رحلة بتقييم أعلى من 5 في نطاق تاريخ معين ولم يتلقوا مطلقًا تقييمًا أقل من 3 نجوم.

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

@Ass1_2_2Test.java#L35-60 هذه هي الاختبارات المقابلة. تم تنفيذها في @DriverDAO.java#L34-63

ذكر الملفات هو أهم جانب عند استخدام vibe coding. الآن اجلس وشاهد وكيل الذكاء الاصطناعي يؤدي سحره. لقد أنشأ الفئة، وشغّل الاختبارات، وكرر العملية حتى نجحت جميع الاختبارات:

AI Agent coding flow

الأسئلة الشائعة

ما هو تطوير البرمجيات المدفوع بالاختبار (TDD)؟

تطوير البرمجيات المدفوع بالاختبار (TDD) هو نهج لتطوير البرمجيات يتم فيه كتابة اختبارات تلقائية قبل الكود الفعلي. تتبع العملية دورة Red-Green-Refactor: كتابة اختبار يفشل (أحمر)، ثم كتابة كود ينجح في الاختبار (أخضر)، وأخيرًا إعادة هيكلة الكود مع الحفاظ على نجاح جميع الاختبارات.

كيف يمكن لوكلاء الذكاء الاصطناعي أتمتة عملية TDD؟

يمكن لوكلاء الذكاء الاصطناعي مثل Windsurf، خاصة عند دمجهم مع نماذج مثل Claude 3.5 Sonnet، أتمتة توليد الكود، وتشغيل الاختبارات، وإجراء التحسينات التكرارية، مما يجعل عملية TDD أسرع وأكثر كفاءة.

ما هي المتطلبات اللازمة لأتمتة TDD باستخدام وكلاء الذكاء الاصطناعي؟

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

ما هو Vibe Coding؟

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

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

ياشا بوروماند
ياشا بوروماند
المدير التقني، FlowHunt

عزّز تطويرك مع وكلاء الذكاء الاصطناعي

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

اعرف المزيد

التحقق المتقاطع
التحقق المتقاطع

التحقق المتقاطع

التحقق المتقاطع هو طريقة إحصائية تُستخدم لتقييم ومقارنة نماذج تعلم الآلة من خلال تقسيم البيانات إلى مجموعات تدريب وتحقق عدة مرات، مما يضمن تعميم النماذج بشكل جي...

5 دقيقة قراءة
AI Machine Learning +3
التعزيز التدرجي
التعزيز التدرجي

التعزيز التدرجي

التعزيز التدرجي هو تقنية تجميع قوية في تعلم الآلة تُستخدم للانحدار والتصنيف. يبني النماذج بشكل متسلسل، عادةً باستخدام أشجار القرار، من أجل تحسين التنبؤات، وزياد...

5 دقيقة قراءة
Gradient Boosting Machine Learning +4
عملية التفكير لدى DeepSeek R1 أثناء عمله كوكيل ذكاء اصطناعي
عملية التفكير لدى DeepSeek R1 أثناء عمله كوكيل ذكاء اصطناعي

عملية التفكير لدى DeepSeek R1 أثناء عمله كوكيل ذكاء اصطناعي

استكشِف القدرات المتقدمة لوكيل الذكاء الاصطناعي DeepSeek R1. يكشف هذا التحليل العميق كيف يتجاوز توليد النصوص، ويستعرض مهاراته في الاستدلال وحل المشكلات والإبداع...

8 دقيقة قراءة
AI DeepSeek R1 +5