تقارير تنفيذ الاختبار
تقارير تنفيذ الاختبار (Execution Reporting) هي الطريقة التي يُبلغ بها المختبِر الفريق بما جرى في تشغيل الاختبار (Test Run): كم اختباراً نُفّذ، وماذا وجد، وما الذي تعذّر اختباره، وماذا يعني ذلك للإصدار. ولها في العمل اليومي شكلان: تقرير حالة يومي قصير (Daily Status) في نهاية كل يوم تنفيذ، وملخص التشغيل (Run Summary) عند انتهاء التشغيل أو الدورة.
مثلاً: «نُفّذ 51 من 90 اختباراً، نجح 45 وفشل 6 و8 محجوبة» يخبر الفريق إلى أين وصل التشغيل. أما «عيب حرج (Critical) يسمح بإتمام طلب بوصفة طبية مرفوضة، وكل اختبارات الدفع محجوبة» فيخبره بما هو معرَّض للخطر، وهذا هو الجزء الذي يتصرف الناس بناءً عليه.
لماذا يهم
تُتخذ قرارات الإطلاق والإصلاح بناءً على هذه التقارير، وغالباً من أشخاص لا يفتحون أداة إدارة الاختبار أبداً، فلا يستطيعون مراجعة الأعداد بأنفسهم. فإذا عُدّت المحاولات اختباراتٍ، أو عُدّت الاختبارات المحجوبة منفَّذة، ضخّمت الإجماليات التقدم، ولم يعد أحد يعرف كم من المنتج اختُبر فعلاً. أما التقارير اليومية الواضحة فتحوّل المشكلات إلى إجراءات ما دام في الوقت متسع.
وبالنسبة إلى المختبِر، فإن الأرقام التي تتطابق دائماً والمخاطر التي يتبيّن صدقها تبني المصداقية: فيقرأ الناس تقريرك أولاً. وإذا وصل عيب إلى بيئة الإنتاج، يبيّن السجل المكتوب ما اختُبر وما لم يُختبر، ومن قبِل أيّ مخاطرة.
تقريران: الحالة اليومية وملخص التشغيل
على مستوى تشغيل اختبار واحد، يكتب المختبِر تقريرين صغيرين. تقرير الحالة اليومي يُرسل في نهاية كل يوم تنفيذ إلى من يعملون مع التشغيل يومياً: قائد الاختبار والمطورين ومالك المنتج، وينبغي أن تكفي دقيقة واحدة لقراءته. أما ملخص التشغيل فيُكتب مرة واحدة عند انتهاء التشغيل أو الدورة، ويبقى مع التشغيل سجلاً له.
وبمصطلحات ISTQB، الحالة اليومية تقرير تقدم اختبار (Test progress report): يصدر أثناء سير الاختبار لكي يستجيب التحكم في الاختبار في الوقت المناسب، ويسمّي معيار ISO/IEC/IEEE 29119-3 هذا التقرير تقرير حالة الاختبار (Test status report). أما ملخص التشغيل فيغطي تشغيلاً واحداً هو في العادة جزء فقط من مستوى اختبار، فيغذّي تقرير التقدم التالي ثم تقرير إتمام الاختبار (Test completion report)؛ وفي الفريق الصغير قد يقوم هو نفسه مقام تقرير إتمام الاختبار للدورة.
- الحالة اليومية: التشغيل والإصدار البرمجي (Build) ووقت أخذ البيانات؛ والأعداد مقابل الخطة؛ والاختبارات الفاشلة والعوائق الجديدة مع المسؤول عن كل منها؛ وما المعرَّض للخطر؛ وما تحتاجه وممن؛ وخطة الغد.
- ملخص التشغيل: الأعداد النهائية لكل منطقة أو مستوى خطر؛ والعيوب المفتوحة وراء حالات الفشل؛ وما لم يُختبر ولماذا؛ والمخاطر المتبقية؛ وتقييمك مع التصريح بأنه رأيك.
عدّ النتائج بحيث تتطابق الأرقام
تستخدم الأعداد الحالات التي تعرّفت إليها في درس حزم الاختبارات وتشغيلات الاختبار. ويذكر منهج ISTQB للمستوى التأسيسي عدد حالات الاختبار المنفَّذة وغير المنفَّذة، والناجحة والفاشلة، ضمن مقاييس تقدم الاختبار المعتادة، وتضيف كثير من أدوات إدارة الاختبار حالة «محجوب» (Blocked). وتعريف واحد يحفظ أمانة الأرقام: الاختبار منفَّذ (Executed) إذا اكتمل تشغيله وانتهى إلى حكم: ناجح أو فاشل. أما الاختبار المحجوب فلم يمكن تشغيله، فهو ليس منفَّذاً ولا فاشلاً: هذا الجزء من المنتج لم يُختبر بعد، لا أكثر.
عُدّ الاختبارات لا المحاولات. بعض الفرق تبدأ تشغيلاً جديداً لكل إصدار برمجي (Build) كما في درس حزم الاختبارات وتشغيلات الاختبار، وبعضها يُبقي تشغيلاً واحداً مفتوحاً طوال الدورة ويعيد فيه اختبار الإصلاحات على الإصدارات اللاحقة. وفي الحالتين يُعدّ كل اختبار مرة واحدة بآخر نتيجة له: فالاختبار الذي فشل يوم الاثنين ونجح بعد الإصلاح يوم الأربعاء اختبار ناجح واحد، ويبقى الفشل مسجلاً في تقرير العيب وفي سجل الاختبار. ثم راجع الحساب: مجموع الناجح والفاشل والمحجوب وغير المشغَّل (Not run)، ويُضاف إليها المتخطّى (Skipped) إن كان تشغيلك يستخدم هذه الحالة، يجب أن يساوي العدد المخطط.
- اذكر المقام دائماً: نجح 86% من الاختبارات المنفَّذة، لكن ما نجح حتى الآن هو 60% فقط من التشغيل كله.
- الاختبارات المتخطّاة (Skipped) أو المستبعدة من النطاق تُكتب في سطر خاص مع السبب ومن قرّر، بدلاً من أن تختفي من الخطة فيبدو التقدم أفضل.
Run: 50 planned tests, end of day 2
Passed 30 + Failed 5 + Blocked 5 + Not run 10 = 50 planned (check)
Executed = Passed + Failed = 35
Progress = Executed / Planned = 35 / 50 = 70%
Pass rate = Passed / Executed = 30 / 35 = 86%
Passed of plan = Passed / Planned = 30 / 50 = 60%
Not executed = Blocked + Not run = 15 (30% of the run)مثال تطبيقي: تشغيل من خمسة أيام، من الحالة اليومية إلى الملخص
تطبيق لتوصيل طلبات الصيدلية، الإصدار 1.8، يمرّ بتشغيل لاختبار النظام مدته خمسة أيام: 90 اختباراً مخططاً في أربع مناطق، بنحو 18 اختباراً في اليوم. يعرض المقطع أدناه تقدم التشغيل في الساعة 17:00 من كل يوم، مأخوذاً من أداة إدارة الاختبار، يليه ملخص التشغيل المكتوب في نهاية اليوم 5.
وفي اليوم 3 كانت الحالة اليومية التي كتبها المختبِر: «اليوم 3 من 5: نُفّذ 51 من 90 (الخطة 54)؛ نجح 45، وفشل 6، و8 محجوبة، و31 لم تُشغَّل. المخاطرة: العيب الحرج PH-231 يسمح بإتمام طلب بوصفة طبية مرفوضة. اختبارات الدفع بالبطاقة والمحفظة الثمانية كلها محجوبة بسبب بيئة الدفع التجريبية منذ اليوم 2؛ المسؤول: فريق DevOps، ولا موعد لاستعادتها. المطلوب: موعد لاستعادة البيئة أو قرار بشأن اختبار الدفع قبل الساعة 12:00 من اليوم 4. غداً: تتبع الطلبات واختبارات التأكيد للعيوب المُصلَحة».
كل شريط هو التشغيل كله بـ90 اختباراً مخططاً، وكل اختبار يُعدّ مرة واحدة بآخر نتيجة له. المنفَّذ هو الناجح مع الفاشل، أما المحجوب وغير المشغَّل فليسا منفَّذين.
- ارتفع معدل النجاح من 88% إلى 95%، ومع ذلك لم يُنفَّذ 16 اختباراً (18%) أبداً. فقد عاد الدفع بالبطاقة إلى البيئة التجريبية في اليوم 5، لكن اختبارات الدفع بالمحفظة الستة بقيت محجوبة، ونفد الوقت قبل 10 اختبارات متوسطة أو منخفضة الخطر.
- انخفض عدد الفاشل في اليومين 4 و5 لأن العيوب المُصلَحة اجتازت اختبارات التأكيد (Confirmation testing)؛ فكل اختبار يُعدّ مرة واحدة بآخر نتيجة له.
- يسمّي الملخص العيوب الثلاثة وراء حالات الفشل الأربع، ويذكر ما لم يُختبر. وتقييم المختبِر، مع التصريح بأنه تقييمه: غير جاهز ما دام PH-231 مفتوحاً؛ وفي الدفع بالمحفظة يختار مالك المنتج بين انتظار البيئة التجريبية والإطلاق مع إيقاف المحفظة.
TEST RUN: Pharmacy app 1.8 · system test, cycle 1 · builds 1.8.0-rc1 to rc3 on staging
Planned: 90 tests in 5 days (18 a day) · latest result per test · data at 17:00
Day Executed Passed Failed Blocked Not run Pass rate
1 16 14 2 0 74 88%
2 34 30 4 8 48 88%
3 51 45 6 8 31 88%
4 63 58 5 8 19 92%
5 74 70 4 6 10 95%
RUN SUMMARY · end of day 5
Area (risk) Plan Passed Failed Blocked Not run
Prescription upload (High) 20 17 3 0 0
Checkout & payment (High) 24 17 1 6 0
Order tracking (Medium) 26 22 0 0 4
Profile & notifications (Low) 20 14 0 0 6
Total 90 70 4 6 10
Open defects behind the 4 failed tests
PH-231 Critical order accepted with a rejected prescription (2 tests)
PH-236 Major PDF prescriptions cannot be uploaded (1 test)
PH-240 Minor delivery fee shown as 7.5 instead of 7.50 (1 test)
Not tested: wallet payments, 6 tests blocked (payment sandbox down since day 2)
10 Medium and Low tests not run (out of time)
Remaining risk: prescription check can be bypassed; wallet payments untestedأخطاء شائعة
- عدّ المحاولات بدلاً من الاختبارات: يُعدّ الاختبار الذي أُعيد بعد الإصلاح مرتين، أو يبقى فشله القديم محسوباً على معدل النجاح.
- عدّ الاختبارات المحجوبة منفَّذة أو فاشلة، فلا يعود مجموع الأعداد الأربعة مساوياً للخطة.
- حذف الاختبارات المتخطّاة من الخطة بصمت، أو تغيير تعريف في منتصف التشغيل، ليبدو التقدم أفضل مما هو.
من منظور ضمان الجودة
كل يوم خذ الأرقام من أداة إدارة الاختبار في الوقت نفسه، وتحقّق من أن مجموعها يساوي الخطة، واقرأ الاختبارات الفاشلة والعوائق الجديدة قبل الكتابة: فأسطر المخاطر تأتي من هناك، لا من الإجماليات. أما ما يحتويه التقرير الجيد، وكيف تكيّفه لكل قارئ، ولماذا يُبلَّغ عن العائق يوم ظهوره بدلاً من انتظار الحالة اليومية، فانظر درس تقارير الاختبار.
تمرين عملي
حوّل تصدير الأداة إلى أعداد صحيحة
تختبر بوابة لدفع الرسوم المدرسية. أدناه البيانات الخام في الساعة 16:00 من اليوم 2 لتشغيل اختبار انحدار (Regression) مدته أربعة أيام، وتصدير الأداة يعدّ محاولات التنفيذ لا الاختبارات. استخرج الأعداد الصحيحة، وتحقّق منها مقابل الخطة، ثم اكتب سطر الأعداد في الحالة اليومية.
ثم بيّن ماذا كان الفريق سيقرأ لو نسخت التصدير كما هو.
Run: School fees portal 2.3 · regression run · day 2 of 4 · data at 16:00
Planned: 64 tests · plan for the end of day 2: 32 executed
Tool export (one row per execution attempt, not per test)
attempts: 41 passed: 29 failed: 7 blocked: 5
From the tester's log
TC-17, TC-18, TC-19 failed on rc1 (defect FEE-512); FEE-512 was fixed and
all three passed on rc2. Both attempts of each test are in the export.
Blocked: 5 installment-plan tests; the bank test API is down (HTTP 503)
since 10:00; owner: integration team; no estimate
Open: FEE-520 Critical paying one installment marks the whole fee as paid
(2 failed tests)
FEE-523 Minor receipt date in the wrong format (2 failed tests)- حوّل المحاولات إلى اختبارات: كل اختبار يُعدّ مرة واحدة بآخر نتيجة له.
- احسب المنفَّذ وغير المشغَّل ونسبة التقدم ومعدل النجاح، وتحقّق من أن مجموع الأعداد 64.
- قارن أعدادك بالتصدير، وفسّر كل فرق.
- اكتب سطر الأعداد: المنفَّذ مقابل الخطة، ثم الناجح والفاشل والمحجوب وغير المشغَّل.
إظهار الإجابة النموذجية
العدّ: المحاولات الـ41 تتضمن TC-17 وTC-18 وTC-19 مرتين، مرة فاشلة على rc1 ومرة ناجحة على rc2. وبالاحتفاظ بآخر نتيجة، يكون لـ38 اختباراً نتيجة: 29 ناجحة، و4 فاشلة (FEE-520 وFEE-523، لكل منهما اختباران)، و5 محجوبة. وغير المشغَّل = 64 − 38 = 26. التحقق: 29 + 4 + 5 + 26 = 64.
الأرقام: المنفَّذ = 29 + 4 = 33 من 64 (52%) مقابل خطة 32، فالتشغيل على الخطة. ومعدل النجاح = 29 ÷ 33 = 88%. ولو قُرئ التصدير كما هو لأعطى 41 اختباراً «منفَّذاً» و7 حالات فشل، لأنه يعدّ ثلاثة اختبارات مرتين ويعدّ المحاولات المحجوبة الخمس كأنها نُفّذت. وحتى محاولاته الناجحة والفاشلة وحدها تعطي 29 ÷ 36 = 81%، لأن حالات الفشل الثلاث على rc1، التي أُصلحت لاحقاً، ما زالت محتسبة.
سطر الأعداد: «رسوم المدارس 2.3، انحدار، اليوم 2 من 4 (16:00، rc2): نُفّذ 33 من 64 (52%، الخطة 32)؛ نجح 29، وفشل 4، و5 محجوبة، و26 لم تُشغَّل؛ ومعدل النجاح 88% من الاختبارات المنفَّذة». أما الأسطر التي تليه، عن العيب الحرج FEE-520، واختبارات التقسيط المحجوبة والمسؤول عنها، وما تحتاجه، فتُكتب كما في درس تقارير الاختبار.
أسئلة شائعة
هل تُعدّ الاختبارات المحجوبة منفَّذة؟
لا. تُعدّ ضمن غير المنفَّذ مع الاختبارات التي لم تُشغَّل بعد، ويذكرها تقرير الحالة منفصلةً مع العائق ومالكه ومنذ متى. وعدّها منفَّذة يضخّم التقدم، وعدّها فاشلة يرسل المطورين للبحث عن عيوب قد لا تكون موجودة. وحين يزول العائق ويُشغَّل الاختبار المحجوب، تنقله نتيجته الأخيرة إلى الناجح أو الفاشل.
ما معدل النجاح الجيد؟
لا يوجد هدف عام. فمعدل النجاح يصف الاختبارات التي نُفّذت فقط، ومعناه يتوقف على أيّ اختبارات كانت. ومعايير الخروج (Exit criteria) في خطة الاختبار هي التي تحدد ما يجب أن يتحقق في النهاية، مثل نجاح كل الاختبارات عالية المخاطر وعدم وجود عيب حرج مفتوح. تابع معدل النجاح لكل منطقة وعبر الزمن، واعرضه دائماً بجانب عدد الاختبارات غير المنفَّذة.
هل نحتاج إلى حالة يومية مكتوبة إذا كان لدينا اجتماع يومي؟
غالباً نعم، لكن اجعلها قصيرة. الاجتماع اليومي (Stand-up) شفهي ولا يصل إلا إلى الحاضرين، أما الحالة المكتوبة فتصل إلى أصحاب المصلحة الذين لم يحضروا، وتُبقي الأرقام قابلة للتتبع، وتبني السجل الذي يُكتب منه ملخص التشغيل. أبلغ عن العوائق في الاجتماع أو فوراً، ثم أكّدها كتابةً.
المراجع
- ISTQB Certified Tester Foundation Level (CTFL) v4.0المنهج التأسيسي لاختبار البرمجيات: مستويات الاختبار وأنواعه وتقنيات تصميم الاختبارات وإدارة الاختبار والأدوات.
- ISO/IEC/IEEE 29119-3:2021 — Software and systems engineering — Software testing — Part 3: Test documentationنماذج ومحتوى وثائق الاختبار — سياسة الاختبار واستراتيجيته وخطته وتقارير الحالة والإنجاز وتقارير الحوادث.
- ISTQB Glossaryالتعريفات القياسية لمصطلحات الاختبار — حالة الاختبار واختبار الانحدار والخطورة والأولوية وتحليل القيم الحدّية وغيرها.
تدرّب بأدوات متقن
حساب النسب المئوية ونسبة التغيّر والزيادة/النقصان وكم تمثّل X من Y بالنسبة المئوية.
توحيد تنسيق Markdown (العناوين والقوائم والجداول والتأكيد) ومعاينة النتيجة المعروضة.
حوّل ملفات Markdown (md.) إلى PDF في متصفحك: العناوين والقوائم والجداول وكتل الشيفرة والاقتباسات والروابط والصور منسّقة بخطوط مضمّنة.
للتعمّق أكثر
تقدّمك في هذا الموضوع
سجّل الدخول لتتابع تقدّمك
علّم الموضوعات مكتملة، وتابع من حيث توقفت، وافتح امتحانات التخصص.