محتويات الدورة
جودة البرمجيات
أساسي: الاستدلال وتصميم الاختبار
متوسط: أدلة المنتج المتكامل
متقدم: الاستراتيجية والصمود والقيادة

جودة البرمجيات / متوسط: أدلة المنتج المتكامل / الدرس 11

الأتمتة وتجهيز الاختبار والبيانات الموثوقة

ابنِ فحوصاً قابلة للتكرار ببيانات مستقلة وإعداد واضح ووقت مضبوط. تعلّم متى تبرر الأتمتة كلفتها ومتى يكون التحقيق اليدوي المركّز الخطوة الأفضل.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • تنظيم الإعداد والفعل والتحقق بوضوح.
  • عزل التجهيز والاعتمادات الحتمية.
  • اختيار بيانات مصطنعة تستهدف مخاطر مهمة.

أتمتة سؤال مستقر

تكرر الأتمتة الملاحظات ولا تقرر أهميتها. فضّل فحوصاً بمراجع حكم واضحة واستخدام متكرر وإشارة إخفاق مفيدة. يناسب حد استرداد مستقر الأتمتة، بينما قد تحتاج عملية جديدة أولاً إلى استكشاف واتفاق على السلوك. احسب كلفة الإنشاء والصيانة والتشخيص وإعادة البيانات، لا سرعة التنفيذ وحدها. أظهر الإعداد والفعل والتحقق حتى يرى المراجع الشرط والسلوك المحدد والنتيجة المستقلة. قد يظل اختبار قصير ضعيفاً إذا لم يتحقق إلا من عدم وقوع استثناء.

حالة محلولة: حالة جديدة لكل اختبار

يحتاج اختبار المخزون إلى بداية من ثلاث وحدات. ابنِ الحالة داخل تجهيز أو مصنع بدلاً من الاعتماد على اختبار سابق. تستدعي الحالتان في المثال المصنع نفسه وتحصلان على قاموسين مختلفين؛ فلا يلوث تغيير أحدهما الآخر. وتحتاج تجهيزات القاعدة الحقيقية إلى ملكية وتنظيف صريحين. إذا نفذ الإعداد أفعالاً خارجية متعددة فسجّل التنظيف بعد نجاح كل فعل حتى لا يترك إخفاق لاحق موارد سابقة. لا تجعل التنظيف متوقفاً على نجاح الاختبار.

python توضيح مكتفٍ بذاته لاستقلال التجهيز
def inventory_fixture():
    return {"stock": 3, "reservations": []}

a = inventory_fixture()
b = inventory_fixture()
a["stock"] -= 1
a["reservations"].append("learner-A")
assert a["stock"] == 2
assert b == {"stock": 3, "reservations": []}

يكشف التحقق الثاني مشاركة حالة قابلة للتغيير دون قصد، وليس اختبار تزامن قاعدة بيانات.

مصطنعة لا تعني ساذجة

أنشئ بيانات تمثل الفئات المهمة: اسماً عربياً طويلاً وحقلاً اختيارياً فارغاً ومتعلماً بمنطقة زمنية مختلفة وأهلية منتهية وسعة عند حدها. استخدم هويات مصطنعة ونطاقات محجوزة آمنة بدلاً من نسخ سجلات شخصية من الإنتاج. سمّ البيانات حسب الغرض لتفسر الإخفاق. توسع العشوائية الاستكشاف، لكن احفظ البذور والمدخلات الفاشلة وتأكد من استيفاء البيانات للشروط المقصودة. فقد يمنع بريد غير صالح غير مرتبط وصول الاختبار إلى قاعدة الاسترداد المراد فحصها.

حالة محلولة: انتهاء صلاحية حتمي

