يطلب مطور من مساعده كتابة دالة تتحقق مما إذا كان بإمكان المستخدم تنزيل تقرير. يتم تجميع الكود بنجاح، ويجتاز اختبار المسار السليم، ويبدو طلب الدمج منظمًا. بعد أسبوعين، يلاحظ زميل أن الدالة تتحقق من تسجيل دخول المستخدم، لكنها لا تتحقق أبدًا من أن التقرير يخصه.
هذا سيناريو توضيحي، وليس حادثة موثقة. يصف هذا السيناريو الفجوة التي يجب أن يسدها تدريب مراجعة التعليمات البرمجية المُولَّدة بواسطة الذكاء الاصطناعي: فالتعليمات البرمجية المُولَّدة التي تجتاز فحصًا أساسيًا قد تحتوي على خلل في الصلاحيات أو التزامن، ويحتاج الشخص الذي يراجعها إلى اكتشاف هذا الخلل وتوضيح أهميته.
هذا الدليل مُخصّص لقادة تمكين الهندسة ومديري الهندسة. يُغطي كيفية وصف مشكلة الأداء، وتشخيص الثغرات، وإعداد التصميم والممارسة، ودراسة حالة عملية، وتقييم مدى قابلية تطبيق المهارات في المراجعات الفعلية. يتناول الدليل تصميم التدريب. يجب التحقق من صحة كل قاعدة من قواعد العيوب والاختبارات والمراجعات في برنامجك من قِبل كبار المهندسين وفريق الأمن لديك.
ما هو التدريب على مراجعة التعليمات البرمجية باستخدام الذكاء الاصطناعي؟
يُعلّم التدريب على مراجعة التعليمات البرمجية المُولّدة بالذكاء الاصطناعي المطورين كيفية توجيه المساعد بوضوح، ثم تقييم ومراجعة ما يُعاد: هل هو صحيح، هل هو آمن، هل يعمل بشكل جيد في ظل الأحمال المتزامنة، هل هو فعال بما فيه الكفاية؟ إنه ليس دورة تدريبية على أداة معينة، بل يُرسّخ عادة مراجعة تبقى ثابتة حتى مع تغيير الأداة.
حقائق سريعة
| سؤال | اجابة قصيرة |
|---|---|
| ما هي المهمة؟ | قم بمراجعة الكود الناتج وتحقق من كل خطر من خلال اختبار. |
| ما هي نتيجتك؟ | التحقق من الجودة وما إذا تم العثور على العيوب ذات الصلة. |
| هل يكفي إجراء اختبار قصير حول قواعد البرمجة الآمنة؟ | لا. إنه يؤكد المتطلبات الأساسية، ولكنه لا يؤكد ما إذا كان بإمكان المطور اكتشاف خلل في الكود يبدو معقولاً. |
| من الذي يتحقق من صحة المحتوى؟ | مدير هندسي وفريق الأمن الخاص بك. |
| ما الذي لا يستطيع التدريب إصلاحه؟ | مراجعة الوقت، والأدوات، وعدم وضوح الملكية، والضغط من أجل الاندماج بسرعة. |
| كيف عرفت أنها نجحت؟ | تمرين برمجي جديد وغير مسبوق، يتم تقييمه وفقًا لمعايير متفق عليها، مع متابعة للمراجعات الحقيقية. |
1. صف مشكلة الأداء
ابدأ بالمهمة: تدقيق الكود المُولّد وتأكيد المخاطر بالاختبارات. التدقيق هو قراءة الكود بحذر. أما التأكيد فهو تحويل هذا الحذر إلى دليل، عادةً ما يكون اختبارًا فاشلاً أو نموذجًا يُظهر الخلل.
تشير الأبحاث إلى سبب الحاجة إلى ممارسة متعمدة. في دراسة أجراها بيرس وزملاؤه على منصة GitHub Copilot، قاموا بإنشاء 1,689 برنامجًا عبر 89 سيناريو تم اختيارها بناءً على أنواع نقاط الضعف المعروفة، ووجدوا أن حوالي 40% منها كانت عرضة للاختراق.بيرس وزملاؤه، 2021كانت تلك أداة مبكرة ومجموعة محددة من السيناريوهات، لذا لا تعتبر هذا الرقم معدلاً للمساعدين الحاليين. في دراسة مستخدمين منفصلة، طُلب من المشاركين كتابة التعليمات البرمجية باستخدام مساعد ذكاء اصطناعي وبدونه. أولئك الذين استخدموا المساعد كتبوا تعليمات برمجية أقل أمانًا بشكل ملحوظ، وكانوا أكثر عرضة للاعتقاد بأن تعليماتهم البرمجية آمنة.بيري وزملاؤه، 2023). ووجدت الدراسة نفسها أن المشاركين الذين وثقوا بالمساعد بشكل أقل وتفاعلوا بشكل أكبر مع توجيهاته أظهروا نقاط ضعف أقل.
فيما يلي درسان لتصميم التدريب: أولاً، يتطلب الحصول على نتائج معقولة وجود مُراجع نشط. ثانياً، الثقة ليست دليلاً، لذا يجب أن يطلب التمرين الاختبار، لا الرأي.
اكتب بيان الأداء في جملة واحدة واطلب من مدير الهندسة التحقق منه: "بالنظر إلى التغيير الذي تم إنشاؤه، يقوم المطور بإدراج مخاطر الأمان والتزامن والكفاءة التي يراها، ولكل منها يصف أو يكتب اختبارًا من شأنه أن يظهرها."
2. تشخيص فجوات التعلم والسياق
قبل البدء في أي مشروع، قارن المهمة بما يُدرَّس ويُقَيَّم في برنامجك الحالي. عادةً ما تُحدِّد ثلاثة أسئلة فجوة التدريب من أي مشكلة أخرى:
- هل تستخدم الممارسة الحالية المهمة الحقيقية؟ إذا اقتصر التدريب على كتابة التعليمات البرمجية دون مطالبة المطورين بمراجعة الناتج، فهذا يعني أن أحداً لم يمارس التدقيق. وإذا كان التقييم عبارة عن اختبار متعدد الخيارات حول قواعد البرمجة الآمنة، فإنه يقيس مدى استيعاب المعلومات.
- ما هو المطلب المعرفي؟ في تصنيف بلوم المُعدَّل، يقع تقييم سلامة الكود واختيار الاختبار الذي يُثبتها ضمن مستويي التحليل والتقييم، بينما يصل تصميم مُوجِّه أفضل أو إصلاح إلى مستوى الإنشاء. يُمكنكم الاطلاع على كيفية مُطابقة الأنشطة مع هذه المستويات في دليلنا الخاص بـ مطابقة أنشطة التعلم مع تصنيف بلوم.
- هل هناك شيء آخر غير المهارة يعيق الأمر؟ تحقق من وقت المراجعة، والأدوات المستخدمة، والمسؤولية. إذا كان لدى المراجعين خمس دقائق فقط لكل طلب سحب، فلن يُسفر التدريب عن تدقيق. في حال عدم وجود تحليل ثابت أو بيئة اختبار في مسار العمل، قد يكتشف المطور خطرًا ما، لكنه لن يتمكن من إثباته. أبلغ عن الأسباب غير المتعلقة بالتدريب للأشخاص القادرين على حلها.
3. إعداد التصميم والممارسة
بمجرد أن تعرف الثغرات التي يمكن للتدريب أن يسدها، امنح كل مرحلة مهمة مميزة.
التحضير. تحقق من المتطلبات الأساسية من خلال تشخيص موجز: فئات نقاط الضعف الشائعة التي تواجهها بنيتك البرمجية، وكيفية تنظيم اختباراتك، وقائمة مراجعة فريقك. الدراسة الذاتية مناسبة لهذه المرحلة. أما مراجعة المعلومات فتؤكد المتطلبات الأساسية فقط.
الممارسة. استخدم تمارين تدقيق مبنية على شفرة برمجية واقعية. أضف إلى كل تمرين عددًا قليلًا من العيوب المتنوعة، مثل عدم التحقق من ملكية البيانات، أو حدوث تضارب بين طلبين، أو حلقة تكرار غير فعالة، بالإضافة إلى جزء من الشفرة السليمة. يقوم المطور بمراجعة كل عيب، وتحديد خطورته، واقتراح الاختبار الذي يُظهره. اطلب منه شرحًا منطقيًا، لا مجرد قائمة بأرقام الأسطر.
ردود الفعل. اربط النتيجة بالقرارات بدلاً من النتيجة الإجمالية. فعبارة "لقد أشرتَ إلى الحلقة ولكن ليس إلى التزامن في العداد المشترك، ولم يكن اختبارك ليكتشفه لأنه يُنفّذ الطلبات واحدًا تلو الآخر" أكثر فائدة من عبارة "تم العثور على 2 من 3".
إدخال مباشر أم مراجعة غير متزامنة؟ تُضيف المدخلات المباشرة قيمةً كبيرةً عندما يكون الخطر غامضًا، ويتعلم المطورون من شرح مهندسٍ خبيرٍ لأسباب رفضه لعملية الدمج. يكفي إجراء مراجعة غير متزامنة لمقارنة نتائج المطور مع مراجعة خبير مُعلّقة. تستخدم العديد من الفرق كلا الأسلوبين: التحضير الذاتي أولًا، ثم جلسة مُيسّرة لمناقشة الحالات الصعبة.
4. قم بدراسة مثال واقعي
توضيحي. يجب على مدير الهندسة التحقق من صحة الحالة ومعايير الإجابة قبل الاستخدام.
القضية. تقوم نقطة النهاية المُنشأة بإرجاع فاتورة العميل باستخدام مُعرّف الفاتورة. وتتحقق من أن المُستدعي لديه جلسة صالحة، وتستخدم استعلامًا مُعاملًا، وتجتاز الاختبار الأساسي. وتُزيد نفس الوظيفة عداد التنزيلات المُشترك دون الحاجة إلى قفل.
المهمة. يحدد المطور كل خطر يراه، ويصنفها ويصف الاختبار الذي من شأنه أن يثبت كل منها.
محاولة أولى. "يبدو الأمر جيدًا. الاستعلام مُعَلمٌّ بالمعاملات، وقد اجتاز الاختبار." اعتبر المطور اجتياز الاختبار دليلًا على صحة النتائج، ولم يسأل عما لا يغطيه الاختبار.
تلقي الملاحظات وإعادة المحاولة. يطلب المراجع من المطور تحديد ما يثبته فحص الجلسة وما لا يثبته. ويطلب منه إعادة المحاولة مراعاة عميلين مختلفين وطلبين متزامنين.
محاولة أقوى. يُثبت فحص الجلسة هوية المتصل، وليس أن الفاتورة تخصه. سأكتب اختبارًا يطلب فيه العميل (أ) رقم فاتورة العميل (ب) وأتوقع رفضه. يتم تحديث العداد تلقائيًا دون تزامن، لذا قد يؤدي طلبان في وقت واحد إلى فقدان التحديث. سأجري اختبارًا متزامنًا وأقارن العدد. الاستعلام نفسه مُعَلم، لذا لن أضيع وقتي فيه. لاحظ أن هذه الإجابة تُرتب المخاطر وتربط كلًا منها باختبار.
لماذا كل رد قابل للدفاع عنه أو غير مكتمل. قيّم كل محاولة وفقًا لمعايير معتمدة، لا وفقًا لتفضيلات المراجع. المحاولة الأولى تتبع نمطًا معينًا لكنها تغفل الأدلة. أما المحاولة الأقوى فهي محددة، ومرتبة حسب الأولوية، وقابلة للاختبار.
5. تقييم القدرات وتخطيط عملية النقل
يُعدّ الأداء في تمرين جديد لم يسبق للمتعلّم رؤيته دليلاً على كفاءته. ويشمل ذلك جودة التحقق من الدرجات وتحديد العيوب ذات الصلة. ويستخدم معيار تقييم بسيط مقياسًا من 0 إلى 2 لكل معيار.
| معيار | أدلة قابلة للملاحظة |
|---|---|
| تنفيذ المهمة | يقوم بمراجعة الكود المُنشأ وتسجيل الأدلة التي تدعم كل نتيجة. |
| منطق | يشرح القيود والبدائل وما لا يزال غير مؤكد، ويصنف المخاطر. |
| الحدود | يلتزم بقواعد مراجعة الفريق ويحيل الأمر إلى أخصائي أمن عندما يتجاوز الخطر نطاق اختصاصه. |
المعايير: 0 تعني غياب أو عدم وجود دعم، 1 تعني وجود نقص جزئي مع وجود ثغرات ذات صلة، و2 تعني اكتمال وتبرير وفقًا للمعايير المتفق عليها. حدد الأخطاء الحرجة بشكل منفصل، مثل الموافقة على كود يحتوي على مسار وصول غير محمي، حتى لا تخفي الدرجة الإجمالية أي خطأ. هذا المعيار هو مجرد اقتراح، وليس معيار جاهزية معتمدًا: قم بتكييفه مع مدير هندسي وجرّبه. دليلنا لـ تصميم تمارين تفاعلية مع تقديم ملاحظات مفيدة يوضح كيفية كتابة التعليقات التي ترتبط بالقرارات.
خطط لنقل التغييرات بعناية. بعد التمرين، قم بربط كل مطور بطلب سحب حقيقي يتضمن الكود المُولّد، وراجعوا النتائج التي توصلوا إليها معًا، أو قم بإجراء مراجعة سريعة لمراجعة حديثة أغفلت شيئًا ما.
حيث يساعد التوصيل التفاعلي
تُساعد التنسيقات التفاعلية في الحالات التي يُطلب فيها من الجميع الالتزام قبل رؤية المجموعة. في جلسة مباشرة، يُمكن للمُيسِّر عرض مُقتطف برمجي مُولَّد، وطلب من كل مُطوِّر كتابة المخاطر التي يراها والاختبار الذي سيكتبه، ثم عرض النتائج قبل بدء المناقشة. يُمكن إجراء التمرين نفسه بوتيرة ذاتية للتحضير. يدعم AhaSlides التعلّم التفاعلي والتنقل بين العرض المباشر والعرض الذاتي. إنه أداة للعرض والتعلّم، وليس مكانًا لتشغيل التعليمات البرمجية، لذا قم بتشغيل تمارين التعليمات البرمجية في بيئتك الخاصة. تحقق من أي وظيفة مُحدَّدة للتأليف أو التعليقات أو إعداد التقارير التي تُخطط للاعتماد عليها مُقارنةً بسير عملك. للحصول على إرشادات حول اختيار التنسيقات، راجع مقالتنا حول متى يتم استخدام التعلم التكيفي والتفاعلي والمباشر؟.
قم بقياس ما تغير
حدد مسبقًا ما يُثبت قدرة المطورين على إنجاز المهمة. قارن جودة التحقق وتحديد العيوب في تمرين غير مُسبق مع خط أساس. حدد المشاركين، والمقام، والتوقيت. إذا تحسنت النتائج، تحقق من التغييرات الأخرى التي طرأت خلال نفس الفترة، مثل قاعدة تحليل ثابتة جديدة، أو قائمة مراجعة مُعدلة، أو تغيير المُساعد، قبل اعتماد التدريب.
القيود التي قد تبقى
- حان وقت المراجعة. تستغرق عملية التدقيق وقتاً أطول من عملية المسح السريع، وتدفع المواعيد النهائية نحو عملية المسح السريع.
- الأدوات. بدون وجود جهاز اختبار أو فحص في خط الإنتاج، يصعب إثبات وجود خطر.
- تغيير الأدوات. تتغير المساعدات بسرعة، لذا اجعل التمارين متعلقة بعادة المراجعة، وليس بمنتج واحد.
- تغطية القضية. يُظهر أحد التمارين بعض أنواع العيوب. ولا تعكس النتيجة تقييم المطور بشكل عام.
- تحويل. الأداء في ورشة العمل ليس هو نفسه الأداء في قائمة انتظار مراجعة مزدحمة.
أبلغوا الرعاة بهذه المشكلات مبكراً وخططوا لإصلاحها بشكل منفصل. التدريب يُحسّن ما يستطيع المطور اكتشافه وإثباته، لكنه لا يوفر الوقت أو الأدوات اللازمة.
الأسئلة المتكررة
ما هو التدريب على مراجعة التعليمات البرمجية باستخدام الذكاء الاصطناعي؟
يعلم هذا البرنامج المطورين كيفية توجيه وتقييم ومراجعة التعليمات البرمجية التي ينتجها مساعد الذكاء الاصطناعي، وإيجاد مشاكل الأمان والتزامن والكفاءة، ودعم كل منها باختبار.
هل الكود المُولّد أقل أمانًا من الكود البشري؟
تشير الدراسات إلى وجود مخاطر، لكن النتائج تعتمد على الأداة والمهمة وتصميم الدراسة. وجدت إحدى الدراسات التي أجريت على المستخدمين أن المشاركين الذين استعانوا بمساعد كتبوا شفرة برمجية أقل أمانًا وشعروا بثقة أكبر حيالها، وهذا سبب يدعو إلى تدريب عادة المراجعة.
كيف يمكنك تقييم ما إذا كان بإمكان المطورين مراجعة التعليمات البرمجية التي تم إنشاؤها؟
يُقدّم تمرين برمجي جديد، ويُقيّم الأداء بناءً على جودة النتائج وتحديد العيوب وفقًا للمعايير المتفق عليها. يُجرى اختبار قصير حول قواعد البرمجة الآمنة للتأكد من استيفاء المتطلبات الأساسية فقط.
هل تحتاج إلى بيئة اختبار برمجية للتدريب؟
تحتاج إلى مكان لإجراء التمارين، وعادةً ما يكون ذلك بيئتك الخاصة. تأكد من أن أي أداة تستخدمها تدعم احتياجاتك قبل الاعتماد عليها.
من أين أبدا
اختر نوعًا واحدًا من التغييرات المتكررة التي يتم إنشاؤها في قاعدة التعليمات البرمجية الخاصة بك. اكتب بيان الأداء، واطلب من مدير الهندسة التحقق من صحة العيوب المُدخلة والاختبارات التي من شأنها إظهارها، وقم بصياغة معيار تقييم من ثلاثة معايير بمقياس من 0 إلى 2 وقائمة بالأخطاء الحرجة. جربه مع مجموعة صغيرة قبل إطلاقه.
للاطلاع على كيفية إجراء عملية تدقيق مباشرة مع فريقك الخاص، وإعادة استخدامها بوتيرة ذاتية بعد ذلك، استكشف AhaSlides.








