صيد الأخطاء والاستكشاف الموجّه بالمخاطر

صيد الأخطاء (Bug Hunting) اختبار استكشافي له هدف صريح واحد: العثور على أهم الإخفاقات في وقت محدود. فبدلاً من استكشاف المنتج كله بالتساوي، توجّه جهدك إلى المناطق التي يُرجَّح فيها الإخفاق ويكون ضرره أكبر، وهذا هو الاستكشاف الموجّه بالمخاطر (Risk-Based Exploration)، وتستخدم الاستدلالات والجولات أدواتٍ للصيد. مثال ذلك: قبل أن يطلق تطبيق لحجز مواعيد العيادات ميزة الحسابات العائلية، يقضي مختبِر جلسة مدتها ⁦90⁩ دقيقة يحاول فيها أن يجعل المحفظة المشتركة تخصم المبلغ مرتين، لأن هذا الإخفاق سيكلّف العائلات أموالها ويُفقد العيادة ثقتهم.

أما حملة صيد الأخطاء (Bug Bash) فصيدٌ يشارك فيه أشخاص كثيرون في وقت واحد: في فعالية واحدة محددة زمنياً يستكشف المختبِرون والمطورون ومالكو المنتج وموظفو الدعم والمصممون البناء (Build) نفسه، ويسجّلون ما يجدونه في مكان واحد، ثم يفرز الفريق النتائج ويبلّغ بالحصيلة. و«صيد الأخطاء» و«حملة صيد الأخطاء» مصطلحان شائعان في الصناعة لا يعرّفهما منهج ISTQB للمستوى التأسيسي؛ وهما بلغته اختبار استكشافي، أي تقنية اختبار قائمة على الخبرة، توجّهه المخاطر.

لماذا يهم

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

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

الاستكشاف الموجّه بالمخاطر: صوّب قبل أن تستكشف

الاستكشاف الموجّه بالمخاطر هو تطبيق الاختبار المبني على المخاطر (Risk-Based Testing) على العمل الاستكشافي: مستوى الخطر يحدد أين تستكشف أولاً، وبأي عمق، وبكم شخص. ابدأ من مخاطر المنتج في هذا الإصدار، مقيّمةً بالاحتمال والأثر كما في الاختبار المبني على المخاطر. ولا تحتاج لميزة واحدة إلى سجل مخاطر كامل؛ تكفي قائمة قصيرة مرتبة يتفق عليها مالك المنتج وأحد المطورين.

ثم حوّل كل خطر عالٍ إلى مواثيق اختبار (Charters) بالقالب الذي عرفته في إدارة الاختبار بالجلسات (SBTM)، ودع المستوى يحدد العمق. فالخطر العالي جداً قد يستحق عدة جلسات أو مختبِراً ثانياً أو حملة صيد، والخطر العالي جلسة كاملة واحدة على الأقل، والمتوسط جلسة قصيرة إن سمح الوقت، والمنخفض جولة قصيرة أو لا شيء، بشرط أن يُسجَّل هذا القرار. ويرتفع الاحتمال عادةً مع هذه المؤشرات:

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

جرّبها: مولّد الاختبار المبني على المخاطر

الاستدلالات والجولات أدواتٍ للصيد

