مولّد انتقالات الحالات

تعمل في المتصفح تصميم الاختبارات

نمذج سير عمل (مثل الطلب: جديد ← مدفوع ← مشحون) وأنتج جدول الحالات وحالات اختبار لتغطية الانتقالات واختبارات سلبية (للانتقالات غير الصالحة) مع مخطط Mermaid.

الخصوصية: تعمل هذه الأداة بالكامل في متصفحك. لا تغادر بياناتك جهازك أبداً.
جارٍ تحميل الأداة…

ما هي تقنيات تصميم اختبارات الصندوق الأسود؟

تشتق تقنيات الصندوق الأسود حالات الاختبار من المواصفات دون قراءة الشيفرة: تقسيم التكافؤ يجمع المدخلات التي يُفترض أن تتصرف بالطريقة نفسها، وتحليل القيم الحدّية يختبر أطراف كل مجموعة (0 و1 والحد الأقصى والحد الأقصى+1)، وجداول القرار تعدّد تركيبات الشروط، واختبار انتقال الحالات يتتبع التغيرات المسموحة والممنوعة، والاختبار الزوجي يغطي كل زوج من قيم المعاملات بحالات أقل بكثير من الجداء الكامل.

اقرأ الدليل: كيف تكتب حالات الاختبار (Test Cases)

كيفية استخدام مولّد انتقالات الحالات

  1. اكتب انتقالاً واحداً في كل سطر؛ وتكون الحالة الأولى هي الحالة الابتدائية.
  2. اختر تغطية 0-switch أو 1-switch، وما إذا كنت تريد تضمين اختبارات الانتقالات غير الصالحة.
  3. ولّد للحصول على جدول الحالات ومخطط Mermaid وحالات الاختبار.

مزايا مولّد انتقالات الحالات

  • الانتقالات بصيغة "State --event--> State" مع شروط حراسة (guards) اختيارية
  • جدول الحالة × الحدث يعرض الأهداف الصالحة والتركيبات غير الصالحة
  • حالات اختبار لتغطية 0-switch و1-switch
  • اختبارات سلبية لكل انتقال غير صالح
  • تحذيرات للحالات التي لا يمكن الوصول إليها وغياب الحالة النهائية
  • نص Mermaid بصيغة stateDiagram-v2 للتوثيق

مثال على مولّد انتقالات الحالات

سير عمل الطلب

الإدخال:

New --pay--> Paid
Paid --ship--> Shipped
Shipped --deliver--> Delivered
New --cancel--> Cancelled

النتيجة:

ST-001  New —pay→ Paid                          positive
ST-005  New —pay→ Paid —ship→ Shipped           positive (1-switch)
ST-007  Invalid: "ship" while in New             negative

stateDiagram-v2
  [*] --> New
  New --> Paid: pay
  Paid --> Shipped: ship
سير عمل الطلب مرسوماً: تختبر تغطية 0-switch كل سهم مرة واحدة، وتختبر 1-switch كل زوج من الأسهم المتتالية.
الانتقالات
#منإلىالحدث · اختبار 0-switch
1NewالبدايةPaidpay · ST-001
2PaidShippedship · ST-002
3ShippedDeliveredالنهايةdeliver · ST-003
4NewالبدايةCancelledالنهايةcancel · ST-004

مع الإعدادات الافتراضية للأداة، يضيف 1-switch الاختبارين ST-005 New → Paid → Shipped وST-006 Paid → Shipped → Delivered؛ والتركيبات الـ16 للحالة × الحدث التي ليس لها سهم اختبارات انتقالات غير صالحة، بدءاً من ST-007.

الأسئلة الشائعة حول مولّد انتقالات الحالات

كيف أكتب الانتقالات؟

انتقال واحد في كل سطر بصيغة "State --event--> State". وتوضع شروط الحراسة بين قوسين معقوفين ("Delivered --return [within 14 days]--> Returned"). وتكون أول حالة مذكورة هي الحالة الابتدائية.

ما تغطية 0-switch و1-switch؟

تختبر تغطية 0-switch كل انتقال منفرد. وتختبر تغطية 1-switch كل زوج صالح من الانتقالات المتتالية، مما يكشف الأخطاء التي لا تظهر إلا بعد تسلسل معيّن.

ما اختبارات الانتقالات غير الصالحة؟

لكل تركيبة حالة × حدث ليس لها انتقال معرَّف، يتحقق اختبار سلبي من رفض الحدث وعدم تغيّر الحالة — وهو المصدر الأكثر شيوعاً لأخطاء سير العمل.

ماذا يمكنني أن أفعل بمخطط Mermaid؟

الصقه في GitHub أو GitLab أو Notion أو Obsidian أو mermaid.live لعرض مخطط الحالات للمراجعات والتوثيق.

المراجع