الاختبار الجيد يثبت سلوكًا يهم المستخدم أو عقدًا بين مكونات. الاختبار الذي يعيد خطوات الدالة نفسها قد يكرر الخطأ ويكسر عند أي إعادة تنظيم. يبدأ السؤال: ما النتيجة المرئية عند مدخل وحالة معينين؟
اختبار الوحدة يعزل جزءًا صغيرًا ويعطي تغذية سريعة، بينما اختبار التكامل يفحص قاعدة بيانات أو خدمة، واختبار النهاية يحاكي مسار مستخدم. لا يغني نوع عن الآخر؛ كثرة اختبارات واجهة بطيئة تجعل الحزمة هشة، والوحدات وحدها لا تكشف سوء التوصيل.
تنظم الحالة عادة إلى إعداد وفعل وتحقق. يُسمى الاختبار بلغة تصف الشرط والنتيجة. عندما يفشل، يجب أن يفهم المطور المقارنة دون تشغيل مصحح طويل. رسالة تعرض المتوقع والفعلي أهم من «فشل الاختبار 7».
تغطي الحالات الطرفية: قيمة فارغة وحد أقصى وتوقيت منته وصلاحية مرفوضة. لكن التغطية المئوية لا تثبت الجودة؛ يمكن تنفيذ كل سطر دون فحص نتيجة مهمة. تستخدم كإشارة لمكان لم يُختبر، لا هدفًا وحيدًا.
المحاكاة تفصل خدمة خارجية وتسمح بإجابات مضبوطة، لكنها قد تختلف عن الخدمة الحقيقية. كلما حوكى الفريق تفاصيل داخلية أكثر أصبح الاختبار مقيدًا بالتنفيذ. يُفضل محاكاة الحد الخارجي واختبار العقد دوريًا ضد نسخة حقيقية.
يجب أن يكون الاختبار حتميًا. الاعتماد على ساعة فعلية أو ترتيب قاعدة مشترك أو شبكة يجعل الفشل متقطعًا. تُحقن الساعة، وتُنشأ بيانات مستقلة، وتُعزل المعاملات. لا يُعاد الاختبار حتى ينجح ثم يتجاهل السبب.
في إصلاح عيب، يكتب اختبار يفشل بالطريقة نفسها قبل التعديل، ثم يثبت نجاحه. يمنع ذلك عودة العيب ويوثق الحالة. لكن لا يلزم اختبار لكل سطر بسيط إذا كان مغطى بمسار ذي معنى.
تعمل الحزمة في كل طلب دمج، وتوزع الاختبارات حسب السرعة. الفشل يمنع النشر أو يحتاج استثناء موثقًا. ويحذف الاختبار القديم عندما لم يعد السلوك مطلوبًا، فلا تصبح الحزمة متحفًا لمتطلبات ملغاة.
بيانات الاختبار لا ينبغي أن تحتوي معلومات عملاء حقيقية. تُولد أمثلة مصطنعة تغطي اللغات والأطوال والحدود، وتُنظف بعد التشغيل. كما تُختبر الهجرات على نسخة مماثلة لحجم الإنتاج، لأن نجاح جدول صغير لا يكشف زمن القفل. عند تغير متطلب، يُعدل الاختبار والسلوك في مراجعة واحدة مع تفسير السبب. والاختبار الذي لا يستطيع الفشل مفيدًا يُراجع؛ قد تكون المقارنة ثابتة أو المسار لا يصل إلى الكود المقصود.
## سؤال للنقاش
ما الاختبار الذي يعطيك أكبر ثقة قبل النشر، وما نوع الخطأ الذي لا يستطيع كشفه؟
## المراجع
- المراجع الجامعية في هندسة البرمجيات والاختبار.
- وثائق أطر الاختبار الرسمية.
- أدلة التكامل المستمر وبناء خطوط النشر.
البرمجة وعلوم الحاسب
اختبارات البرمجيات: كيف تختبر السلوك بدل تكرار الشفرة؟
بقلم فريق تحرير وي تاك · 2026-09-02 09:38:31
الاختبار الجيد يثبت سلوكًا يهم المستخدم أو عقدًا بين مكونات. الاختبار الذي يعيد خطوات الدالة نفسها قد يكرر الخطأ ويكسر عند أي إعادة تنظيم. يبدأ السؤال: ما النتيجة المرئية عند مدخل وحالة معينين؟