يشرح دليل الاختبار الاستكشافي الاستدلالات (Heuristics)، وهي قواعد تقريبية تقترح ما تجرّبه بعد ذلك، والجولات (Tours)، وهي مسارات ذات موضوع عبر المنتج. وفي الصيد تختارها بحسب الخطر الذي تستهدفه، كي تهاجم الأداةُ الإخفاقَ الذي تخشاه بدلاً من تكرار المسار السعيد (Happy Path)، وتُبقي قائمة الأخطاء النموذجية من درس تخمين الأخطاء (Error Guessing) في متناول يدك. وهذه خلاصة سريعة مقرونة بمخاطر شائعة:

  • مبالغ خاطئة: نوّع المدخلات، مثل الخصومات والتقريب والمبالغ الصفرية والقصوى والمجاميع التي لا تنقسم بالتساوي. ورغم اسمها، ليست جولة المال (Money) هي الأداة هنا، فهي تزور الميزات التي تبيع المنتج، تلك التي تُعرض في العروض التوضيحية.
  • بيانات مفقودة أو غير متسقة: جولة FedEx، أي تتبّع سجل واحد عبر كل شاشة وبريد وملف تصدير وواجهة برمجية تلمسه.
  • تعارض الحالات: نوّع الحالات والتسلسلات، مثل تبويبين وجهازين والرجوع والتقدّم والإرسال مرتين؛ وجولة الوسواس (Obsessive-compulsive) تكرر فعلاً واحداً حتى ينهار شيء.
  • تعطّل الاعتماديات: جولة المخرّب (Saboteur) والمقاطعة، مثل شبكة بطيئة أو مقطوعة، ومهلات تنتهي، ودفع مرفوض في بيئة الدفع التجريبية.
  • وصول خاطئ: تقمّص شخصية، مثل فرد أُزيل من الحساب، أو ضيف، أو مستخدم انتهت جلسته.
  • العرض والتوطين: جولة عارض الأزياء (Supermodel) على العربية والإنجليزية، والتخطيط من اليمين إلى اليسار، والأسماء الطويلة، والتكبير.
  • زوايا مهملة: جولة الأزقة الخلفية (Back alley) في الإعدادات وصفحات الأخطاء والحدود التي لا يعرضها أحد.

جرّبها: مولّد الحالات الحدّية جرّبها: مولّد مجموعات الأحرف الخاصة

تنظيم حملة صيد الأخطاء

تجمع حملة صيد الأخطاء أشخاصاً بمعارف مختلفة على البناء نفسه لصيد قصير ومكثّف. وقيمتها تتوقف على التحضير: فبدونه يقضي نحو ⁦12⁩ شخصاً نصف الساعة الأولى في تسجيل الدخول، ويختبرون المسار السعيد نفسه، ويبلّغون عن أخطاء معروفة سلفاً. وعادةً يتولى أحد المختبِرين دور الميسّر (Facilitator)، ويوافق مالك المنتج على الهدف، ويوافق قائد التطوير على تجميد البناء وإبقاء وقت متاح للإصلاحات.

ونظّمها مبكراً بما يكفي لإصلاح ما تكشفه؛ فالحملة التي تُعقد قبل الإصدار بيوم لا تترك عادةً وقتاً إلا لتسجيل المشكلات، لا لإصلاحها.

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

    قبل الفعالية بأيام

    1. 1رتّب المخاطرالاحتمال × الأثر، واتفق على الهدف والنطاق مع مالك المنتج
    2. 2جهّز البناء والبياناتبناء مجمّد، وحسابات اختبار، وبطاقات تجريبية، وقائمة المشكلات المعروفة
    3. 3وزّع المواثيق على الثنائياتالمخاطر الأعلى أولاً؛ مختبِر مع شخص من خارج الاختبار حيثما أمكن
  2. يوم الحملة: الصيد

    مدة محددة واحدة، مثل ⁦60⁩ إلى ⁦90⁩ دقيقة

    1. 4الافتتاحالهدف والنطاق والقواعد وطريقة الإبلاغ
    2. 5الصيد في ثنائياتاستدلالات وجولات موجّهة إلى الميثاق، وكل نتيجة تُسجَّل في الجدول المشترك

      يتكرر: الميسّر يجيب عن الأسئلة ويرصد التكرارات والعوائق

    3. 6الختامأهم اكتشاف، وما لم يصل إليه أحد
  3. بعد الحملة: قرّر وتابع

    في اليوم نفسه أو صباح اليوم التالي

    1. 7افرز النتائجاحذف المكرر، وأعد إنتاج كل إخفاق، وحدّد الخطورة والأولوية، وسجّل العيوب

      فرع: المكررات والمشكلات المعروفة وما ليس عيباً: تُغلق مع ذكر السبب

    2. 8أبلغ بالحصيلةالتغطية والعيوب والفجوات والأسئلة ومستوى الخطر الآن
    3. 9تابعالإصلاحات واختبار التأكيد وحالات الانحدار والمواثيق الجديدة

