يتطور تطوير البرمجيات بسرعة، خاصة في بيئات التسليم الرشيقة والمستمرة. تُصدر الفرق إصدارات متكررة، وتطبق إصلاحات سريعة، وتشحن تحديثات تدريجية. وفي هذا السياق، يلعب اختبار السلامة (Sanity Testing) دورًا حاسمًا في ضمان أن التغييرات الأخيرة لم تُعطّل الوظائف الأساسية للتطبيق.
تقدم هذه المقالة دليلاً تفصيليًا وعمليًا لاختبار السلامة، موضحًا ماهيته، ومتى يتم استخدامه، وكيف يتناسب مع دورة حياة الاختبار، وكيف يمكن للأدوات الحديثة مثل Apidog دعم اختبار السلامة للأنظمة التي تعتمد على واجهات برمجة التطبيقات (APIs).

ما هو اختبار السلامة (Sanity Testing)؟
اختبار السلامة (Sanity testing) هو نوع مركز من اختبارات البرمجيات يُجرى بعد تغييرات طفيفة في الكود، أو إصلاحات الأخطاء، أو تحديثات الإعدادات. والغرض منه هو التحقق بسرعة من أن وظائف محددة لا تزال تعمل كما هو متوقع وأن البناء مستقر بما يكفي لمزيد من الاختبارات.
على عكس أساليب الاختبار الشاملة، فإن اختبار السلامة يكون ضيقًا، وسطحيًا، وموجهًا. فهو يتحقق فقط من المناطق المتأثرة بدلاً من النظام بأكمله.
بكلمات بسيطة:
"هل هذا التغيير الصغير يتصرف بشكل صحيح، أم أنه عطل شيئًا حاسمًا؟"
اختبار السلامة مقابل اختبار الدخان (Smoke Testing)
غالبًا ما يخلط البعض بين اختبار السلامة واختبار الدخان. ورغم أنهما مرتبطان، إلا أنهما يخدمان أغراضًا مختلفة.
| الجانب | اختبار السلامة (Sanity Testing) | اختبار الدخان (Smoke Testing) |
|---|---|---|
| النطاق | ضيق ومركّز | واسع وسطحي |
| المحفز | بعد تغييرات طفيفة أو إصلاحات الأخطاء | بعد بناء جديد (New build) |
| الغرض | التحقق من صحة ميزات محددة | التحقق من استقرار البناء |
| العمق | أعمق من اختبار الدخان | أساسي جدًا |
| التنفيذ | عادة يدوي، وأحيانًا آلي | غالبًا ما يكون آليًا |
يتحقق اختبار الدخان مما إذا كان البناء قابلاً للاختبار. ويتحقق اختبار السلامة مما إذا كانت التغييرات الأخيرة منطقية.
متى يجب عليك إجراء اختبار السلامة؟
عادةً ما يُنفذ اختبار السلامة في السيناريوهات التالية:
- بعد تطبيق إصلاح خطأ
- بعد تحسين طفيف أو تعديل ميزة
- بعد تغييرات التكوين أو البيئة
- قبل إجراء اختبار الانحدار (Regression Testing)
- خلال خطوط أنابيب التكامل المستمر (Continuous Integration pipelines) للتحقق بسرعة من التصحيحات
إنه ذو قيمة خاصة عندما يكون الوقت محدودًا وتحتاج الفرق إلى ملاحظات سريعة قبل المضي قدمًا.
عملية اختبار السلامة
لا يتبع اختبار السلامة عملية ثقيلة ورسمية، ولكنه لا يزال يستفيد من الهيكلة.
سير عمل اختبار السلامة خطوة بخطوة
- تحديد الوحدات المتأثرة
ركز فقط على المناطق المتأثرة بالتغيير الأخير. - اختيار (تقييم) حالات الاختبار الهامة
اختر الاختبارات التي تتحقق من المنطق الأساسي والنتائج المتوقعة. - تنفيذ اختبارات السلامة
إجراء فحوصات يدوية أو آلية.
تحليل النتائج
- إذا اجتازت اختبارات السلامة ← المضي قدمًا في الاختبارات الأعمق
- إذا فشلت اختبارات السلامة ← رفض البناء وإصلاح المشكلات على الفور

