الاختبار المبني على المخاطر
الاختبار المبني على المخاطر (Risk-based testing) هو ممارسة تقرير ما يُختبر وبأي عمق وبأي ترتيب بحسب احتمال أن يفشل شيء ما ومقدار الضرر إن فشل. لا يمكنك اختبار كل شيء، لذا فكل فريق يختار أصلاً؛ والاختبار المبني على المخاطر يجعل هذا الاختيار صريحاً ومتفقاً عليه وقابلاً للدفاع عنه، ويمنح قرار الإصدار لغة واضحة: أي المخاطر خُفّضت، وأيها بقي، ومن قَبِلها.
يمرّ هذا الدليل على الحلقة كاملة — تحديد المخاطر، وتقييمها، وتحويل الدرجات إلى عمق اختبار، واستخدام المخاطر لاختيار اختبارات الانحدار، ومتابعة المخاطر أثناء الإصدار، والإبلاغ عمّا تبقّى — مع سجل مخاطر مقيَّم لميزة إتمام الشراء يمكنك نسخه، وقسم صريح عن حدود هذه الطريقة.
مخاطر المنتج مقابل مخاطر المشروع
يفصل منهج ISTQB للمستوى التأسيسي بين نوعين من المخاطر، والخلط بينهما أكثر سبب شيوعاً لتحوّل سجل المخاطر إلى وثيقة بلا فائدة. خطر المنتج (Product risk)، المرتبط بخصائص جودة المنتج، هو طريقة قد يفشل بها المنتج نفسه في تلبية حاجة: إجمالي خاطئ عند الدفع، أو صفحة بحث بطيئة، أو تسرّب بيانات بين الحسابات. أما خطر المشروع (Project risk) فهو طريقة قد يفشل بها المشروع في التسليم: تأخر بيئة الاختبار، أو غياب الشخص الوحيد الذي يعرف تكامل الدفع، أو تسليم مورّد لواجهة API متأخراً بسبرنت.
الاختبار يخفّض مخاطر المنتج مباشرة — فالاختبار وسيلة لمعرفة ما إذا كان الفشل المخشيّ موجوداً. أما مخاطر المشروع فيديرها مدير الاختبار وفريق التسليم عبر التخطيط والتوظيف والتصعيد؛ مكانها خطة الاختبار، لكنها لا تنخفض بكتابة مزيد من حالات الاختبار. احتفظ بها في قائمتين منفصلتين لكل منهما مالك.
- أمثلة على مخاطر المنتج: حساب خاطئ لضريبة القيمة المضافة، وجلسة لا تُلغى عند تسجيل الخروج، ونص عربي يفيض خارج زر، وتقرير تنتهي مهلته عند أحجام نهاية الشهر.
- أمثلة على مخاطر المشروع: بيئة staging مشتركة مع فريق آخر، وتأخر تسليم بيانات الاختبار، وعدم توفر الوصول إلى بيئة sandbox لمزوّد الدفع، ومعايير قبول غير واضحة.
كيف تحدد المخاطر
ينجح تحديد المخاطر (Risk identification) أكثر عندما تحضر وجهات نظر متعددة، لأن كل دور يرى أعطالاً مختلفة. المطوّر يعرف أي وحدة هشّة، ومالك المنتج يعرف أي فشل قد يصل إلى الأخبار، والدعم الفني يعرف ما يشتكي منه العملاء أصلاً، والمختبِر يعرف أين تكدّست العيوب في المرة السابقة.
- ورشة المخاطر — من 45 إلى 90 دقيقة بحضور المنتج والتطوير والاختبار والعمليات، والأمن والدعم عند الحاجة. امشِ في مسار الميزة خطوة خطوة واسأل عند كل خطوة: ما الذي قد يسوء هنا، ومن سيلاحظ ذلك؟
- قوائم التحقق — أعد استخدام قائمة مخاطر من ميزات مشابهة (الدفع، والمصادقة، ورفع الملفات، والتقارير) حتى لا تبدأ الورشة من صفحة بيضاء.
- خصائص الجودة — استخدم ISO/IEC 25010 قائمةً محفِّزة: الملاءمة الوظيفية، وكفاءة الأداء، والتوافق، وقابلية التفاعل، والموثوقية، والأمن، وقابلية الصيانة، والمرونة، والسلامة. واسأل عن كل منها: هل يهمّ الفشل هنا لهذه الميزة؟
- العيوب السابقة — جمّع عيوب الإصدارات السابقة حسب المكوّن والسبب الجذري؛ فالمناطق التي كثرت فيها العيوب المتسرّبة أو المعاد فتحها مرشّحة للفشل مجدداً.
- أثر التغيير — ما الجديد أو المعدَّل في هذا الإصدار، وما الذي يعتمد عليه، وما مدى تعقيد التغيير. الشيفرة الجديدة والمعاد كتابتها والتي لمسها كثيرون تحمل احتمالاً أعلى.
- المقابلات ومراجعة الخبراء — في المجالات المنظَّمة أو المتخصصة اسأل من يعرفون القواعد (المالية، والامتثال، والطاقم السريري) كيف يبدو الفشل غير المقبول.
تقييم المخاطر: الاحتمال × الأثر
يحصل كل خطر منتج محدَّد على تقديرين. الاحتمال (Likelihood) هو مدى ترجيح وجود الفشل وحدوثه أثناء الاستخدام؛ ويرتفع مع التعقيد والجِدّة وضعف المتطلبات وضغط الوقت وكثرة التكاملات وتاريخ العيوب. والأثر (Impact) هو مدى سوء الفشل إن وقع: خسارة مالية، أو تعرّض قانوني أو تنظيمي، أو سلامة، أو عدد المستخدمين المتأثرين، أو ضرر بالسمعة، أو توفر حل بديل. ويجمع مستوى الخطر (Risk level) بين الاثنين، غالباً كحاصل ضرب درجتين ترتيبيتين.
استخدم مقاييس نوعية بتعريفات مكتوبة حتى يقيّم شخصان بالطريقة نفسها. مقياس من 1 إلى 4 يكفي عادة؛ فالمقاييس الأدق تفتح جدالاً حول الفرق بين 6 و7 لا يستطيع أحد حسمه. اتفقوا على التعريفات قبل الورشة لا أثناءها. ويعمل مقياس من 1 إلى 5 بالطريقة نفسها — وهو المستخدم في أمثلة «بستان ماركت» في دليلَي استراتيجية الاختبار وخطة الاختبار — ما دام كل سجل يستخدم مقياساً واحداً بتعريفات مكتوبة وشرائح ثابتة، ولا تُقارن درجات مقاييس مختلفة ببعضها. وأداة «مولّد الاختبار المبني على المخاطر» المرتبطة أدناه تستخدم مقياساً مختلفاً من هذا النوع: الاحتمال والأثر من 1 إلى 5، وشرائح منخفض (أقل من 4) ومتوسط (4–8) وعالٍ (9–14) وحرج (15–25)، ولا حدّ أدنى فيها مرتبطاً بالأثر. لذا أعد تقدير المخاطر على مقياسها بدلاً من إدخال درجات 1–4 الواردة في هذه الصفحة، وطبّق قاعدة الأثر الخاصة بك على نتائجها إن كانت استراتيجيتك تنص على قاعدة كهذه.
- مقياس الاحتمال في المخطط أدناه: 1 نادر — شيفرة بسيطة لم تتغير ومختبَرة جيداً؛ 2 ممكن — تغيير معتدل؛ 3 مرجّح — شيفرة معقدة أو جديدة؛ 4 مرجّح جداً — شيفرة جديدة ومعقدة ومتطلباتها ضعيفة.
- مقياس الأثر: 1 منخفض — عيب شكلي له حل بديل سهل؛ 2 متوسط — ميزة متدهورة لدى بعض المستخدمين؛ 3 عالٍ — مسار أساسي معطّل أو بيانات خاطئة؛ 4 شديد — عواقب مالية أو قانونية أو أمنية أو على السلامة.
- في المصفوفة تمثّل الصفوف الاحتمال (من 4 في الأعلى إلى 1 في الأسفل) وتمثّل الأعمدة الأثر (من 1 إلى 4)، وفي كل خانة حاصل الضرب ومستواه. الشرائح: من 1 إلى 3 منخفض، ومن 4 إلى 6 متوسط، ومن 8 إلى 9 عالٍ، ومن 12 إلى 16 عالٍ جداً.
- القاعدة: كل خطر أثره 4 لا يقل مستواه عن «عالٍ» مهما كان حاصل الضرب؛ فالخانة الوحيدة التي تتغير بذلك هي احتمال 1 مع أثر 4، إذ ترتفع درجتها 4 من متوسط إلى عالٍ.
| الاحتمال | الأثر | |||
|---|---|---|---|---|
| 1 منخفض | 2 متوسط | 3 عالٍ | 4 شديد | |
| 4 مرجّح جداً | 4متوسط | 8عالٍ | 12عالٍ جداً | 16عالٍ جداً |
| 3 مرجّح | 3منخفض | 6متوسط | 9عالٍ | 12عالٍ جداً |
| 2 ممكن | 2منخفض | 4متوسط | 6متوسط | 8عالٍ |
| 1 نادر | 1منخفض | 2منخفض | 3منخفض | 4متوسط ← عالٍ |
- منخفض: 1–3
- متوسط: 4–6
- عالٍ: 8–9
- عالٍ جداً: 12–16
- الأثر 4 ← «عالٍ» على الأقل (يرفع نادر × شديد من 4 متوسط)
- الاحتمال
- 1 نادر — شيفرة بسيطة لم تتغير ومختبَرة جيداً
- 2 ممكن — تغيير معتدل
- 3 مرجّح — شيفرة معقدة أو جديدة
- 4 مرجّح جداً — شيفرة جديدة ومعقدة ومتطلباتها ضعيفة
- الأثر
- 1 منخفض — عيب شكلي له حل بديل سهل
- 2 متوسط — ميزة متدهورة لدى بعض المستخدمين
- 3 عالٍ — مسار أساسي معطّل أو بيانات خاطئة
- 4 شديد — عواقب مالية أو قانونية أو أمنية أو على السلامة
النسخة النصية
Likelihood Impact
1 Rare – simple, unchanged, 1 Low – cosmetic, easy workaround
well tested 2 Medium – feature degraded, some users
2 Possible – moderate change 3 High – core flow broken or wrong data
3 Likely – complex or new code 4 Severe – money, legal, security or
4 Very likely – new + complex + safety consequence
weak requirements
IMPACT
1 Low 2 Medium 3 High 4 Severe
LIKELIHOOD 4 | 4 M | 8 H | 12 VH | 16 VH |
3 | 3 L | 6 M | 9 H | 12 VH |
2 | 2 L | 4 M | 6 M | 8 H |
1 | 1 L | 2 L | 3 L | 4 M |
Bands: 1–3 Low · 4–6 Medium · 8–9 High · 12–16 Very high
Rule: any risk with Impact 4 is at least High, whatever the product.من مستوى الخطر إلى أولوية الاختبار وعمقه
يحدد مستوى الخطر أمرين: ترتيب الاختبار (المخاطر العالية أولاً، حتى إذا نفد الوقت كان العمل غير المختبَر هو الأقل خطراً) وعمق الاختبار (كم تقنية، وكم تغطية، وكم استقلالية). اكتب هذا الربط في استراتيجية الاختبار حتى لا يُعاد التفاوض على العمق ميزةً ميزة.
- عالٍ جداً — عدة تقنيات تصميم مجتمعة (تحليل القيم الحدّية، وجداول القرار، واختبار انتقال الحالات)، واختبارات سلبية ولمسارات الخطأ، وفحوص غير وظيفية حين يكون الخطر غير وظيفي، وانحدار مؤتمت على مستوى API يعمل عند كل بناء، وجلسة استكشافية لمختبِر ثانٍ، ومراجعة للاختبارات نفسها.
- عالٍ — اختبارات حدّية وسلبية على كل مدخل مهم، وتغطية جميع معايير القبول، وانحدار مؤتمت عند كل بناء أو ليلياً، وجلسة استكشافية واحدة.
- متوسط — تغطية جميع معايير القبول مع الحالات السلبية الرئيسية؛ والانحدار ضمن الحزمة الليلية أو حزمة الإصدار؛ واختبار استكشافي إن سمح الوقت.
- منخفض — التحقق من المسار السعيد ومعايير القبول، أو الاكتفاء باختبارات الدخان؛ وقرار الاختبار الخفيف يُسجَّل ولا يُتخذ بصمت.
- الترتيب — ابدأ بالمخاطر العالية جداً فور توفر بناء قابل للاختبار؛ واختبر المخاطر المنخفضة أخيراً واحذفها أولاً.
استخدام المخاطر لاختيار اختبارات الانحدار
نادراً ما تتسع نافذة الإصدار لحزمة الانحدار كاملة، لذا فكل إصدار يختار. ويجمع اختيار الانحدار المبني على المخاطر بين تحليل أثر التغيير (Change impact analysis) وسجل المخاطر: تعمل أولاً الاختبارات على الشيفرة المتغيّرة وما يعتمد عليها، مرجَّحةً بمستوى خطر المناطق المتأثرة.
- اسرد ما تغيّر — الـ commits وطلبات الدمج وملاحظات الإصدار وترحيلات قاعدة البيانات وتحديثات الإعدادات والاعتماديات.
- تتبّع الاعتماديات — أي الشاشات وواجهات API والمهام المجدولة والتقارير والمكوّنات المشتركة تستدعي ما تغيّر أو تقرؤه؛ فالأداة المساعدة المشتركة أو جدول قاعدة البيانات يمسّ أكثر مما يوحي به اسم ملفه.
- شغّل النواة دائماً — مجموعة ثابتة من اختبارات الدخان والمسارات الحرجة (تسجيل الدخول، والدفع، والمعاملة الأساسية) تعمل عند كل بناء بغضّ النظر عن التغيير.
- أضف الاختبارات المتأثرة — الاختبارات المرتبطة بالمناطق المتغيّرة والمعتمدة عليها، الأعلى خطراً أولاً.
- املأ الوقت المتبقي — حسب مستوى خطر المناطق التي لم يمسّها التغيير، مع تدوير المناطق المتوسطة والمنخفضة عبر الإصدارات حتى لا تبقى إحداها دون اختبار طويلاً.
- سجّل ما لم يُشغَّل — الاختبارات غير المختارة جزء من بيان المخاطر المتبقية.
جرّبها: مولّد سيناريوهات الانحدار جرّبها: مولّد اختبارات الانحدار بالذكاء الاصطناعي
مثال عملي: سجل مخاطر لميزة إتمام الشراء
على سبيل المثال، متجر إلكتروني افتراضي يضيف صفحة إتمام شراء جديدة مع بطاقات محفوظة ورموز خصم وتحقق 3-D Secure. أنتجت الورشة السجل أدناه. تستخدم الدرجات مقياسَي 1–4 السابقين، لا مقياس 1–5 الذي يعتمده «مولّد الاختبار المبني على المخاطر» المرتبط أدناه؛ فإدخال هذه الأرقام في المولّد يعطي مستويات مختلفة (يخرج R4 متوسطاً، لأن المولّد لا يطبّق قاعدة «الأثر 4»). و«استجابة الاختبار» (Test response) هي ما تلتزم به الخطة لكل خطر.
- السجل بإيجاز (الاحتمال، ثم الأثر، ثم الدرجة والمستوى): R1 خصم المبلغ من البطاقة دون إنشاء طلب بسبب انتهاء مهلة البوابة بعد التحصيل — 3 و4، الدرجة 12، عالٍ جداً؛ R2 إجمالي خاطئ عند اجتماع الخصم وضريبة القيمة المضافة — 3 و4، الدرجة 12، عالٍ جداً؛ R3 الإرسال المزدوج ينشئ طلبين — 2 و4، الدرجة 8، عالٍ؛ R4 ظهور بطاقة محفوظة لمستخدم آخر (خلل في التحكم بالوصول) — 1 و4، الدرجة 4، رُفع إلى عالٍ بقاعدة «الأثر 4»؛ R5 فشل تحدي 3-D Secure على Safari في الجوال — 2 و3، الدرجة 6، متوسط؛ R6 تأخر رسالة التأكيد أكثر من 5 دقائق — 2 و2، الدرجة 4، متوسط؛ R7 اقتطاع العنوان العربي في إيصال PDF — 3 و1، الدرجة 3، منخفض.
- ترتيب العمل: R1 وR2 أولاً، ثم R3 وR4، ثم R5 وR6، وأخيراً R7.
- يحصل R1 وR2 على معظم الجهد: تقنيتان لكل منهما، واختبارات API مؤتمتة في خط التكامل (Pipeline)، وجلسة استكشافية حول حالات فشل الدفع.
- احتمال R4 منخفض لكن أثره شديد؛ ودرجته 4 وحدها تجعله متوسطاً، فترفعه قاعدة «الأثر 4» إلى عالٍ كي لا تخفي الدرجةُ احتمالَ خرق للبيانات.
- يحصل R7 على حالة اختبار واحدة؛ وإذا تأخر الجدول فهو أول ما يُحذف، ويُكتب الحذف في بيان المخاطر المتبقية.
Feature: Checkout v2 (saved cards, discount codes, 3-D Secure) Release 5.3
ID Risk L I Score Level Test response
R1 Card charged but no order created 3 4 12 VH State transitions of payment; gateway
(gateway timeout after capture) timeout/5xx via mock; retry and
reconciliation check; exploratory
R2 Wrong total when discount and VAT combine 3 4 12 VH Decision table promo x VAT x rounding;
(e.g. 99.99 SAR, 10% code, 15% VAT) boundary amounts 0.01 / max; API tests
R3 Double submit creates two orders 2 4 8 H Double click, browser back, network
retry; idempotency key verified
R4 Another user's saved card visible 1 4 4 H* Two-account authorization tests;
(broken access control) added to security regression
R5 3-D Secure challenge fails on mobile Safari 2 3 6 M Target devices: happy + cancel path
R6 Confirmation email delayed over 5 minutes 2 2 4 M One end-to-end check; alert in staging
R7 Arabic address truncated on receipt PDF 3 1 3 L One case in localisation pass
* raised from Medium to High by the Impact-4 rule.
Order of work: R1, R2 -> R3, R4 -> R5, R6 -> R7.تخفيف المخاطر ومتابعتها أثناء الإصدار
الاختبار وسيلة تخفيف واحدة من عدة وسائل. يمكن خفض خطر عالٍ أيضاً بتغيير التصميم (مفاتيح عدم التكرار Idempotency keys ضد الطلبات المزدوجة)، أو بتقليل التعرّض (علم ميزة Feature flag أو إطلاق تدريجي)، أو باكتشاف الفشل سريعاً في الإنتاج (مراقبة وتنبيهات على مطابقة المدفوعات). ويجب أن يسمّي سجل المخاطر وسيلة التخفيف، لا الاختبارات فقط.
تتغيّر المخاطر مع تقدّم الإصدار. أعد التقييم عند نقاط ثابتة — بعد دورة الاختبار الأولى، وبعد كل عيب مهم، وقبل اجتماع قرار الإطلاق. تكدّس العيوب في منطقة ما يرفع احتمالها؛ وتشغيل نظيف لاختبارات عميقة يخفضه. وتتبّع عدد المخاطر العالية والعالية جداً المفتوحة عبر الزمن يعطي منحنى تناقص مخاطر بسيطاً يفهمه أصحاب المصلحة.
- أضف خطراً عندما يكشف الاختبار نمط فشل جديداً؛ لا تنتظر الورشة التالية.
- اربط كل عيب بالخطر الذي يؤكده، حتى يعرض السجل أدلة لا آراء فقط.
- لا تغلق خطراً إلا بعد تنفيذ اختباراته المخطط لها ونجاحها، أو بعد قبوله رسمياً من مالكه.
الإبلاغ عن المخاطر المتبقية
المخاطر المتبقية (Residual risk) هي ما يبقى بعد الاختبار: مخاطر اختُبرت بخفة، واختبارات لم تُنفّذ، وعيوب مفتوحة، ومناطق لم يفحصها أحد. والإبلاغ عنها أنفع ما يمكن أن يقدمه تقرير الاختبار، لأنه يتيح لمالكي الإصدار قبول الخطر المتبقي عن علم بدلاً من اكتشافه في الإنتاج.
Residual risk — Checkout v2, release 5.3
Reduced: R1, R2, R3, R4 — planned tests executed and passed; no open defects
Partial: R5 — tested on 2 of 4 target devices (Android tablet and
older iOS not available); owner: product manager, accepted
Open: R6 — defect CHK-214 (email delayed up to 12 min under load)
open, severity Major; mitigation: alert on queue length
Not tested: R7 — cut for schedule; one known cosmetic issue possible
Out of scope: refunds flow (unchanged this release; smoke only)
Recommendation: release with the R5 and R6 conditions above accepted in writing.حدود الاختبار المبني على المخاطر
- الدرجات ذاتية. الاحتمال خصوصاً حكم تقديري؛ ومجموعات مختلفة تقيّم الخطر نفسه بشكل مختلف، وقد يثبّت أعلى الأصوات في الورشة تقديرات الآخرين. قيّموا منفردين أولاً ثم ناقشوا الفروق.
- الدقة الزائفة. ضرب رقمين ترتيبيين ينتج رقماً يبدو دقيقاً وليس كذلك: 12 ليست أخطر من 8 بنسبة 50% بالضبط. استخدم الدرجات للفرز والتصنيف في شرائح، ولا تحسب منها نسباً مئوية أو متوسطات.
- المخاطر المجهولة تبقى مجهولة. لا يحتوي السجل إلا الأعطال التي تخيّلها أحد. خصّص وقتاً للاختبار الاستكشافي غير مرتبط بأي خطر مدرج.
- السجلات تتقادم. سجل كُتب في بداية المشروع ولم يُحدَّث يعطي ثقة زائفة. أعد التقييم عند نقاط ثابتة.
- الخطر المنخفض ليس انعدام خطر. المناطق منخفضة الخطر تحصل مع ذلك على فحص أدنى، وتأجيلها المتكرر عبر الإصدارات خطر بحد ذاته.
- البيروقراطية. للتغيير الصغير تكفي محادثة من خمس دقائق بالسؤالين نفسيهما — ما مدى الاحتمال، وما مدى السوء؛ فالطريقة قابلة للتصغير.
الأسئلة الشائعة
ما هو الاختبار المبني على المخاطر بعبارة بسيطة؟
هو تقرير ما يُختبر أولاً وبأي دقة بالنظر إلى أمرين لكل منطقة: مدى احتمال فشلها ومدى سوء الفشل. المناطق عالية الاحتمال وعالية الأثر تحصل على أكثر الاختبار وأبكره.
ما الفرق بين خطر المنتج وخطر المشروع؟
خطر المنتج طريقة قد يخذل بها البرنامج مستخدميه، مثل إجمالي دفع خاطئ. وخطر المشروع طريقة قد يفشل بها المشروع في التسليم، مثل تأخر بيئة الاختبار. الاختبار يخفّض مخاطر المنتج؛ والتخطيط والإدارة يعالجان مخاطر المشروع.
كيف تُحسب درجة الخطر؟
قيّم الاحتمال والأثر على مقاييس قصيرة معرَّفة (مثلاً 1–4) واضربهما. استخدم الناتج لتصنيف المخاطر في شرائح مثل منخفض ومتوسط وعالٍ وعالٍ جداً، وأضف قاعدة ألا يُصنَّف خطر ذو أثر شديد دون «عالٍ» أبداً.
من يجب أن يشارك في تحديد المخاطر؟
ملكية المنتج والتطوير والاختبار والعمليات كحد أدنى، إضافة إلى الأمن أو الدعم أو خبراء المجال عندما تمسّ الميزة مجالهم. كل دور يرى أنماط فشل مختلفة.
كيف يساعد الاختبار المبني على المخاطر في اختبار الانحدار؟
يتيح لك اختيار اختبارات الانحدار التي تُشغَّل حين لا تتسع النافذة للحزمة كاملة: شغّل دائماً نواة المسارات الحرجة، ثم الاختبارات على المناطق المتغيّرة والمعتمدة عليها، ثم الباقي حسب الخطر، وأبلغ عمّا تُرك.
هل تستطيع أداة أو الذكاء الاصطناعي تقييم المخاطر نيابة عني؟
تستطيع الأداة تنظيم التقييم وإنتاج خطة مرتبة الأولويات من تقديراتك، ويستطيع مساعد ذكاء اصطناعي اقتراح مخاطر ربما فاتتك. لكن التقديرات نفسها تحتاج إلى أشخاص يعرفون المنتج والمستخدمين والعواقب على العمل.
ما هي المخاطر المتبقية؟
هي الخطر الذي يبقى بعد الاختبار: مناطق اختُبرت بخفة أو لم تُختبر، واختبارات لم تُنفّذ، وعيوب ما زالت مفتوحة. ويذكرها تقرير إتمام الاختبار الجيد صراحة حتى يقبلها مالك الإصدار عن علم.
المراجع
- ISTQB Certified Tester Foundation Level (CTFL) v4.0المنهج التأسيسي لاختبار البرمجيات: مستويات الاختبار وأنواعه وتقنيات تصميم الاختبارات وإدارة الاختبار والأدوات.
- Certified Tester Advanced Level Test Management (CTAL-TM) v3.0منهج ISTQB المتقدم لإدارة الاختبار: التخطيط والتقدير، والاختبار المبني على المخاطر، والمتابعة، والمقاييس والتقارير.
- ISO/IEC/IEEE 29119-2:2021 — Software and systems engineering — Software testing — Part 2: Test processesنموذج عمليات الاختبار: العمليات المؤسسية وعمليات إدارة الاختبار وعمليات الاختبار الديناميكي، مع أنشطتها ومخرجاتها.
- ISO/IEC/IEEE 29119-1:2022 — Software and systems engineering — Software testing — Part 1: General conceptsالمعيار الدولي لاختبار البرمجيات: المفاهيم والعمليات والتوثيق والتقنيات.
- ISO/IEC 25010:2023 — Systems and software Quality Requirements and Evaluation (SQuaRE) — Product quality modelنموذج جودة المنتج: الملاءمة الوظيفية وكفاءة الأداء والتوافق وقابلية التفاعل والموثوقية والأمان وقابلية الصيانة والمرونة.
- ISTQB Glossaryالتعريفات القياسية لمصطلحات الاختبار — حالة الاختبار واختبار الانحدار والخطورة والأولوية وتحليل القيم الحدّية وغيرها.
تمرين عملي
ابنِ سجل المخاطر لإصدار نظام حجز مواعيد العيادات
يستعد نظام خيالي لحجز المواعيد يعمل بنموذج البرمجيات كخدمة (SaaS)، وتستخدمه العيادات الخاصة للحجز عبر الإنترنت، لإطلاق الإصدار 3.4. عقد الفريق ورشة مخاطر، وتجد أدناه ما قاله كل مشارك بترتيب كلامه، ثم ما حدث أثناء الاختبار. ولدى مختبِرَين 8 أيام عمل لتنفيذ الاختبار.
حوّل الملاحظات إلى سجل مخاطر (Risk register) باستخدام مقياسَي الاحتمال والأثر من 1 إلى 4 الواردين في الدليل، وشرائحه (من 1 إلى 3 منخفض، ومن 4 إلى 6 متوسط، ومن 8 إلى 9 عالٍ، ومن 12 إلى 16 عالٍ جداً)، وقاعدته التي تنص على أن كل خطر أثره 4 لا يقل مستواه عن «عالٍ». ثم خطّط لترتيب الاختبار وعمقه، وتعامل مع مستجدات اليوم الثالث، واكتب بيان المخاطر المتبقية لاجتماع قرار الإطلاق (go/no-go). استخدم الوقائع الواردة في الملاحظات فقط؛ وحيث تضطر إلى افتراض شيء، فاكتب افتراضك.
اعمل على الورق أو في جدول بيانات. تستخدم أداة «مولّد الاختبار المبني على المخاطر» مقياساً مختلفاً من 1 إلى 5 بشرائح مختلفة، فلا تُدخل فيها درجات هذا التمرين. ويمكنك في الخطوة 3 أن تنمذج حالات موعد في البند W1 وأحداثه بأداة «مولّد انتقالات الحالات» لترى أي الانتقالات يجب رفضها، وأن تستخرج قيم المهلة في البند W8 بالدقائق (24 ساعة تساوي 1440 دقيقة) بأداة «تحليل القيم الحدّية».
نظام حجز مواعيد للعيادات بنموذج SaaS (خيالي) - الإصدار 3.4 - ملاحظات ورشة المخاطر
الحضور: مالك المنتج، وقائد التطوير، ومختبِران، وقائد الدعم الفني، ومسؤول الأمن
الخطة: 8 أيام عمل لتنفيذ الاختبار بمختبِرَين؛
واجتماع قرار الإطلاق (go/no-go) بعد اليوم الثامن
ما يتغيّر في الإصدار 3.4
جديد: الدفع المسبق لرسوم الاستشارة بالبطاقة أثناء الحجز
أُعيدت كتابته: محرك إتاحة المواعيد، ليدعم مجموعات العيادات متعددة الفروع
معدَّل: رسائل التذكير النصية (SMS) تُرسل عبر مزوّد رسائل جديد
معدَّل: زر جديد «إعادة الجدولة» في صفحة «مواعيدي»
معدَّل: صفحة تأكيد الحجز، أُعيد بناؤها لتعرض ملخص الدفع المسبق
دون تغيير: شاشات إدارة جداول الأطباء، والتقارير الشهرية
ملاحظات الورشة
البند W1 - قائد التطوير: أُعيدت كتابة محرك الإتاحة من الصفر. وتغيّرت قواعد الفروع مرتين
أثناء السبرنت، وما زال معياران من معايير القبول مفتوحين. وإن أخفق، حُجز مريضان عند
الطبيب نفسه في الوقت نفسه، ويُعاد أحدهما من مكتب الاستقبال.
البند W2 - مختبِر: طُلب الوصول إلى بيئة التجربة (Sandbox) لمزوّد الدفع قبل 10 أيام،
ولم يُمنح بعد.
البند W3 - مالك المنتج: الدفع المسبق شيفرة جديدة تستدعي مزوّد دفع جديداً. يُخصم المبلغ
من البطاقة أولاً، ثم يُحفظ الموعد. وإن فشل الحفظ، يكون المريض قد دفع ولا موعد له.
البند W4 - مسؤول الأمن: تعرض صفحة «مواعيدي» أسماء المرضى والأطباء وتخصصات العيادات.
قائمتها وفحوص الوصول فيها لم تتغير في الإصدار 3.4، وتغطيها اختبارات الصلاحيات
المؤتمتة عند كل بناء منذ سنتين دون أي عيب. واطّلاع مريض على مواعيد غيره
خرق لبيانات صحية.
البند W5 - قائد الدعم الفني: مهمة التذكير تستدعي الآن مزوّد الرسائل الجديد؛ وهذا التكامل
شيفرة جديدة، أما منطق الجدولة فلم يتغير. ودون تذكير ينسى بعض المرضى موعدهم، لكن تبقى
لديهم رسالة التأكيد بالبريد الإلكتروني والموعد في التطبيق.
البند W6 - قائد التطوير: عمر هو المطوّر الوحيد الذي يعرف بيانات المحرك القديم، وينتقل
إلى فريق آخر بعد اليوم الثاني من الاختبار.
البند W7 - مالك المنتج: الهدف أن يجيب البحث عن المواعيد خلال ثانيتين لمجموعة من 25 فرعاً.
ولم يعمل المحرك الجديد إلا مع عيادات اختبار تصل إلى 3 فروع. وأكبر عملائنا لديه
22 فرعاً، ومعظم حجوزاته تصل في الساعة الأولى بعد فتح مواعيد اليوم في 08:00. وإن
انتهت مهلة البحث، عجز مرضاه عن الحجز عبر الإنترنت.
البند W8 - مختبِر: يعيد زر «إعادة الجدولة» استخدام قاعدة الإلغاء الحالية (يُسمح بالتغيير
حتى 24 ساعة قبل الموعد)، وشيفرتها لم تتغير؛ الجديد هو الزر وشاشته فقط. وإن طُبّقت
القاعدة خطأً، رُفض تغيير يحق للمريض، أو قُبل تغيير متأخر. وتستطيع العيادة تغيير
الموعد هاتفياً.
البند W9 - مختبِر: لا توجد بيانات اختبار بحجم مجموعة من 25 فرعاً، وبيانات الإنتاج فيها
بيانات مرضى، فلا يجوز نسخها إلى بيئة staging.
البند W10 - المصمم: في صفحة التأكيد الجديدة التفّت أسماء العيادات العربية الطويلة على
ثلاثة أسطر في مراجعة التصميم. والاسم الكامل موجود أيضاً في رسالة التأكيد بالبريد.
اليوم الثالث، نهاية دورة الاختبار الأولى
- ثلاثة عيوب في رسائل التذكير: تذكيران مكرران، وتذكير لم يُرسل.
- قُدّم موعد الإصدار: ينتهي تنفيذ الاختبار الآن بعد اليوم السادس بدلاً من الثامن.
الحالة في نهاية اليوم السادس
- البنود W1 وW3 وW4: نُفّذت كل الاختبارات المخططة ونجحت. واكتُشف أثناء اختبار W1
العيب CLN-311 (حجز مزدوج عندما يؤكد مريضان الموعد نفسه خلال ثانية واحدة)، فأُصلح
ونجح اختبار التأكيد الخاص به. ووصلت بيئة التجربة في اليوم الرابع، فأُعيدت فيها
اختبارات الدفع.
- البند W5: أُصلح اثنان من عيوب التذكير الثلاثة وأُعيد اختبارهما. والعيب CLN-322
(يُرسل التذكير مرتين بعد إعادة جدولة الموعد) مفتوح، وخطورته «ثانوي» (Minor).
- البند W7: تحقق هدف الثانيتين مع مجموعة اصطناعية من 22 فرعاً؛ ولم تجهز بيانات
مجموعة الـ25 فرعاً.
- كل اختبار خططت له أو أضفته أو أبقيته ولم يُذكر أعلاه قد نجح.- صنّف البنود من W1 إلى W10 إلى مخاطر منتج (Product risks) ومخاطر مشروع (Project risks). ولكل خطر مشروع اكتب وسيلة تخفيف واحدة، ومالكها، وخطر المنتج الذي يهدد اختبارَه.
- لكل خطر منتج، قدّر الاحتمال والأثر من 1 إلى 4، واذكر الواقعة في البند التي بنيت عليها كل تقدير. اضرب الرقمين، وضع الدرجة في شريحتها، وطبّق قاعدة «الأثر 4».
- اكتب ترتيب العمل وعمق الاختبار لكل خطر منتج، مستعيناً بالربط بين مستوى الخطر وعمق الاختبار في الدليل. وسمِّ لكل خطر عالٍ أو عالٍ جداً تقنية اختبار أو نوع اختبار واحداً على الأقل، وأضف لأعلى خطرين وسيلة تخفيف واحدة غير الاختبار.
- طبّق مستجدات اليوم الثالث: أعد تقييم ما تغيّره الأدلة الجديدة، ثم قرّر ما تحذفه بعد أن صار تنفيذ الاختبار ينتهي بعد اليوم السادس، وسجّل كل حذف.
- من الحالة في نهاية اليوم السادس، اكتب بيان المخاطر المتبقية (ما خُفّض، وما خُفّض جزئياً، وما بقي مفتوحاً، وما لم يُختبر، وما هو خارج النطاق) وتوصية في سطر واحد لاجتماع قرار الإطلاق.
إظهار الإجابة النموذجية
مخاطر المشروع: W2 وW6 وW9. فهي تهدد قدرة الفريق على الاختبار لا المنتج نفسه، لذا مكانها خطة الاختبار مع مالك لكل منها، ولا تنخفض بكتابة مزيد من حالات الاختبار. البند W2 (لا وصول إلى بيئة التجربة) — التخفيف: يصعّد مالك المنتج الطلب لدى المزوّد، وفي الأثناء يُختبر W3 مقابل محاكاة (Mock) لاستجابات المزوّد، ثم تُعاد اختبارات الدفع في بيئة التجربة حين تصل؛ والمالك مدير الاختبار؛ ويهدد W3. البند W6 (انتقال عمر بعد اليوم الثاني) — التخفيف: في اليومين الأول والثاني يوثّق عمر كيف يخزّن المحرك القديم المواعيد القائمة وقواعد الفروع، ويراجع حالات اختبار W1، ويعمل مع مختبِر على أولى اختبارات W1؛ والمالك قائد التطوير؛ ويهدد W1. البند W9 (لا بيانات بحجم 25 فرعاً) — التخفيف: توليد مجموعة اصطناعية من 25 فرعاً (أطباء ومواعيد وحجوزات) بنص برمجي أو بمولّد بيانات قبل اختبار الأداء، وليس نسخة من الإنتاج أبداً؛ والمالك مدير الاختبار مع مطوّر؛ ويهدد W7.
مخاطر المنتج، بصيغة الاحتمال × الأثر = الدرجة، ثم المستوى. W1 الحجز المزدوج: 4 × 3 = 12، عالٍ جداً. فالمحرك أُعيدت كتابته (جديد)، ويتعامل مع فروع متعددة (معقد)، وتغيّرت قواعده مرتين وما زال معياران من معايير القبول مفتوحين (متطلبات ضعيفة)، وهذا تعريف «مرجّح جداً». ومريض يُعاد من الاستقبال مع بيانات حجز خاطئة يعني مساراً أساسياً معطّلاً، أي أثراً 3. W3 خصم المبلغ من البطاقة دون موعد: 3 × 4 = 12، عالٍ جداً. فالشيفرة الجديدة مع مزوّد جديد تعني «مرجّح»، وأخذ المال دون تقديم الخدمة أثر «شديد».
W7 بطء البحث عن المواعيد: 3 × 3 = 9، عالٍ. محرك جديد ومعقد لم يعمل بهذا الحجم قط، لكن له هدفاً مكتوباً واضحاً، فهو «مرجّح» لا «مرجّح جداً»؛ وعجز مرضى أكبر عميل عن الحجز عبر الإنترنت مسار أساسي معطّل. W4 اطّلاع مريض على مواعيد غيره: 1 × 4 = 4، أي متوسط بحسب الشرائح، وترفعه قاعدة «الأثر 4» إلى عالٍ. فما لم يتغير ويُختبر عند كل بناء منذ سنتين «نادر»، وخرق البيانات الصحية أثر «شديد». W5 رسائل التذكير: 3 × 2 = 6، متوسط. شيفرة التكامل الجديدة تعني «مرجّح»؛ وفقدان التذكير لدى بعض المرضى، مع وجود البريد والتطبيق حلاً بديلاً، ميزة متدهورة. W8 قاعدة إعادة الجدولة: 2 × 2 = 4، متوسط. قاعدة لم تتغير خلف زر جديد تغيير معتدل، والهاتف حل بديل. W10 أسماء العيادات العربية: 3 × 1 = 3، منخفض. تخطيط صفحة جديد يعني «مرجّح»، والتفاف النص مع وجود الاسم كاملاً في البريد عيب شكلي.
ترتيب العمل: W1 وW3 من اليوم الأول، ثم W7 وW4، ثم W5 وW8، وW10 أخيراً. ابدأ W1 ما دام عمر في الفريق، واختبر W3 مقابل المحاكاة إلى أن تصل بيئة التجربة، وابدأ W7 فور جاهزية البيانات الاصطناعية. W1 (عالٍ جداً): اختبار انتقال الحالات لموعد في جدول الطبيب (Slot)، بحالاته: متاح، ومحجوز مؤقتاً، ومحجوز، وأحداثه: الحجز المؤقت، والتأكيد، وانتهاء مهلة الحجز المؤقت، والإلغاء، وإعادة الجدولة؛ وجدول قرار لقواعد الفروع بعد حسم معياري القبول المفتوحين؛ وقيم حدّية عند بداية يوم الطبيب ونهايته وبين المواعيد المتجاورة؛ واختبارات سلبية منها تأكيد مريضين الموعد نفسه في اللحظة نفسها؛ وفحص أن المواعيد المحجوزة بالمحرك القديم ما زالت تشغل أوقاتها؛ وانحدار مؤتمت على مستوى API عند كل بناء؛ وجلسة استكشافية يجريها المختبِر الثاني؛ ومراجعة عمر للاختبارات. ووسيلة التخفيف غير الاختبار: قيد تفرّد (Unique constraint) يجعل قاعدة البيانات ترفض حجزاً ثانياً للطبيب نفسه في الوقت نفسه.
W3 (عالٍ جداً): اختبار انتقال الحالات للدفع والحجز (بدأ، خُصم المبلغ، حُفظ، فشل الحفظ، رُدّ المبلغ)؛ ومسارات الخطأ عبر المحاكاة (انتهاء مهلة المزوّد بعد الخصم، وخطأ من المزوّد، وفشل الحفظ بعد الخصم، وإغلاق المريض التطبيق بعد الدفع، وتكرار إشعار الدفع)؛ وفحص مطابقة يتأكد أن لكل خصم موعداً أو مبلغاً مردوداً؛ وانحدار مؤتمت على مستوى API في خط التكامل (Pipeline) عند كل بناء؛ وجلسة استكشافية حول حالات فشل الدفع يجريها المختبِر الثاني؛ ومراجعة الاختبارات من المطوّر الذي بنى تكامل الدفع. ووسيلة التخفيف غير الاختبار: الاكتفاء أولاً بحجز المبلغ على البطاقة دون تحصيله (Authorize)، ثم تحصيله (Capture) بعد حفظ الموعد فقط، وتنبيه في الإنتاج على أي خصم بلا موعد.
W7 (عالٍ، غير وظيفي): اختبار أداء للبحث عن المواعيد بالمجموعة الاصطناعية بحجم أكبر عميل فعلي (22 فرعاً) وبالحجم المستهدف (25 فرعاً)، مع حمل يشبه ذروة الساعة 08:00، ويُقاس على هدف الثانيتين؛ وفحص مؤتمت ليلي لزمن البحث؛ وجلسة استكشافية للبحث عبر فروع كثيرة. W4 (عالٍ بحكم القاعدة): اختبارات التحكم بالوصول (Authorization) بحسابين — يحاول المريض أ فتح موعد المريض ب وإعادة جدولته وإلغاءه بتغيير رقم الموعد في الطلب، ويجب أن يُرفض دون أن يرى أي بيانات للمريض ب؛ وتبقى اختبارات الصلاحيات الحالية في الحزمة التي تعمل عند كل بناء؛ وجلسة استكشافية واحدة حول الوصول. وهذه الاختبارات رخيصة لأن المنطقة لم تتغير، فالقاعدة تضمن فقط ألا تخفي الدرجة المنخفضة خرقاً. W5 وW8 (متوسط): كل معايير القبول مع الحالات السلبية الرئيسية، والانحدار في الحزمة الليلية. في W5: تذكير واحد في الوقت المتفق عليه، ولا تذكير بعد الإلغاء، وتذكير محدَّث بعد إعادة الجدولة، وإعادة المحاولة عند خطأ المزوّد دون تكرار. وفي W8: حدّ المهلة عند 24 ساعة ودقيقة، و24 ساعة تماماً، و23 ساعة و59 دقيقة قبل الموعد — واسأل: هل يُسمح بالتغيير عند 24 ساعة تماماً، وبأي وحدة زمنية يقارن النظام؟ W10 (منخفض): فحص واحد بأطول اسم عيادة عربي ضمن جولة التوطين، مع تسجيل قرار الاختبار الخفيف كتابةً.
تُحسب لك إن لاحظتها: الملاحظات تُغفل خطراً. فزر «إعادة الجدولة» طريقة جديدة لتغيير موعد يُعرَّف برقمه، فقد يعيد مريض جدولة موعد غيره. أضفه بنداً باسم W11: احتماله 2 أو 3 بحسب ما إذا كان الإجراء الجديد يعيد استخدام فحص الوصول الحالي (اسأل قائد التطوير)، وأثره 4، فهو عالٍ على الأقل؛ وغطِّه باختبارات الحسابين في W4. وشكّك أيضاً في عبارة «دون تغيير»: إن كانت التقارير الشهرية تحسب المواعيد كما هو معتاد، فهي تقرأ بيانات يكتبها الآن المحرك المعاد كتابته، فأبقِ اختبارات انحدارها ضمن المجموعة المختارة.
اليوم الثالث: ثلاثة عيوب في منطقة واحدة دليل يرفع احتمال W5 من 3 إلى 4: 4 × 2 = 8، عالٍ. اربط العيوب الثلاثة بالبند W5، وانقله إلى مجموعة المخاطر العالية، وارفع عمقه: اختبارات حدّية وسلبية حول إعادة الجدولة والإلغاء، وانحدار مؤتمت ليلياً أو عند كل بناء، وجلسة استكشافية حول التذكيرات، وتنبيه في الإنتاج على الرسائل المكررة أو الفاشلة. ولا يحمل أي بند آخر دليلاً جديداً، فتبقى بقية الدرجات كما هي. ولتعويض اليومين المفقودين، احذف من أسفل الترتيب وسجّل كل حذف: يُحذف W10 أولاً (منخفض وشكلي، والاسم الكامل في البريد)؛ ويحتفظ W8 بمعايير القبول واختبارات الحدود لكن دون وقت استكشافي. ولا يُحذف أي خطر عالٍ أو عالٍ جداً — ومنها W5 الآن — ولا يُخفَّف اختباره إلا بقبول مكتوب من مالك المنتج.
المخاطر المتبقية، نظام حجز العيادات 3.4. ما خُفّض: W1 وW3 وW4 (مع W11) وW8 — نُفّذت الاختبارات المخططة ونجحت؛ وأُصلح العيب CLN-311 وتأكد إصلاحه؛ وجرت اختبارات الدفع مقابل المحاكاة ثم أُعيدت في بيئة التجربة حين وصلت في اليوم الرابع. ما خُفّض جزئياً: W7 — تحقق هدف الثانيتين عند 22 فرعاً، وهو حجم أكبر عميل حالي، لكنه لم يُقس عند الهدف البالغ 25 فرعاً لأن البيانات (خطر المشروع W9) لم تجهز. ما بقي مفتوحاً: W5 — العيب CLN-322، تذكير يُرسل مرتين بعد إعادة الجدولة، وخطورته «ثانوي» (Minor)؛ وأُصلح عيبا التذكير الآخران. ما لم يُختبر: W10 — حُذف بسبب الجدول الزمني؛ والعيب الشكلي مرجّح، والاسم الكامل في رسالة التأكيد. خارج النطاق: شاشات إدارة جداول الأطباء والتقارير الشهرية — لم تتغير، وتغطيها حزمة الانحدار فقط. التوصية: الإطلاق، إذا قبل مالك المنتج كتابةً العيب CLN-322 والفجوة في W7، على أن يُقاس زمن البحث عند 25 فرعاً قبل تشغيل أي عميل بهذا الحجم.
راجع عملك: الدرجات أحكام تقديرية، فالفرق بنقطة واحدة في الاحتمال مقبول إذا استطعت أن تسمّي الواقعة التي بنيت عليها — W7 باحتمال 4 لأن المحرك لم يعمل بهذا الحجم قط (12، عالٍ جداً)، أو أثر W1 بدرجة 4 إن كان فريقك يعدّ فوات الاستشارة الطبية مسألة سلامة (16، ويبقى عالياً جداً)، أو W10 باحتمال 4 لأن الالتفاف شوهد فعلاً (متوسط، ويبقى أول ما يُحذف لأنه شكلي). أما ما يجب أن يتطابق: W2 وW6 وW9 مخاطر مشروع لها مالكون؛ وكل درجة هي الاحتمال × الأثر موضوعة في شرائح الدليل؛ وW4 عالٍ بسبب قاعدة «الأثر 4» وحدها؛ وW1 وW3 أولاً؛ ويرتفع W5 بعد اليوم الثالث؛ ويبدأ الحذف من الأسفل ولا يمسّ أي خطر عالٍ أو أعلى دون قبول مكتوب؛ ويذكر البيان الخفض الجزئي لـW7، والعيب المفتوح CLN-322، وW10 غير المختبَر.
تقدّمك في هذا الموضوع
سجّل الدخول لتتابع تقدّمك
علّم الموضوعات مكتملة، وتابع من حيث توقفت، وافتح امتحانات التخصص.
جزء من مسار تعلم ضمان الجودة
قبل هذا الموضوع
الموضوعات التالية
الأدوات المذكورة في هذا الدليل
قيّم الميزات حسب الاحتمالية والأثر، ثم ولّد خطة اختبار مبنية على المخاطر ومرتّبة حسب الأولوية.
حدّد مخاطر ميزة أو إصدار وولّد خطة اختبار مبنية على المخاطر ومرتّبة حسب الأولوية باستخدام الذكاء الاصطناعي من متقن.
ولّد سيناريوهات اختبار الانحدار من وصف التغيير وقائمة الوحدات المتأثرة والمرتبطة.
ولّد مجموعة اختبارات انحدار من وصف التغيير أو ملخّص الفروقات (diff) أو ملاحظات الإصدار باستخدام الذكاء الاصطناعي من متقن.
قارن المتطلبات أو قصة مستخدم بحالات الاختبار الموجودة للعثور على المجالات غير المختبَرة، باستخدام الذكاء الاصطناعي من متقن.
حوّل قائمة متطلبات مرقّمة إلى حالات اختبار قابلة للتتبّع مع مصفوفة تربط المتطلبات بالاختبارات.