ما هو الاختبار السلبي؟
يعطي الاختبار السلبي النظام مدخلاً ينبغي أن يرفضه — حقل مفقود، أو نوع خاطئ، أو قيمة خارج النطاق، أو ملف مشوّه، أو رمز منتهي الصلاحية، أو نقرة ثانية — ويتحقق من أنه يرفضه بنظافة: خطأ محدد، ولا تغيير في البيانات، ولا انهيار، ولا تسريب. تثبت الاختبارات الإيجابية أن الميزة تعمل؛ وتثبت الاختبارات السلبية أنها تفشل بأمان، وتثبت اختبارات الحالات الحدّية أنها تبقى سليمة السلوك في ظروف صالحة لكنها غير مألوفة — قيمة عند الحد تماماً، أو يوم 29 فبراير، أو نص من اليمين إلى اليسار، أو جلسة تنتهي في منتصف تعبئة النموذج. وفي هذه المسارات تعيش معظم حوادث الإنتاج ومعظم الاكتشافات الأمنية. ويعدّها منهج ISTQB جزءاً من تصميم الاختبارات الاعتيادي لا تخصصاً منفصلاً.
اقرأ الدليل: كيف تكتب حالات الاختبار (Test Cases)
كيفية استخدام مولّد اختبارات التحقق
- صف كل مدخل مع قيود التحقق الخاصة به، بواقع مدخل في كل سطر.
- استخدم أسماء طبيعية (confirmPassword وstartDate وendDate) حتى تُكتشف القواعد المشتركة بين الحقول.
- ولّد وقارن جدول القواعد بمواصفاتك.
- صدّر الحالات إلى أداة إدارة الاختبارات لديك.
مزايا مولّد اختبارات التحقق
- يكتشف قواعد الإلزامية والصيغة والنوع والنطاق والطول وعدد العناصر والملفات والنمط والقيم المسموح بها والتعقيد والتفرّد
- اختبار ناجح وآخر فاشل لكل قاعدة مع الرسالة المتوقّعة
- قواعد مشتركة بين الحقول: تأكيد كلمة المرور، وتأكيد البريد الإلكتروني، وترتيب تاريخي البداية والنهاية مع حالة تساوي التاريخين الحدّية
- حالة سهولة استخدام لكل حقل تتحقق من زوال الخطأ بعد التصحيح
- حالة حرجة تثبت أن التحقق من جانب الخادم لا يمكن تجاوزه
- جدول القواعد مع حالات مرقّمة قابلة للتصدير بصيغة Markdown أو JSON أو CSV أو Gherkin
مثال على مولّد اختبارات التحقق
قواعد التحقق لنموذج إعادة تعيين كلمة المرور
الإدخال:
password: password, required, min=10
confirmPassword: password, requiredالنتيجة:
password Required "" "Password is required"
password Complexity password "Password is too weak"
password Min length 9 chars "Password must be at least 10 characters"
VAL-013 ConfirmPassword must match password → "Passwords do not match"
VAL-014 Server-side validation cannot be bypassed → API responds 400/422الأسئلة الشائعة حول مولّد اختبارات التحقق
ما القواعد التي تُكتشف؟
الإلزامية، والنوع/الصيغة (البريد الإلكتروني وURL والهاتف والتاريخ وUUID)، والقيمة الدنيا/القصوى، والطول الأدنى/الأقصى، وعدد العناصر، وحجم الملف ونوعه، والنمط، والقيم المسموح بها، وتعقيد كلمة المرور، والتفرّد — ولكل منها مدخل ناجح وآخر فاشل مع الرسالة المتوقّعة.
هل القواعد المشتركة بين الحقول مدعومة؟
نعم: يجب أن يطابق confirmPassword حقل password، ولا يمكن أن يسبق تاريخ النهاية تاريخ البداية (مع حالة تساوي التاريخين الحدّية)، ويجب أن يطابق confirmEmail حقل email. سمِّ الحقول بأسماء طبيعية وستُلتقط القواعد تلقائياً.
لماذا توجد حالة لتجاوز التحقق من جانب الخادم؟
يمكن تعطيل التحقق في الواجهة الأمامية. ترسل الحالة الحرجة المولَّدة بيانات غير صالحة مباشرة إلى واجهة API وتتوقّع أخطاء الحقول نفسها.
هل يمكنني تغيير الرسائل المتوقّعة؟
تتبع الرسائل صياغة محايدة ("Email is required"). استبدلها في ملف CSV أو JSON المصدَّر بنصوص منتجك.
المراجع
- ISTQB Certified Tester Foundation Level (CTFL) v4.0المنهج التأسيسي لاختبار البرمجيات: مستويات الاختبار وأنواعه وتقنيات تصميم الاختبارات وإدارة الاختبار والأدوات.
- ISTQB Glossaryالتعريفات القياسية لمصطلحات الاختبار — حالة الاختبار واختبار الانحدار والخطورة والأولوية وتحليل القيم الحدّية وغيرها.
- OWASP Cheat Sheet Series: Input Validationالتحقق بقوائم السماح، والفرق بين الفحص النحوي والدلالي، ولماذا لا يُعدّ التحقق في المتصفح ضابطاً أمنياً أبداً.