صورة توضيحية: تختلف المدد والأدوار من فريق إلى آخر، والتحضير والفرز أهم من الفعالية نفسها.

  • الهدف والنطاق: جملة واحدة عن غرض الحملة، والمناطق الداخلة في النطاق مرتبة حسب الخطر، وما هو خارجه، وقائمة المشكلات المعروفة حتى لا يبلّغ عنها أحد مرة أخرى.
  • البيئة والبيانات: بناء مستقر في بيئة اختبار متفق عليها، وحسابات اختبار بالأدوار التي يحتاجها كل ميثاق، وبيانات اصطناعية، وبطاقات دفع تجريبية. ولا بيانات عملاء حقيقية أبداً.
  • المواثيق والثنائيات: ميثاق واحد لكل ثنائي، والمخاطر الأعلى أولاً؛ واجمع حيثما أمكن مختبِراً مع شخص من خارج الاختبار كي تلتقي معارف مختلفة.
  • الإبلاغ: جدول مشترك واحد، أو وسم في متتبّع العيوب، بحقول ثابتة هي المبلِّغ، والميثاق، والعنوان، والخطوات، والنتيجة المتوقعة والفعلية، والدليل، والجهاز والبناء. تذهب النتائج الخام إليه أولاً، والفرز (Triage) هو الذي يقرر ما يصبح تقرير عيب.
  • يوم الحملة: افتتاح قصير عن الهدف والنطاق والقواعد وطريقة الإبلاغ؛ ومدة محددة مثل ⁦60⁩ إلى ⁦90⁩ دقيقة؛ وميسّر يجيب عن الأسئلة ويراقب التكرارات والعوائق؛ وجولة ختامية عن أهم اكتشاف وما لم يصل إليه أحد.
  • بعد الحملة: افرز النتائج في اليوم نفسه أو صباح اليوم التالي، فاحذف المكرر، وأعد إنتاج كل إخفاق، وحدّد الخطورة والأولوية، وسجّل العيوب مربوطة بالحملة، ثم أبلغ بالحصيلة.

جرّبها: مولّد مستخدمين وهميين جرّبها: مولّد سيناريوهات الاختبار

مثال عملي: حملة صيد قبل إصدار الحسابات العائلية

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

يأخذ ثنائيان المحفظة، لأن الخصم المزدوج أو الاسترداد الخاطئ هو الخطر الأعلى. وتأخذ الثنائيات الأخرى آخرَ موعد شاغر يحجزه فردان في اللحظة نفسها، والخصوصية بعد إزالة أحد الأفراد، وقاعدة الإلغاء قبل ⁦24⁩ ساعة، والشاشات العربية والإنجليزية. وفي صباح اليوم التالي يفرز قائد الجودة وقائد التطوير ⁦31⁩ نتيجة خاماً، ثم يرسل قائد الجودة هذا الملخص (VH عالٍ جداً، وH عالٍ، وM متوسط):

  • حرج (Critical): تُخصم المحفظة مرتين عند الضغط على «ادفع» مرة أخرى بعد انتهاء المهلة.
  • حرج (Critical): يستطيع فرد أُزيل من الحساب أن يفتح مواعيد العائلة القادمة من رابط محفوظ.
  • سؤال: الإلغاء قبل الموعد بـ⁦24⁩ ساعة تماماً يُسترد مبلغه، لكن القاعدة تقول «بأكثر من ⁦24⁩ ساعة». أيهما المقصود؟
Bug bash: family accounts    build 4.6.0 (staging)    90 min, 12 people, 6 pairs

