استخدم الاختبارات كأدلة
مكتملاختر فحوصاً تستطيع رفض السلوك الخاطئ. راجع الاختبارات المولّدة بعناية تساوي مراجعة التنفيذ المولّد.
تحقّق من فهمكيستبدل اختبار مولّد دالة التخويل بمحاكاة تسمح دائماً بالوصول. ماذا يثبت نجاحه؟نفّذ التمرين
ما ستتعلّمه
- ربط كل متطلب مهم بفحص ذي معنى.
- التمييز بين أدلة اختبارات الوحدة والتكامل والاختبارات الشاملة.
- كشف اختبار يكرّر الافتراض الخاطئ نفسه الموجود في التنفيذ.
ابدأ بالمتطلب
تقدّم الاختبارات أدلة لادعاءات محددة. ولا يثبت تشغيل اختبارات ناجح كل خصائص البرمجيات. قبل طلب الاختبارات، حدّد السلوك المهم والعيب الذي يجب أن يكشفه كل فحص.
في مثال خيالي لتصدير بيانات مؤسسة، يكون المتطلب الرئيسي عزل البيانات. يجب ألا يتلقى مستخدم في المؤسسة A سجلات من المؤسسة B. لا يثبت اختبار يفحص نجاح التنزيل وحده هذا المتطلب.
اطلب من الوكيل شرح العلاقة بين المتطلب وشرط التحقق في الاختبار. يسهّل هذا اكتشاف الحالات الناقصة قبل أن تكبر مجموعة الاختبارات.
اختر نطاق الاختبار المناسب
يمكن لاختبار وحدة فحص تحويل صغير بسرعة. ويمكن لاختبار تكامل فحص عمل المكوّنات معاً. ويمكن لاختبار شامل فحص تسلسل مهم لأفعال المستخدم عبر التطبيق المنشور أو نسخة تمثّله.
استخدم أضيق نطاق يقدّم الأدلة المطلوبة. لا تحتاج أداة تنسيق إلى اختبار متصفح كامل لكل مدخل. وقد يحتاج حد تخويل إلى مسار فعلي ومسار وصول إلى البيانات. ويحتاج تفاعل مهم في المتصفح إلى أدلة عن الواجهة المعروضة.
| الادعاء | مثال على الأدلة |
|---|---|
| تعالج مخرجات CSV علامة اقتباس بالتهريب الصحيح | اختبار وحدة يحتوي فيه حقل على علامة اقتباس |
| لا تستطيع مؤسسة أخرى قراءة البيانات المصدّرة | اختبار تكامل يمر بالتخويل الفعلي |
| يستطيع مستخدم لوحة المفاتيح بدء التصدير | اختبار متصفح ومراجعة يدوية بلوحة المفاتيح |
| يعرض التصدير الفاشل خطأ مفيداً | فحص مسار الإخفاق عند الواجهة المعنية |
لا توجد نسبة ثابتة لأنواع الاختبارات تناسب كل نظام. اختر وفق الإخفاق الذي تحتاج إلى كشفه وتكلفة صيانة الفحص.
تجنّب افتراضاً خاطئاً مشتركاً
قد يكتب الوكيل التنفيذ والاختبارات انطلاقاً من سوء الفهم نفسه. وقد يتفقان بينما يبقى المتطلب غير محقق.
افترض أن التنفيذ يرشّح السجلات حسب معرّف المؤسسة المقدّم في الطلب. ويستخدم الاختبار المعرّف نفسه للمستخدم المسجّل دخوله وللطلب. فينجح. الحالة الناقصة هي مستخدم يطلب معرّف مؤسسة أخرى.
أضف هذه الحالة عبر مسار الهوية الموثوقة والتخويل الفعلي. لا تستطيع محاكاة تعيد دائماً «مسموح» إثبات عزل المستأجرين. فهي تثبت فقط السلوك بعد نجاح التخويل.
تحقّق من قدرة الاختبار على الفشل
لعيب معروف، شغّل اختبار الانحدار الجديد على الإصدار المعيب في فرع معزول. تأكّد من فشله للسبب المقصود. ثم طبّق التصحيح وأعد تشغيله.
لا يُعد الاختبار الذي يفشل بسبب تعذّر تحميل بيانات الاختبار دليلاً بعد على سلوك الأعمال. افحص الإخفاق نفسه، لا رمز الخروج فقط.
للتغييرات الأوسع، قد يساعد اختبار الطفرات على تقييم ما إذا كانت تغييرات مختارة في الشيفرة تسبب إخفاق الاختبارات. وله تكلفة، ولا يغني عن مراجعة المتطلبات. استخدمه حين تدعم الأدلة الإضافية قراراً ذا عواقب مهمة.
أبقِ الأدلة مرتبطة بالتغيير
شغّل الفحوص المعنية على النسخة النهائية من الشيفرة. سجّل الفحوص المتجاوزة وأسباب تجاوزها. قد لا تعود نتيجة من commit سابق صالحة بعد تصحيح ناتج عن المراجعة.
أبقِ الاختبارات مفهومة. فضّل إعداداً وشرط تحقق صريحين على دالة مساعدة كبيرة تخفي الشرط المهم. احذف الفحوص المكرّرة حين تزيد تكلفة الصيانة دون كشف إخفاق مختلف.
يجب أن يستطيع المراجع بيان ما تثبته الاختبارات وما يبقى غير مؤكد. يفيد هذا الشرح أكثر من عدد كبير من الاختبارات.
نفّذ التمرين
اختر اختباراً مولّداً واحداً. اذكر المتطلب الذي يفحصه. أدخل العيب المعني مؤقتاً في فرع معزول. تأكّد من أن الاختبار يفشل للسبب المقصود، ثم استعد الشيفرة. سجّل ما لا يزال الاختبار لا يغطيه.
تنزيل ورقة العمل (Markdown)يؤدي إلغاء هذا الاختيار إلى حذف كل التقدم المحفوظ في هذا المتصفح.
يبقى تقدمك في هذا المتصفح. دون حساب أو تتبّع.
المصادر وقراءات إضافية
- Google Engineering Practices: Review tests for useful assertions ↗
- Google Testing Blog: Test scope and feedback ↗