مثال لسير العمل
تغيير الكود ← بناء تم إنشاؤه ← اختبار السلامة
← نجاح ← اختبار الانحدار / اختبار النظام
← فشل ← إصلاح وإعادة البناء
السمات الرئيسية لاختبار السلامة
يتميز اختبار السلامة بالعديد من الخصائص المحددة:
- مركّز: يستهدف فقط الوظائف المتأثرة
- سريع: يُنفذ في دقائق أو ساعات، وليس أيام
- غير شامل: لا يهدف إلى تغطية كاملة
- مدفوع بالتغيير: يُطلق بسبب تعديلات محددة
- غالبًا يدوي: على الرغم من إمكانية الأتمتة لواجهات برمجة التطبيقات (APIs) و CI/CD
تُجعل هذه السمات اختبار السلامة مثاليًا لدورات التطوير سريعة الوتيرة.
مثال على اختبار السلامة (من منظور وظيفي)
تخيل إصلاح خطأ في تسجيل الدخول حيث تم تصحيح منطق التحقق من كلمة المرور.
قد تتضمن حالات اختبار السلامة ما يلي:
✓ اسم مستخدم صالح + كلمة مرور صالحة ← نجاح تسجيل الدخول
✓ اسم مستخدم صالح + كلمة مرور غير صالحة ← عرض رسالة خطأ
✓ حساب مقفل ← تم رفض الوصول
لن تختبر ميزات غير ذات صلة مثل تحرير ملف تعريف المستخدم أو معالجة الدفع أثناء اختبار السلامة.
اختبار السلامة لواجهات برمجة التطبيقات (APIs)
في التطبيقات الحديثة، غالبًا ما تكون واجهات برمجة التطبيقات (APIs) هي أهم نقاط التكامل. يضمن اختبار السلامة لواجهات برمجة التطبيقات أن التغييرات الأخيرة في الواجهة الخلفية لم تعطل سلوك الطلب/الاستجابة.
مثال: اختبار السلامة لنقطة نهاية API
POST /api/login
Content-Type: application/json
{
"username": "test_user",
"password": "valid_password"
}
الاستجابة المتوقعة:
{
"status": "success",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
إذا تغيرت هذه الاستجابة بشكل غير متوقع بعد إصلاح، فإن اختبار السلامة سيكتشف ذلك مبكرًا.
مزايا اختبار السلامة
يقدم اختبار السلامة العديد من الفوائد العملية:
- يوفر الوقت عن طريق تجنب دورات الانحدار الكاملة غير الضرورية
- يوفر ملاحظات سريعة للمطورين
- يقلل من مخاطر نشر الإصدارات غير المستقرة
- يحسن الثقة في الإصدارات الثانوية
- يتناسب بشكل طبيعي مع سير عمل Agile و DevOps
قيود اختبار السلامة
على الرغم من قيمته، فإن اختبار السلامة له قيود:
- لا يوفر تغطية كاملة
- قد يفوت العيوب المخفية أو غير المباشرة
- يعتمد بشكل كبير على حكم المختبر
- لا يمكن أن يحل محل اختبار الانحدار أو اختبار النظام
لهذا السبب، يجب اعتبار اختبار السلامة بوابًا، وليس ضمانًا نهائيًا للجودة.
مكانة اختبار السلامة في هرم الاختبار
عادة ما يقع اختبار السلامة فوق اختبار الدخان و أسفل اختبار الانحدار.
اختبارات النظام / الشاملة (E2E)
-------------------------
اختبارات الانحدار
-------------------------
اختبار السلامة
-------------------------
اختبار الدخان
-------------------------
اختبارات الوحدات
يتيح هذا الموضع للفرق تصفية الإصدارات غير المستقرة مبكرًا دون استثمار جهد اختبار مفرط.

كيف يساعد Apidog في اختبار السلامة لواجهات برمجة التطبيقات (APIs)
بالنسبة للفرق التي تبني أنظمة تعتمد على واجهات برمجة التطبيقات، غالبًا ما يدور اختبار السلامة حول التحقق من سلوك نقطة النهاية بعد التغييرات. يُعد Apidog فعالًا بشكل خاص في هذا السياق.
كيف يدعم Apidog اختبار السلامة
- التحقق السريع من API: تشغيل فحوصات السلامة على الفور ضد نقاط النهاية بعد التغييرات
- حالات اختبار قابلة لإعادة الاستخدام: حفظ وإعادة استخدام سيناريوهات اختبار السلامة الهامة
- تبديل البيئات: التحقق من التغييرات عبر إعدادات التطوير، التجهيز، والإنتاج
- التنفيذ الآلي: دمج اختبارات سلامة API في خطوط أنابيب CI/CD
- تأكيدات واضحة: التحقق من رموز الحالة (status codes)، ومخططات الاستجابة، والمنطق التجاري

مثال: فحص سلامة API في Apidog
{
"assertions": [
"statusCode == 200",
"response.body.token != null"
]
}
يجعل هذا Apidog أداة مثالية لضمان بقاء واجهات برمجة التطبيقات مستقرة بعد التحديثات التدريجية، دون تشغيل مجموعات اختبار كاملة.
أفضل الممارسات لاختبار السلامة الفعال
لتحقيق أقصى قيمة من اختبار السلامة:
- ركز فقط على التغييرات الأخيرة
- اجعل حالات الاختبار بسيطة وقابلة للتكرار
- احتفظ بـ مجموعة اختبارات سلامة صغيرة
- أتمتة اختبارات سلامة API حيثما أمكن
- اجمع بين اختبار السلامة واختبار الدخان واختبار الانحدار
- قم بتشغيل اختبارات السلامة مبكرًا في خطوط أنابيب CI/CD
الأسئلة المتكررة
س1. هل اختبار السلامة يدوي أم آلي؟
اختبار السلامة يدوي تقليديًا، ولكنه يمكن أن يكون آليًا - خاصة لواجهات برمجة التطبيقات (APIs) والخدمات الخلفية باستخدام أدوات مثل Apidog.
س2. كيف يختلف اختبار السلامة عن اختبار الانحدار؟
اختبار السلامة ضيق وسريع، ويركز على التغييرات الأخيرة. أما اختبار الانحدار فهو أوسع ويضمن بقاء الوظائف الموجودة دون تأثر.
س3. من يقوم بإجراء اختبار السلامة؟
عادةً مهندسو ضمان الجودة (QA) أو المطورون، اعتمادًا على هيكل الفريق وضرورة الإصدار.
س4. هل يمكن لاختبار السلامة أن يحل محل اختبار الانحدار؟
لا. اختبار السلامة هو فحص أولي، وليس بديلاً عن اختبار الانحدار الشامل.
س5. هل اختبار السلامة مطلوب لكل إصدار؟
يوصى به بشدة للتحديثات الثانوية والإصلاحات العاجلة، خاصة في بيئات Agile و DevOps.
الخلاصة
يُعد اختبار السلامة (Sanity testing) تقنية اختبار خفيفة الوزن ولكنها قوية تضمن أن التغييرات الأخيرة تتصرف بشكل صحيح دون إضاعة الوقت في دورات الاختبار الكاملة. من خلال التركيز على المناطق المتأثرة، فإنه يوفر ملاحظات سريعة، ويقلل المخاطر، ويحسن الثقة في الإصدار.
في البنى التي تركز على واجهات برمجة التطبيقات (API-centric architectures)، يصبح اختبار السلامة ذا قيمة أكبر. تساعد أدوات مثل Apidog الفرق على تنفيذ اختبارات سلامة موثوقة وقابلة للتكرار لنقاط نهاية واجهة برمجة التطبيقات - مما يسهل اكتشاف المشكلات مبكرًا والحفاظ على سير التطوير بسرعة دون التضحية بالجودة.