Risk (level)                    Pairs  Raw  New defects  Highest severity
Wallet charge and refund (VH)     2     9        4       Critical
Last slot, two members (VH)       1     5        2       Major
Removed member privacy (VH)       1     4        1       Critical
24 h cancellation rule (H)        1     6        2       Major
Arabic and English screens (M)    1     7        3       Minor

Triage:      31 raw -> 12 new defects, 9 duplicates, 4 known issues,
             3 questions, 3 not a defect
Not reached: refund to an expired card (no sandbox card for it)
Risk now:    wallet and privacy stay VH until the Critical fixes pass confirmation
             testing; refunds to expired cards are still untested;
             slot, cancellation and screens lower once their fixes are confirmed
Follow-up:   6 regression cases (2 automated at API level),
             2 charters for the next sprint

الإبلاغ عن الحصيلة

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

وكن حذراً مع الأرقام. فاثنا عشر عيباً لا تعني الكثير وحدها، وقلة العيوب في منطقة ما قد تعني أنها متينة أو أن أحداً لم يبحث بجدية. وكما يقول المبدأ الأول من مبادئ الاختبار: الاختبار يُظهر وجود العيوب لا غيابها.

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

أخطاء شائعة

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

من منظور ضمان الجودة

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

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

تمرين عملي

خطّط حملة صيد لميزة الطلب الجماعي

المطلوب

يضيف تطبيق خيالي لتوصيل الطعام ميزة الطلب الجماعي، ويطلقها بعد أسبوعين. لديك ثمانية أشخاص لحملة صيد مدتها ⁦90⁩ دقيقة: مختبِران، وثلاثة مطورين، ومالك منتج، وموظف دعم، ومصمم. باستخدام المادة أدناه خطّط للحملة، وضع مخططاً للتقرير الذي سترسله بعدها.

المادة
الميزة: الطلب الجماعي (البناء 3.2.0 على staging)
- ينشئ المضيف سلة جماعية ويشارك رابطاً صالحاً لمدة 60 دقيقة.
- ينضم حتى 10 ضيوف عبر الرابط ويضيفون أصنافهم.
- يقفل المضيف السلة ويدفع عن الجميع بالبطاقة أو المحفظة.
- يستطيع كل ضيف أن يدفع حصته للمضيف داخل التطبيق.
- تُقسَّم رسوم التوصيل وأي خصم بالتساوي على جميع الأشخاص.
مشكلة معروفة: GRP-12  الضيوف الذين ليست لهم صورة شخصية لا تظهر لهم صورة رمزية.
الخطوات
  1. اكتب خمسة مخاطر للمنتج على الأقل، ورتّبها حسب الاحتمال والأثر.
  2. اكتب ميثاقاً واحداً لكل ثنائي من الثنائيات الأربعة، وسمِّ الاستدلال أو الجولة التي يستخدمها كل ثنائي.
  3. اكتب ما يجب تجهيزه قبل الحملة، وحقول جدول الإبلاغ.
  4. ضع مخططاً لأقسام تقرير الحصيلة.
إظهار الإجابة النموذجية
الإجابة النموذجية

المخاطر من الأعلى: خصم خاطئ أو مزدوج من المضيف بعد القفل أو إعادة المحاولة أو التبديل بين البطاقة والمحفظة (عالٍ جداً)؛ حصص خاطئة عند تقسيم الرسوم والخصم، بما في ذلك التقريب (عالٍ جداً)؛ انضمام ضيوف أو تغيير أصناف بعد قفل السلة أو انتهاء صلاحية الرابط (عالٍ)؛ أكثر من ⁦10⁩ ضيوف، أو ضيفان يأخذان آخر مكان في اللحظة نفسها (عالٍ)؛ ضيف يرى بيانات الدفع الخاصة بالمضيف أو أرقام هواتف الضيوف الآخرين (عالٍ)؛ أسماء أصناف عربية أو طويلة تُفسد عرض السلة المشتركة (متوسط). ويأتي خطرا الدفع أولاً لأن الإخفاق فيهما يكلّف مالاً حقيقياً (أثر عالٍ)، ولأن شيفرة الدفع جديدة ومعقدة مع إعادة المحاولة وطريقتين للدفع (احتمال عالٍ)؛ أما خطر الخصوصية فأثره عالٍ واحتماله أقل، وخطر العرض على العكس. والصورة الرمزية المفقودة (GRP-12) مشكلة معروفة ومنخفضة الخطر.