ينتهي حجز عند الطابع 900 في ساعة صحيحة توضيحية. ينص العقد على أنه نشط قبل الانتهاء حصراً. احقن الوقت الحالي واختبر 899 و900 و901 بلا نوم. النتائج نشط ومنتهٍ ومنتهٍ. في التطبيق الحقيقي حدّد مصدر الوقت والمنطقة ودقة الطابع. ينبغي أن يستخدم حد منتصف الليل منطقة صريحة لا افتراض الجهاز. لا تجمد الوقت عالمياً بين اختبارات متوازية غير مرتبطة؛ مرر ساعة مضبوطة أو اعزل العملية حتى لا تغير حالة بيئة الأخرى.

python انتهاء الصلاحية بوقت محقون
def active(now, expires_at):
    return now < expires_at

for now, expected in [(899, True), (900, False), (901, False)]:
    assert active(now, 900) is expected

يميز التحقق عند الانتهاء نفسه الحد الحصري من الشامل.

الحفاظ على فائدة الإخفاقات

افصل شيفرة دعم الاختبار عن مراجع الحكم التجارية حتى لا يحسب مساعد مشترك الفعلي والمتوقع بالعيب نفسه. فضّل تكراراً واضحاً قليلاً على تجريد ذكي يخفي الحالة المجهزة. أدرج معرفات مفيدة في رسائل التحقق وأبعد الاعتمادات السرية. راجع الأتمتة بعد تغير المنتج: حدّث الافتراضات القديمة واحذف الزائد بدليل واحتفظ بانحدارات مهمة. عند التقطع حقق في الحالة والتوقيت وإشارات البنية قبل إضافة الإعادة؛ فالحزمة الموثوقة تستحق الانتباه لأنها تجعل الإخفاق جديراً بالقراءة.

الأخطاء الشائعة وإصلاحها

حساب مشترك يراكم الحالة

لماذا يحدث؟
غياب وضوح ملكية التجهيز وإعادته.
كيف تصلحه؟
منح الحالات حسابات مستقلة أو حالة معزولة.
كيف تتجنب تكراره؟
ربط الإعداد والتنظيف بدورة حياة الاختبار.

استدعاء حاسب الإنتاج للقيم المتوقعة

لماذا يحدث؟
اشتراك مرجع الحكم في عيب التنفيذ نفسه.
كيف تصلحه؟
استخدام ثوابت مراجعة أو قاعدة مشتقة مستقلة.
كيف تتجنب تكراره؟
مراجعة مساعدات التحقق لمنع الاستدلال الدائري.

اختبار الانتهاء بانتظار حقيقي

لماذا يحدث؟
عدم إمكان التحكم في الساعة.
كيف تصلحه؟
حقن الوقت وفحص القيم الحدية.
كيف تتجنب تكراره؟
تصميم الوقت اعتماداً صريحاً.

اختبر فهمك

1. يعيد المصنع القائمة القابلة للتغيير نفسها دائماً. اشرح الخطر والإصلاح.

اعرض الحل المشروح

يغير الإضافة أو الحذف في اختبار حالة بداية التالي فيؤثر الترتيب. أعد قائمة جديدة كل استدعاء، أو انسخ البنى المتداخلة القابلة للتغيير بعمق عند الحاجة. تحقق من الاستقلال بتغيير أحد التجهيزين وفحص ثبات الآخر.

2. اختر بيانات لاسم عرض اختياري حده 40 حرفاً.

اعرض الحل المشروح

أدرج الغائب والفارغ والقصير المعتاد وطول 40 و41 بالوحدة المتفق عليها، ومثالاً عربياً بالتشكيل. أبقِ الحقول غير المرتبطة صالحة. يجب اشتقاق قبول الغائب والفارغ أو تطبيعهما من قاعدة الحقل الاختياري الموثقة.

أهم ما تعلمته

  • حدّد ملكية حالة التجهيز والتنظيف والساعة وغرض البيانات صراحة.
  • تفيد الأتمتة حين يظل مرجع حكمها وإشارتها موثوقين.

المراجع الرسمية