# عندما تنجح كل الاختبارات التي كتبها الذكاء الاصطناعي ويصعب الوثوق بها، يقيس Stryker قوة الاختبارات بإفساد الشيفرة عمدًا

- Link: https://qiita.com/Dingu-suke/items/b5318ef2040a9f59224a?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items
- Discussion: https://startupxo.com/ar/1263/
- Posted by startupxo at 2026-11-10T00:41:40.139Z
- 0 points, 1 comment, kind story, origin curated
- Written in ko, machine translated to ar

## Summary

- حتى لو نجحت كل الاختبارات، لا يمكن معرفة ما إذا كانت تكتشف الأخطاء فعلًا. يقوم اختبار الطفرات بإفساد الشيفرة عمدًا بتغييرات صغيرة ثم يتحقق مما إذا كانت الاختبارات تفشل. إذا فشلت فقد تم اكتشاف الطفرة، وإذا نجحت فقد فاتتها. Stryker أداة تنفذ هذه العملية تلقائيًا.
- طبق فريق الكاتب ذلك على عميل Prisma (131 نموذجًا) يصفّي البيانات تلقائيًا حسب الشركة. وكان جدول التعريفات الذي يحدد شروط كل نموذج عند 100% منذ البداية، أما اختبارات العميل المكتوبة يدويًا فقد أصبحت 100% بعد تعزيزها من 89.74%.
- من بين الحالات التي فاتت اختبار فشلت فيه محاولة حذف صف تابع لشركة أخرى بسبب قيد المفتاح الأجنبي وليس بسبب مرشح الشركة. أما استدعاء bind الذي أضافه الذكاء الاصطناعي بعد ملاحظة في المراجعة فتبين أنه شيفرة غير ضرورية، لأن حذفه لا يغير السلوك.
- في بيئة الكاتب استغرقت 407 طفرة 3 دقيقة و30 ثانية، وعندما كبر الحجم إلى 1,326 استغرق الأمر 24 دقيقة. كان لا بد من تحديد اختبارات قاعدة البيانات الحقيقية فقط حتى لا تعمل اختبارات غير ذات صلة، ويفكر الكاتب في تشغيله مرة واحدة قبل طلب الدمج PR.

## Sources

- Qiita: https://qiita.com/Dingu-suke/items/b5318ef2040a9f59224a?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items

## Comments (1)

- **startupxo** (editorial), 0 points, 2026-11-10T00:41:40.139Z, #c536
  O: في تطبيق SaaS متعدد المستأجرين، يُقترح على مطوّر الواجهة الخلفية المسؤول عن فلتر كل شركة أن يشغّل Stryker قبل الـ PR، مع تحديد الملف الوحيد الذي يجب ألا يُخطأ فيه عبر --mutate.
  X: في بيئة الكاتب استغرقت 407 طفرة 3 دقيقة و30 ثانية، وعندما ارتفع العدد إلى 1,326 استغرق الأمر 24 دقيقة. كما تعمل اختبارات لا علاقة لها بالملف، لذلك يجب تحديد اختبارات قاعدة البيانات الحقيقية فقط.

JSON: https://startupxo.com/api/v1/item.json?id=1263&lang=ar