المواثيق: الثنائي ⁦1⁩، مختبِر ومطور: استكشف الدفع بعد القفل بالبطاقة والمحفظة مع إعادة المحاولة وشبكة بطيئة (جولة المخرّب والمقاطعة) لاكتشاف الخصم الخاطئ أو المزدوج. الثنائي ⁦2⁩، مختبِر ومالك المنتج: استكشف دفع الحصص مع الرسوم والخصومات ومجاميع لا تنقسم بالتساوي (تنويع المدخلات) لاكتشاف أخطاء التقسيم والتقريب. الثنائي ⁦3⁩، مطور وموظف الدعم: استكشف الرابط والسلة في عدة تبويبات وأجهزة حول قفل السلة وحد الضيوف العشرة وانتهاء صلاحية الرابط بعد ⁦60⁩ دقيقة (تنويع الحالات والتسلسلات) لاكتشاف تعارض الحالات. الثنائي ⁦4⁩، مطور والمصمم: استكشف السلة بصفتك ضيفاً بالعربية والإنجليزية (جولة عارض الأزياء وشخصية الضيف) لاكتشاف مشكلات العرض والخصوصية. وأنت الميسّر. ولأن لديك مختبِرَين فقط، فلا مختبِر في الثنائيين ⁦3⁩ و⁦4⁩؛ لذا أعطهما أوضح المواثيق وتفقّدهما أولاً.

ما يجب تجهيزه قبل الحملة: البناء مجمّد على staging؛ وحسابات اختبار لكل ثنائي، منها ⁦12⁩ حساباً للثنائي ⁦3⁩ كي يملأ أماكن الضيوف العشرة ويجرّب ضيفاً حادي عشر؛ وبطاقات تجريبية وأرصدة في المحافظ؛ وقائمة المشكلات المعروفة وفيها GRP-12؛ والمواثيق؛ وجدول مشترك بحقول: المبلِّغ، والميثاق، والعنوان، والخطوات، والنتيجة المتوقعة، والنتيجة الفعلية، والدليل، والجهاز، والبناء. وخطّط لافتتاح مدته ⁦10⁩ دقائق، و⁦70⁩ دقيقة من الصيد، وختام مدته ⁦10⁩ دقائق، ثم الفرز صباح اليوم التالي مع قائد التطوير ومالك المنتج.

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

أسئلة شائعة

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

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

من ينبغي أن يشارك في حملة صيد الأخطاء؟

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

هل يمكن أن تحلّ حملة صيد الأخطاء محل الاختبار المخطط له؟

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

كيف أعرف أن الحملة كانت مجدية؟

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

المراجع

تدرّب بأدوات متقن

ولّد سيناريوهات اختبار عالية المستوى تغطي الجوانب الوظيفية والسلبية والأمنية وسهولة الاستخدام والتوافق لأي ميزة.

تصميم الاختبارات

ولّد حالات حدّية (edge cases) للسلاسل النصية والأرقام والتواريخ والملفات والقوائم والتزامن انطلاقاً من تعريف الحقول.

تصميم الاختبارات

ولّد مدخلات مليئة بالأحرف الخاصة: علامات الاقتباس، والأحرف الوصفية لـ SQL/HTML/JSON، وأحرف التحكم، والرموز التعبيرية، وحيل المسارات.

بيانات الاختبار

ولّد سجلات مستخدمين وهمية (الاسم واسم المستخدم والبريد الإلكتروني وكلمة المرور وبذرة الصورة الرمزية والدور) لحسابات الاختبار.

بيانات الاختبار

للتعمّق أكثر

تقدّمك في هذا الموضوع

جزء من مسار تعلم ضمان الجودة