كيفية استخدام مولّد الحالات الحدّية
- اذكر الحقول (تُستنتج الأنواع من أسماء مثل releaseDate أو attachment).
- أبقِ حالات التزامن مفعّلة للنماذج التي تنشئ سجلات أو تحدّثها.
- ولّد واستخدم جدول «الحالات الحدّية حسب الحقل» (Edge cases by field) كقائمة تحقق للمراجعة.
مزايا مولّد الحالات الحدّية
- قاعدة معرفة بالحالات الحدّية للسلاسل النصية والأرقام والتواريخ والملفات والقوائم والقيم المنطقية وenum والبريد الإلكتروني وعناوين URL والهواتف وكلمات المرور وUUID
- Unicode (العربية والديفاناغارية والرموز التعبيرية وNFC/NFD) والمسافات البيضاء وأحرف التحكم وحمولات الحقن
- فخاخ التقويم والمناطق الزمنية: الأيام الكبيسة والتوقيت الصيفي (DST) والإزاحات القصوى وبداية الحقبة (epoch) وعام 2038
- حالات التزامن والجلسات: الإرسال المزدوج، والتحديث المفقود، وعواصف إعادة المحاولة، وإعادة الإرسال بزر الرجوع
- تبيّن كل حالة القيمة وسبب أهميتها والسلوك المتوقّع
- تصدير بصيغة Markdown أو JSON أو CSV أو Gherkin
مثال على مولّد الحالات الحدّية
حالات حدّية لحقل تاريخ
الإدخال:
releaseDate: dateالنتيجة:
2024-02-29 Leap day Accepted
2023-02-29 Non-leap year 29 Feb Rejected
2100-02-29 Century non-leap year Rejected
23:59:59.999 End of day Belongs to the same day
DST switch day Missing/duplicate hour No duplicated or lost events
2038-01-19 Year-2038 32-bit overflow Handledالأسئلة الشائعة حول مولّد الحالات الحدّية
ما الحالات الحدّية الموجودة في قاعدة المعرفة؟
السلاسل النصية: فارغة، ومسافات بيضاء، وUnicode (العربية والديفاناغارية والرموز التعبيرية والتطبيع)، وأحرف التحكم، وحمولات الحقن، وحدود الطول. الأرقام: الصفر، والصفر السالب، والدقة، وتجاوز السعة، وNaN. التواريخ: الأيام الكبيسة، والتوقيت الصيفي، والإزاحات القصوى، وبداية الحقبة، وعام 2038. الملفات: حدود الحجم، والأنواع المزيّفة، واجتياز المسارات. القوائم: فارغة، وتكرارات، وتداخل. وللقيم المنطقية وenum والبريد الإلكتروني وعناوين URL والهواتف وكلمات المرور وUUID مجموعاتها الخاصة.
ما حالات التزامن؟
الإرسال المزدوج، والتعديلات المتزامنة، والحذف أثناء العرض، وإعادة المحاولة بعد انتهاء المهلة، والجلسات المنتهية، وإعادة الإرسال بزر الرجوع في المتصفح — وهي المصادر الكلاسيكية للسجلات المكرّرة والتحديثات المفقودة.
ما الفرق بين هذا وبين القيم الحدّية؟
القيم الحدّية (boundary values) هي الأطراف الرقمية لنطاق ما. أما الحالات الحدّية (edge cases) فتغطي كل ما عدا ذلك مما يميل إلى التعطّل: الترميزات والتقاويم والأحجام والتوقيت والخلط بين الأنواع.
هل يمكنني إضافة حالاتي الحدّية الخاصة؟
صدّر الحالات بصيغة CSV أو JSON وألحق بها الحالات الخاصة بمنتجك؛ تبقى المعرّفات مستقرة فتندمج المجموعات بسلاسة.