الاختبار الاستكشافي
الاختبار الاستكشافي (Exploratory testing) أسلوب يتعلّم فيه المختبِر المنتج ويصمّم الاختبارات وينفّذها في الوقت نفسه، مستخدماً ما يكشفه كل اختبار لاختيار الاختبار التالي. وهو ليس نقراً عشوائياً ولا «اختباراً بلا خطة»: فالجلسة الاستكشافية الجيدة لها مهمة، وحدّ زمني، وطرق مقصودة لتوليد أفكار الاختبار، وسجلّ لما غُطّي وما اكتُشف.
هذا الدليل هو مدخل هذه الممارسة. يعرّف الاختبار الاستكشافي، ويقارنه بإنصاف مع الاختبار المكتوب مسبقاً، ويشرح أدوات الصنعة — الاستدلالات ومراجع الحكم والجولات — مع مثال عملي على تسجيل الدخول برمز OTP، وسير عمل من الملاحظات إلى تقارير الأخطاء وحالات الانحدار، وكيف يغذّي العمل الاستكشافي والأتمتة كلٌّ منهما الآخر. أما إدارة الاستكشاف بجلسات محددة بميثاق ومدة، وأوراق الجلسات، وجلسات الاستخلاص (Debrief) بعدها، فلها صفحة مستقلة عن إدارة الاختبار القائمة على الجلسات.
ما هو الاختبار الاستكشافي — وما ليس هو
يرتبط المصطلح باسم Cem Kaner، أما التعريف المختصر الذي يقتبسه معظم الممارسين فمصدره James Bach: تعلّم وتصميم اختبارات وتنفيذها في آن واحد. في الاختبار المكتوب مسبقاً (Scripted testing) تقع هذه الأنشطة الثلاثة في أوقات مختلفة وغالباً على أيدي أشخاص مختلفين — شخص يحلّل المتطلب، وآخر يكتب الخطوات، وثالث ينفّذها لاحقاً. وفي الاختبار الاستكشافي تجري كلها في ذهن واحد، في حلقة من دقائق: تجرّب شيئاً، وتلاحظ النتيجة، وتصوغ سؤالاً جديداً، وتصمّم الاختبار التالي من الجواب.
الاختبار المكتوب مسبقاً
- 1شخص يحلّل المتطلب
- 2شخص آخر يكتب الخطوات
- 3شخص ثالث ينفّذها لاحقاً
- متى:
- في أوقات مختلفة
- مَن:
- غالباً أشخاص مختلفون
الاختبار الاستكشافي
موجَّه بميثاق · مسجَّل أثناء العمل
- 1تجرّب شيئاً
- 2تلاحظ النتيجة
- 3تصوغ سؤالاً جديداً
- 4تصمّم الاختبار التالي من الجواب
يتكرر: عودة إلى الخطوة 1
- متى:
- في آن واحد، في حلقة من دقائق
- مَن:
- ذهن واحد
يدرج منهج ISTQB للمستوى التأسيسي (CTFL v4.0) الاختبار الاستكشافي ضمن تقنيات الاختبار المبنية على الخبرة (Experience-based techniques)، إلى جانب تخمين الأخطاء والاختبار المبني على قوائم التحقق، ويشير إلى أنه يُنظَّم أحياناً في صورة اختبار قائم على الجلسات: جلسة محددة المدة يوجّهها ميثاق اختبار (Test charter) يحدد أهداف الاختبار. وهذه البنية هي ما يفصل الاختبار الاستكشافي عن الاختبار الارتجالي (Ad hoc testing). كلاهما بلا نص مكتوب؛ لكن أحدهما فقط قابل للمساءلة.
- موجَّه — بميثاق (مهمة الجلسة)، وبمخاطر الميزة، وباستدلالات تولّد أفكار الاختبار.
- مسجَّل — تُدوَّن الأفعال والبيانات والملاحظات والأسئلة والأخطاء أثناء العمل، لكي يمكن الإبلاغ عن الجلسة ومراجعتها.
- قائم على المهارة — تعتمد قيمته على معرفة المختبِر بالمنتج وتقنيته وحكمه؛ وهذا الاعتماد مصدر قوته وخطره الرئيسي في آن.
- يستخدم تصميم الاختبار — المستكشف الجيد يطبّق القيم الحدّية وتقسيم التكافؤ ونماذج الحالات كما يفعل كاتب حالات الاختبار، لكن في الوقت الحقيقي لا مسبقاً.
الاستكشافي مقابل المكتوب مسبقاً: مقارنة منصفة
الاختبار المكتوب مسبقاً والاختبار الاستكشافي ليسا معسكرين متنافسين؛ بل يجيبان عن أسئلة مختلفة. الاختبار المكتوب يفحص توقعاً معروفاً بالطريقة نفسها في كل مرة، ما يجعله قابلاً للتكرار والمراجعة وسهل التفويض والأتمتة. أما الجلسة الاستكشافية فتبحث عمّا لم يتوقعه أحد — المتطلب الذي فُهم خطأً، أو التفاعل الغريب بين ميزتين، أو رسالة الخطأ التي تكشف رمزاً داخلياً — وهذا ما لا يجده النص المكتوب، لأنه لا يغطي إلا ما فكّر فيه كاتبه.
في الواقع يقع معظم الاختبار على طيف متصل. حالة الاختبار ذات الخطوة المبهمة («تأكد أن التقرير يبدو صحيحاً») تترك مجالاً للاستكشاف أصلاً؛ والميثاق الذي يقول «استكشف المبالغ المستردة للطلبات المشحونة جزئياً» يقيّده أصلاً. والسؤال المفيد ليس أيّ الأسلوبين أفضل، بل كم يحتاج كلٌّ من ميزة معينة ومستوى مخاطر معين وفريق معين من كل منهما.
- قابلية التكرار — المكتوب: عالية، الخطوات والبيانات نفسها في كل تشغيل. الاستكشافي: منخفضة عمداً؛ كل جلسة تختلف، ولهذا يستمر في إيجاد مشكلات جديدة.
- إيجاد عيوب جديدة — المكتوب: محصور فيما كان متوقَّعاً مسبقاً. الاستكشافي: قوي، خصوصاً في الميزات الجديدة أو ضعيفة التوصيف.
- الأدلة للتدقيق والتتبّع — المكتوب: قوية، كل حالة مرتبطة بمتطلب. الاستكشافي: كافية فقط حين تُحفظ المواثيق والملاحظات وجلسات الاستخلاص (Debrief).
- الاعتماد على المختبِر — المكتوب: أقل وقت التنفيذ، لأن المهارة ذهبت إلى التصميم. الاستكشافي: عالٍ طوال الوقت.
- كلفة التغيير — المكتوب: كل تغيير في المتطلبات يعني تعديل الحالات. الاستكشافي: تتكيّف المواثيق في الجلسة التالية.
- الأتمتة — الفحوص المكتوبة ذات النتائج المتوقعة الواضحة مرشحة طبيعية للأتمتة؛ والاستكشاف نفسه لا يمكن أتمتته، لكنه ينتج الفحوص التي تستحق الأتمتة.
متى يؤتي الاختبار الاستكشافي ثماره
استخدم الاختبار الاستكشافي حيث يكون عدم اليقين عالياً وتكون التغطية المكتوبة ضعيفة أو متأخرة أو عمياء عن المخاطر الحقيقية. أما الاختبار المكتوب مسبقاً فهو الأنسب حين يجب تكرار الفحص نفسه بدقة، أو حين تطلب جهة تنظيمية أو عميل أدلة قابلة للتتبّع لكل متطلب، أو حين يكون المختبِرون جدداً على المجال ويحتاجون إلى توجيه مكتوب.
- الميزات الجديدة — قبل وجود حالات الاختبار أو بينما لا يزال التصميم يتغير، يعلّمك الاستكشاف الميزة وينتج أولى الحالات.
- المتطلبات المبهمة أو الناقصة — تكشف جلسة قصيرة أسئلة لمالك المنتج أسرع من إعادة قراءة المستند.
- المناطق عالية المخاطر — الدفع، والمصادقة، والصلاحيات، وترحيل البيانات — مكمّلاً للفحوص المكتوبة والمؤتمتة، لا بديلاً عنها أبداً.
- بعد إصلاح خطأ — استكشف حول الإصلاح: العيب نفسه في المسارات المجاورة، والآثار الجانبية للتغيير.
- نقاط التكامل ومعالجة الأخطاء — المهل الزمنية، وإعادة المحاولة، والإخفاقات الجزئية، واستجابات الأطراف الخارجية التي نادراً ما تصفها المواصفات.
الاستدلالات: كيف يولّد المستكشفون أفكار الاختبار
الاستدلال (Heuristic) قاعدة تقريبية قابلة للخطأ — وفي الاختبار هو محفّز يقترح ما تجرّبه بعد ذلك. لا تضمن الاستدلالات العثور على خطأ؛ لكنها تمنع نفاد الأفكار وتمنعك من اختبار المسار الذي تعرف أنه يعمل فقط. كتاب Explore It! لـ Elisabeth Hendrickson منظَّم إلى حد كبير حول هذا النوع من التنويع. والعائلات التالية موصوفة بكلماتنا، وهي نقطة بداية لا فهرس كامل.
- نوّع المدخلات — فارغة، وطويلة جداً، وقيم حدّية، ونوع خاطئ، ومسافات في البداية والنهاية، ومحارف خاصة، ونص عربي ونص مختلط الاتجاه، ورموز تعبيرية، ومحتوى ملصوق، وقيم بصيغ أخرى (تواريخ، أرقام هواتف، أعداد عشرية بفاصلة).
- نوّع الحالات — الفعل نفسه لمستخدم جديد، ولمستخدم انتهت جلسته، ولحساب مقفل، ولطلب مدفوع مسبقاً، ولسلة تغيّرت في تبويب آخر.
- نوّع التسلسلات — نفّذ الخطوات بغير ترتيبها، وكرّرها، وتخطَّ إحداها، وارجع وتقدّم، وأرسل مرتين، وألغِ بعد الحفظ.
- قاطِع — اقطع الشبكة أثناء الطلب، وأغلق التبويب، وضع التطبيق في الخلفية، ودع الجلسة تنتهي، ودوّر الجهاز، واستقبل مكالمة أثناء الدفع.
- نوّع دورة حياة البيانات — أنشئ السجل نفسه واقرأه وعدّله واحذفه من أماكن مختلفة؛ واحذف شيئاً تشير إليه سجلات أخرى؛ وعدّل سجلاً يعرضه شخص آخر.
- نوّع الإعدادات — المتصفح، والجهاز، واللغة، والإعدادات المحلية والمنطقة الزمنية، وحجم الشاشة والتكبير، والصلاحيات الممنوحة أو المرفوضة، وأعلام الميزات مفعّلة ومعطّلة.
- نوّع التوقيت والحجم — تصرّف بسرعة كبيرة وببطء شديد، وقرب منتصف الليل أو نهاية الشهر، بعنصر واحد وبآلاف العناصر.
- تتبّع البيانات — أدخل قيمة وتتبّع كل مكان تظهر فيه: صفحة التأكيد، والبريد الإلكتروني، وملف PDF، وشاشة الإدارة، وملف التصدير، واستجابة API.
- تقمّص شخصية — استكشف كمستخدم مستعجل، أو مستخدم لأول مرة، أو مسؤول نظام، أو مستخدم قارئ شاشة، أو مهاجم.
جرّبها: مولّد مجموعات الأحرف الخاصة جرّبها: مولّد مجموعات بيانات Unicode جرّبها: مولّد القيم الحدّية جرّبها: مولّد انتقالات الحالات
مراجع الحكم: كيف تتعرّف على المشكلة
مرجع الحكم أو «أوراكل» الاختبار (Test oracle) هو الوسيلة التي تتعرّف بها على المشكلة؛ ويعرّفه مسرد ISTQB بأنه مصدر لتحديد النتيجة المتوقعة لمقارنتها بالنتيجة الفعلية. الاختبار المكتوب يحمل مرجعه في عمود النتيجة المتوقعة. أما المستكشف فلا يملك في الغالب نتيجة متوقعة مكتوبة لمعظم ما يراه، فيستدل بالاتساق: السلوك الذي لا يتسق مع شيء ينبغي للمنتج أن يتسق معه مشكلةٌ محتملة.
ومراجع الحكم استدلالية هي الأخرى. عدم الاتساق سبب للتحقيق لا دليل على خطأ — فبعض الاختلافات مقصودة. مهمة المختبِر أن يلاحظ ويجمع الأدلة ويشرح لماذا قد يكون الأمر مهماً؛ ومالك المنتج هو من يقرر إن كان عيباً.
- الاتساق داخل المنتج — المفهوم نفسه يُسمّى أو يُحسب بشكل مختلف في شاشتين؛ إجمالي السلة يختلف عن إجمالي الفاتورة.
- الاتساق مع تاريخه — كان يتصرف بشكل مختلف في الإصدار السابق ولم يُعلن أحد عن تغيير.
- الاتساق مع الادعاءات — المتطلب، ونص المساعدة، ووثائق API، وملاحظات الإصدار، أو ما اتُّفق عليه في جلسة التحسين (Refinement).
- الاتساق مع المنتجات المماثلة — منتجات مشابهة أو أعراف منصة راسخة تتصرف بشكل مختلف دون سبب معلن.
- الاتساق مع الغرض وتوقعات المستخدم — الميزة تعمل تقنياً لكنها لا تتيح للمستخدم ما وُجدت من أجله.
- الاتساق مع المعايير والأنظمة — إرشادات إمكانية الوصول، وقواعد حماية البيانات، والأعراف المحلية للتواريخ والأرقام والعملة.
- الاتساق مع الصورة التي تريدها المؤسسة — رسائل خطأ تلوم المستخدم أو فظّة، أو نص عربي مكسور، أو رمز خطأ داخلي يظهر للعميل.
- قابلية التفسير — إن لم تستطع شرح السلوك لزميل، فهذا وحده يستحق سؤالاً.
جولات الاختبار: الاستكشاف بخريطة سائح
يبني كتاب James Whittaker بعنوان Exploratory Software Testing منهجه على استعارة السائح والجولات (Tours): عامِل المنتج كمدينة يزورها سائح، واختر جولة ذات موضوع يحدد أين تذهب وإلى ماذا تنظر. تمنح الجولة الجلسة شكلاً دون كتابة خطوات، وتسهّل توزيع الاستكشاف على عدة مختبِرين حتى لا يمشي الجميع في الشوارع نفسها.
يصف الكتاب مجموعة أكبر من الجولات مقسّمة إلى «أحياء» في المنتج. الأفكار التالية معاد صياغتها، مع أسماء الكتاب حيث نستخدمها؛ وهي أمثلة لا قائمة كاملة أو رسمية، وكثير من الفرق تبتكر جولات لمجالها الخاص.
- جولة الدليل السياحي (Guidebook) — اتبع دليل المستخدم أو صفحات المساعدة أو خطوات الإعداد الأولي بحرفيتها وتحقق من أن المنتج يفعل ما تقوله.
- جولة المال (Money) — مارس الميزات التي تبيع المنتج أو تجلب الإيراد، تلك التي تُعرض في العروض التوضيحية.
- جولة المعالم (Landmark) — اختر الميزات الأساسية وزرها بترتيبات مختلفة، متحققاً من الرحلة بينها.
- جولة FedEx — خذ قطعة بيانات واحدة (عنوان أو طلب) وتتبّعها عبر كل شاشة وبريد وتقرير وتكامل يلمسها.
- جولة الأزقة الخلفية (Back alley) — زر الميزات والإعدادات الأقل استخداماً، حيث يكون الاختبار عادةً في أضعف حالاته.
- جولة المخرّب (Saboteur) — احرم التطبيق مما يحتاجه: الشبكة، والتخزين، والصلاحيات، أو اعتمادية تستجيب ببطء.
- جولة الوسواس (Obsessive-compulsive) — كرّر الفعل نفسه مرة بعد مرة: إرسال مزدوج، وإعادة فتح النافذة نفسها، وإضافة المنتج نفسه مرات كثيرة.
- جولة عارض الأزياء (Supermodel) — انظر إلى السطح فقط: التخطيط، والنص المقطوع، والمحاذاة، والتباين، والانعكاس من اليمين إلى اليسار، والنص بكل لغة.
مثال عملي: استكشاف تسجيل دخول برمز لمرة واحدة
على سبيل المثال، لنفترض أن تطبيق ويب مصرفياً وهمياً أضاف خطوة ثانية لتسجيل الدخول: بعد كلمة المرور يتلقى المستخدم رمزاً من ستة أرقام لمرة واحدة (OTP) عبر SMS، صالحاً لبضع دقائق، مع عدد محدود من المحاولات ورابط «إعادة إرسال الرمز». تغطي معايير القبول المسار الناجح والرمز الخاطئ والرمز المنتهي. لدى المختبِر نصف يوم. بدلاً من جلسة طويلة واحدة بلا تركيز، يكتب بضعة مواثيق بصيغة «استكشف <الهدف> باستخدام <الموارد> لاكتشاف <المعلومة>» ويرتّبها حسب المخاطر. تستكشف المواثيق الخمسة أدناه: إدخال رموز OTP خاطئة أو ناقصة أو ملصوقة أو مشوّهة لمعرفة كيف تُحتسب المحاولات ومتى يُقفل الحساب؛ والنقر السريع المتكرر على «إعادة إرسال الرمز» مع شبكة بطيئة لمعرفة أي رمز يبقى صالحاً وهل يُطبَّق حدّ للمعدل؛ وانتهاء صلاحية الرمز مع جلسة خاملة أو تطبيق في الخلفية أو إعادة تحميل الصفحة لكشف الفجوات الزمنية بين العدّاد التنازلي والخادم؛ وخطوة OTP في تبويبين وعلى جهازين في الوقت نفسه لكشف تعارضات الجلسة والحالة؛ وشاشات OTP ونص الرسالة بالعربية والإنجليزية مع اتجاه RTL والتكبير وقارئ الشاشة لكشف مشكلات قابلية الاستخدام والتوطين.
أثناء الميثاق 2 يطبّق المختبِر استدلالَي التسلسل والمقاطعة: ينقر «إعادة إرسال الرمز» خمس مرات بسرعة، ثم يُدخل أول رمز وصله. وباستخدام مرجع الحكم «ينبغي أن يتفق المنتج مع رسائله»، يلاحظ أن الشاشة تقول إن الرموز السابقة لم تعد صالحة بينما يُقبل الرمز الأول. تصبح الملاحظة تقرير خطأ؛ وتصبح الفكرة فحص انحدار. توضح العناوين التالية نوع النتائج التي تنتجها مثل هذه الجلسات — وهي أمثلة، لا نتائج من منتج حقيقي.
- «رمز OTP المرسل سابقاً ما زال مقبولاً بعد إعادة الإرسال، خلافاً للرسالة المعروضة على الشاشة»
- «عدّاد المحاولات الفاشلة يُصفَّر عند إعادة تحميل صفحة OTP، فيُتجاوز حد المحاولات»
- «حقل OTP يرفض رمزاً ملصوقاً من تطبيق الرسائل بمسافة زائدة في آخره»
- «الأرقام العربية الهندية المكتوبة بلوحة مفاتيح عربية لا تُقبل في حقل OTP»
- «العدّاد التنازلي يعرض 00:00 لكن الرمز يظل مقبولاً لنحو دقيقة»
Charter 1 Explore OTP entry with wrong, partial, pasted and malformed codes
to discover how attempts are counted and when the account locks.
Charter 2 Explore "Resend code" with rapid repeated clicks and a slow network
to discover which code is valid and whether rate limits apply.
Charter 3 Explore OTP expiry with an idle session, backgrounding and page reloads
to discover timing gaps between the countdown and the server.
Charter 4 Explore the OTP step in two tabs and on two devices at once
to discover session and state conflicts.
Charter 5 Explore OTP screens and SMS text in Arabic and English, RTL, zoom
and a screen reader to discover usability and localisation problems.جرّبها: مولّد الحالات الحدّية بالذكاء الاصطناعي جرّبها: مولّد السيناريوهات السلبية بالذكاء الاصطناعي
من الملاحظات إلى تقارير الأخطاء وحالات الانحدار
الملاحظات هي ما يجعل الاستكشاف قابلاً للمراجعة. اكتبها أثناء الاختبار لا بعده: طابع زمني، وما جرّبته، والبيانات التي استخدمتها، وما لاحظته، وأسئلتك، وكل ما بدا خاطئاً. تكفي أسطر قصيرة وواقعية. وتسجيل الشاشة، والطلب الملتقط أو ملف HAR، وسجل وحدة التحكم توفّر الكثير من إعادة البناء لاحقاً.
في نهاية الجلسة، صنّف الملاحظات في ثلاث مجموعات. الأخطاء تصبح تقارير أخطاء: أعد إنتاج كل منها مرة أخرى، واختصر الخطوات، واكتبه بصيغة الفريق (دليل تقرير الخطأ يشرح الحقول والفرق بين الخطورة والأولوية). والأسئلة تذهب إلى مالك المنتج أو أحد المطورين. والأفكار التي تستحق الفحص في كل إصدار تصبح حالات انحدار (Regression cases): تُكتب كحالات اختبار عادية بنتيجة متوقعة دقيقة، مع تمييز ما يستحق الأتمتة منها.
- سجّل الميثاق والبناء والبيئة مع الملاحظات ليعرف القارئ لاحقاً ما غُطّي وما لم يُغطَّ.
- دوّن ما لم تستطع اختباره ولماذا (بيئة معطّلة، بيانات ناقصة) — فهو لا يقل أهمية عمّا اختبرته.
NOTE 10:42 Resend x5 fast, entered 1st code (481207) -> accepted.
Screen says "Previous codes are no longer valid". Bug?
NOTE 10:46 Repeated with 2 resends: same. Staging build 3.8.1, Chrome 129.
BUG Earlier OTP is still accepted after a new code is sent via Resend
Steps: 1) Log in as layla.h@example.com 2) Wait for OTP A
3) Click "Resend code", receive OTP B 4) Enter OTP A
Expected: "Code expired" error (on-screen text and acceptance criterion 4)
Actual: Login succeeds with OTP A
REGRESSION CASE TC-OTP-017 Only the latest OTP is valid after Resend
Expected: earlier codes rejected with "Code expired"; attempt is counted
Automate: yes, at API level (verify endpoint called with a superseded code)جرّبها: مولّد وصف الأخطاء بالذكاء الاصطناعي جرّبها: مولّد عناوين الأخطاء بالذكاء الاصطناعي جرّبها: مولّد حالات الاختبار
كيف يعمل الاختبار الاستكشافي والأتمتة معاً
للأتمتة والاستكشاف وظيفتان متكاملتان. تؤكد الفحوص المؤتمتة، بسرعة وعند كل تغيير، أن السلوك المعروف ما زال يعمل، وتحرّر المختبِرين من تكرار الانحدار نفسه يدوياً. ثم ينفق الاستكشاف ذلك الوقت المحرَّر حيث تكون الأتمتة عمياء: السلوك الجديد، والتفاعلات غير المتوقعة، والحكم على ما إذا كان المنتج مفيداً فعلاً. أما تقسيم العمل العام بين الاختبار اليدوي والمؤتمت وهرم الاختبار فيشرحهما دليل الاختبار اليدوي مقابل المؤتمت؛ كما تضع أرباع الاختبار الرشيق (Agile Testing quadrants) الاختبار الاستكشافي ضمن الاختبارات الموجهة للعمل التي تنقد المنتج.
- الاستكشاف يغذّي الأتمتة — كل خطأ يُكتشف في جلسة مرشح لفحص انحدار؛ أتمِت منها ما له نتيجة متوقعة واضحة ومستقرة، ويفضّل على مستوى API أو الوحدة.
- الأتمتة تغذّي الاستكشاف — إخفاق جديد، أو اختبار متقلّب، أو فجوة في تقرير التغطية، كلها مواثيق جيدة.
- السكربتات كأدوات مساعدة للاستكشاف — استخدم الكود أو مولّدات البيانات لإعادة ضبط الحالة، أو إنشاء ألف طلب، أو الوصول إلى حالة يصعب بلوغها، ثم استكشف يدوياً من هناك.
- استكشف النقاط العمياء — التخطيط البصري، والتوطين، وإمكانية الوصول بتقنيات مساعدة حقيقية، والتعافي من الأخطاء نادراً ما يكون لها مراجع حكم مؤتمتة قوية.
- ضعه في سير العمل — على سبيل المثال، جلسة بميثاق لكل قصة عالية المخاطر حين يصل بناؤها إلى بيئة الاختبار، قبل وسم القصة بأنها منجزة.
جرّبها: مولّد اختبارات الانحدار بالذكاء الاصطناعي جرّبها: مولّد سيناريوهات الانحدار جرّبها: مصنع بيانات الاختبار
أخطاء شائعة
- معاملة الاختبار الاستكشافي كاختبار بلا تخطيط — لا ميثاق ولا ملاحظات ولا جلسة استخلاص (Debrief)، ولا أحد يستطيع بعدها أن يقول ما الذي غُطّي.
- مواثيق واسعة جداً («استكشف التطبيق») أو ضيقة إلى حد أنها نصوص اختبار متنكرة.
- استكشاف المسار الناجح فقط ببيانات صحيحة، وهو تكرار لما تفعله الاختبارات المكتوبة أصلاً.
- الإبلاغ عن خطأ دون عزله — دقائق في إيجاد المحفّز توفّر يوماً من المراسلات.
- استبدال فحوص الانحدار بالاستكشاف، أو الاستكشاف بفحوص الانحدار؛ فكل منهما يجد ما يفوت الآخر.
- الحكم على المختبِرين بعدد الأخطاء في الجلسة، ما يكافئ التقارير التافهة ويعاقب استكشاف مناطق يتبيّن أنها متينة.
الأسئلة الشائعة
هل الاختبار الاستكشافي هو نفسه الاختبار الارتجالي؟
لا. كلاهما بلا نص مكتوب، لكن للاختبار الاستكشافي مهمة (ميثاق)، وحدّ زمني في العادة، وتقنيات مقصودة لتوليد أفكار الاختبار، وسجل مكتوب لما غُطّي وما اكتُشف. أما الاختبار الارتجالي فلا يملك شيئاً من ذلك، فلا يمكن مراجعة نتائجه أو تكرارها.
هل يحتاج الاختبار الاستكشافي إلى توثيق؟
نعم، لكنه خفيف: ميثاق قبل الجلسة، وملاحظات أثناءها (الأفعال والبيانات والملاحظات والأسئلة)، وتقارير أخطاء وقضايا وحالات انحدار جديدة بعدها. الهدف أن يرى شخص آخر ما الذي اختُبر، لا نص خطوة بخطوة.
هل يمكن أتمتة الاختبار الاستكشافي؟
الاستكشاف نفسه لا — فهو يعتمد على التعلّم والحكم البشري. لكن الأدوات تدعمه: مولّدات البيانات، وسكربتات تهيئة الحالة، وأدوات التسجيل والملاحظات، ومساعدات الذكاء الاصطناعي التي تقترح حالات حدّية أو سيناريوهات سلبية. وينبغي أن تغذّي نتائجه فحوص الانحدار المؤتمتة.
كم يجب أن تستغرق الجلسة الاستكشافية؟
في الأسلوب الأصلي القائم على الجلسات تستغرق الجلسة العادية نحو 90 دقيقة من الاختبار دون مقاطعة على ميثاق واحد؛ والقصيرة أقرب إلى 45 دقيقة والطويلة أقرب إلى ساعتين. ويشرح دليل إدارة الاختبار القائمة على الجلسات تحديد المدة بالتفصيل.
ما هو ميثاق الاختبار؟
مهمة من جملة أو جملتين للجلسة تقول ماذا تستكشف، وبأي موارد، وعن أي معلومة تبحث — مثلاً: «استكشف إعادة إرسال OTP بنقرات سريعة وشبكة بطيئة لاكتشاف أي رمز يكون صالحاً». يوجّه المختبِر دون أن يملي عليه الخطوات.
كيف يُقاس الاختبار الاستكشافي؟
بعدد الجلسات والمواثيق المنجزة لكل منطقة مقارنة بمخاطرها، وبنسبة الوقت المنفق على الاختبار الفعلي مقابل التهيئة أو التحقيق في الأخطاء، وبالأخطاء والقضايا والأسئلة المكتشفة. وعدد الأخطاء وحده مقياس ضعيف لأداء المختبِرين الأفراد.
المراجع
- ISTQB Certified Tester Foundation Level (CTFL) v4.0المنهج التأسيسي لاختبار البرمجيات: مستويات الاختبار وأنواعه وتقنيات تصميم الاختبارات وإدارة الاختبار والأدوات.
- ISTQB Glossaryالتعريفات القياسية لمصطلحات الاختبار — حالة الاختبار واختبار الانحدار والخطورة والأولوية وتحليل القيم الحدّية وغيرها.
- Explore It! Reduce Risk and Increase Confidence with Exploratory Testing (Elisabeth Hendrickson)منهج الاختبار الاستكشافي: المواثيق والاستدلالات لتنويع المدخلات والحالات، وكيف يكمّل الاختبارات المكتوبة.
- Exploratory Software Testing: Tips, Tricks, Tours, and Techniques to Guide Test Design (James A. Whittaker)الكتاب الذي نظّم الاختبار الاستكشافي حول «الجولات» — طرق منظمة لاستكشاف الميزات والبيانات ورحلات المستخدم.
- Session-Based Test Management (Jonathan Bach)الوصف الأصلي لإدارة الاختبار القائمة على الجلسات: جلسات استكشافية محددة بميثاق ومدة، وأوراق الجلسات، وجلسات الاستخلاص (Debrief) بعدها.
- Lessons Learned in Software Testing: A Context-Driven Approach (Cem Kaner, James Bach, Bret Pettichord)دروس عملية في الإبلاغ عن الأخطاء وتصميم الاختبارات والأتمتة وإدارة الاختبار — مدرسة الاختبار المدفوع بالسياق.
- Agile Testing: A Practical Guide for Testers and Agile Teams (Lisa Crispin, Janet Gregory)أرباع الاختبار الرشيق وكيف يعمل المختبرون داخل فريق التسليم — أساس «الاختبار في الطبقة الصحيحة».
تمرين عملي
دعوات الفريق: صنّف ملاحظات جلسة واكتب مواثيق الجلسات التالية
يضيف تطبيق SaaS لإدارة المهام (خيالي) دعوة الأعضاء إلى خطة الفريق (Team). البناء 4.6.0 على بيئة staging، ولدى الفريق يوم واحد ومختبِران لهذه الميزة. أجرت زميلتك رنا الجلسة الاستكشافية الأولى هذا الصباح؛ وأنت المختبِر الثاني وتتسلّم الميزة بقية اليوم. وتجد أدناه موجز الميزة وميثاقها وملاحظاتها.
افعل ما يصفه الدليل في نهاية جلسة وبداية التي تليها: حدّد طبيعة كل ملاحظة، وتعرّف على المشكلات بمراجع الحكم (Test oracles)، واكتب عناوين للأخطاء وحالة انحدار لأهمها، ثم اكتب مواثيق الجلسات التالية بحيث تبني على ما كشفته جلسة رنا. تكفي الورقة والقلم، وخصّص نحو 40 دقيقة.
موجز الميزة - «دعوة الأعضاء» لمساحات عمل الفرق في تطبيق SaaS لإدارة المهام (خيالي)
الخطة: خطة الفريق (Team) بعشرة مقاعد. المالك وكل عضو وكل دعوة معلّقة يستخدم مقعداً واحداً.
معيار القبول AC1: يدعو المالك والمسؤولون الأشخاص بالبريد الإلكتروني
من «الإعدادات > الأعضاء».
معيار القبول AC2: رابط الدعوة صالح 7 أيام ويُستخدم مرة واحدة.
معيار القبول AC3: عندما تكون كل المقاعد مستخدمة يُعطَّل زر «دعوة» وتعرض الصفحة
«جميع المقاعد العشرة مستخدمة».
معيار القبول AC4: إلغاء دعوة أو إزالة عضو يحرّر المقعد فوراً، ويفقد العضو المُزال
الوصول إلى مساحة العمل فوراً.
معيار القبول AC5: الأدوار: مالك، ومسؤول، وعضو. المالك وحده يستطيع تغيير الأدوار.
معيار القبول AC6: بريد الدعوة بلغة المرسِل (العربية أو الإنجليزية).
البناء: 4.6.0 على staging (تطبيق ويب). مختبِران، ويوم واحد لهذه الميزة.
ملاحظات الجلسة - رنا، 09:00–10:40
الميثاق: استكشف الدعوة والإلغاء في مساحة عمل قريبة من حدّ المقاعد
لاكتشاف كيف تُحتسب المقاعد.
الملاحظة N1، الساعة 09:05: البداية: المالك و7 أعضاء ودعوة معلّقة واحدة، أي 9 من 10.
دعوتُ sara@example.com: ظهر «10 من 10»، وتعطّل زر «دعوة»،
وظهرت عبارة «جميع المقاعد العشرة مستخدمة».
الملاحظة N2، الساعة 09:12: ألغيتُ دعوة سارة، فعرضت صفحة الأعضاء «9 من 10».
صفحة «الفوترة» ما زالت تقول «10 مقاعد مستخدمة»، حتى بعد إعادة التحميل.
الملاحظة N3، الساعة 09:20: دعوتُ lina@example.com فصار العدد «10 من 10».
فتحتُ رابط سارة الملغى في نافذة خاصة وسجّلتُ باسم sara@example.com،
فانضممتُ إلى مساحة العمل. صفحة الأعضاء: «11 من 10».
الملاحظة N4، الساعة 09:41: أعدتُ ضبط البيانات: المالك و5 أعضاء، أي 6 من 10.
دعوتُ omar.ali@example.com فصار 7 من 10. العنوان نفسه مرة أخرى: «مدعو مسبقاً».
العنوان نفسه ملصوقاً من جدول بيانات بمسافة زائدة في آخره: دعوة معلّقة ثانية، و8 من 10.
الملاحظة N5، الساعة 09:58: سجّلتُ الدخول بحساب مسؤول (لا المالك). قائمة الدور مفعّلة
في صفوف الأعضاء. غيّرتُ دور هدى من عضو إلى مسؤول: «تم تحديث الدور»،
وبقيت مسؤولة بعد إعادة التحميل.
الملاحظة N6، الساعة 10:10: أزال المالك خالداً. مهامه الأربع المفتوحة ما زالت تعرض
«خالد» مكلَّفاً بها، دون أي علامة.
الملاحظة N7، الساعة 10:22: الواجهة بالعربية، أرسلتُ دعوة. نص البريد بالعربية،
لكن سطر الموضوع لا يعرض إلا علامات استفهام: «????? ???? ?????».
الملاحظة N8، الساعة 10:35: فتحتُ دعوة من البيانات المهيّأة أُرسلت قبل 8 أيام:
«انتهت صلاحية هذه الدعوة. اطلب من أحد المسؤولين إرسال دعوة جديدة».
لم يُختبر: وصول العضو المُزال (الجملة الثانية من AC4)، لعدم توفر حساب اختبار ثانٍ.- اقرأ الموجز والملاحظات. لكل ملاحظة من N1 إلى N8 قرّر: هل هي خطأ (Bug)، أم سؤال لمالك المنتج، أم سلوك يعمل كما هو موصوف؟ وسمِّ مرجع الحكم من الدليل الذي يدعم قرارك.
- لكل خطأ، اكتب ما ستتحقق منه مرة أخرى قبل الإبلاغ عنه (اعزل المحفّز، وتتبّع البيانات)، ثم اكتب له عنواناً من سطر واحد. وقرّر أيّ خطأ تبلّغ عنه أولاً ولماذا.
- اكتب ثلاثة مواثيق لجلساتك أنت في بقية اليوم بصيغة «استكشف <الهدف> باستخدام <الموارد> لاكتشاف <المعلومة>». رتّبها حسب المخاطر مع ذكر سبب الترتيب، وسمِّ الاستدلال أو الجولة التي يعتمد عليها كل ميثاق.
- حوّل الملاحظة N3 إلى حالة انحدار لها شروط مسبقة وخطوات ونتيجة متوقعة دقيقة، وقرّر هل تؤتمتها وعلى أي مستوى.
إظهار الإجابة النموذجية
تصنيف الملاحظات. أسماء مراجع الحكم أدناه هي أسماؤها في الدليل؛ وإن انطبق مرجع آخر أيضاً فهو صحيح كذلك. باختصار: N3 وN4 وN5 وN7 أخطاء، وN2 خطأ يحتاج إلى تحقق واحد أولاً، وN6 سؤال لمالك المنتج، وN1 وN8 تعملان كما هو موصوف.
الملاحظة N1: تعمل كما هو موصوف. عند «10 من 10» يتعطّل الزر وتطابق الرسالة معيار القبول AC3 حرفياً (الاتساق مع الادعاءات). ليست كل ملاحظة خطأً لمجرد أنها دُوّنت، لكن هذه تعطي فكرة متابعة: هل يصمد الحدّ حين يدعو مسؤولان في اللحظة نفسها، أو حين يُشغَل آخر مقعد فارغ من تبويبين؟
الملاحظة N2: خطأ بعد تحقق واحد (واعتبارها سؤالاً مقبول أيضاً). تختلف صفحتا الأعضاء و«الفوترة» على الرقم نفسه (الاتساق داخل المنتج)، وينص AC4 على أن المقعد يتحرر فوراً (الاتساق مع الادعاءات). قبل الإبلاغ، اعرف ماذا تعني صفحة «الفوترة» بعبارة «مقاعد مستخدمة»: فإن كانت تعرض عمداً أعلى عدد من المقاعد استُخدم في فترة الفوترة، فقد يكون السلوك مقصوداً والتسمية وحدها مضلِّلة. وفي الحالتين تذهب الأدلة إلى مالك المنتج، وهو من يقرر؛ أما مهمة المختبِر فأن يلاحظ ويجمع الأدلة ويشرح لماذا يهم الأمر.
الملاحظة N3: خطأ، وهو أول ما تبلّغ عنه. دعوة ملغاة ما زالت تُدخل صاحبها إلى مساحة العمل، فتنتهي المساحة إلى «11 من 10» مقاعد. وهذا لا يتسق مع الادعاءات (AC3 وAC4)، ولا مع الغرض (الإلغاء موجود لسحب الدعوة)، ولا مع قابلية التفسير (لا أحد يستطيع تفسير «11 من 10»). اعزله قبل الإبلاغ: هل يعمل الرابط الملغى أيضاً حين يكون هناك مقعد فارغ؟ إن عمل، فالعيب في الإلغاء، وقد يكون غياب فحص المقاعد عند الانضمام عيباً ثانياً منفصلاً له تقريره الخاص.
الملاحظة N4: خطأ. المنتج يرفض أصلاً التكرار المطابق («مدعو مسبقاً»)، فقبول العنوان نفسه بمسافة زائدة في آخره لا يتسق مع سلوك المنتج نفسه (الاتساق داخل المنتج)، ويكلّف العميل مقعداً مدفوعاً (الاتساق مع الغرض وتوقعات المستخدم). هذا استدلال «نوّع المدخلات» أثناء العمل: محتوى ملصوق بمسافات في البداية والنهاية. قبل الإبلاغ، تتبّع البيانات: تحقّق من أن قائمة الدعوات المعلّقة تعرض فعلاً دعوتين للشخص نفسه، وهل تصل إلى عمر رسالتا دعوة. والتنويعات التالية التي تستحق التجربة: مسافة في البداية، ومحرف جدولة (Tab)، والعنوان نفسه بأحرف كبيرة (Upper case)؛ وهل يُعدّ عندئذٍ العنوانَ نفسه؟ هذا سؤال لمالك المنتج.
الملاحظة N5: خطأ. يقصر AC5 تغيير الأدوار على المالك، ومع ذلك غيّر مسؤولٌ دوراً، وبقي التغيير بعد إعادة التحميل، أي أن الخادم قبله: فالمشكلة ليست مجرد قائمة كان ينبغي إخفاؤها (الاتساق مع الادعاءات). إنه عيب في الصلاحيات، ويأتي مباشرة بعد N3. قبل الإبلاغ، تتبّع البيانات: تأكّد من أن هدى صارت تملك صلاحيات المسؤول فعلاً (مثلاً تستطيع دعوة الأشخاص من «الإعدادات > الأعضاء»)، ليُظهر التقرير الأثر لا التسمية وحدها.
الملاحظة N6: سؤال لمالك المنتج. لا يذكر الموجز شيئاً عن مهام العضو المُزال، فلا يوجد ادعاء نقارن به؛ ومرجع الحكم هنا هو الاتساق مع الغرض وتوقعات المستخدم (يحتاج الفريق أن يرى المهام التي لم يعد لها مالك). اسأل: هل يُلغى إسناد المهام، أم يُعاد إسنادها، أم توسَم بعلامة؟ وماذا يحدث لتعليقات العضو المُزال؟
الملاحظة N7: خطأ. علامات الاستفهام بدل الحروف العربية تخالف AC6 والصورة التي تريدها المؤسسة (نص عربي مكسور). قبل الإبلاغ، افتح البريد نفسه في عميل بريد ثانٍ ودوّن النتيجتين، لتميّز عيباً في الإرسال من مشكلة عرض في عميل واحد.
الملاحظة N8: تعمل كما هو موصوف (AC2). لكن يبقى سؤالا متابعة لمالك المنتج: أين الحدّ الدقيق لعبارة «صالح 7 أيام» — 168 ساعة من الإرسال، أم حتى نهاية اليوم السابع، وبأي منطقة زمنية؟ وهل تظل الدعوة المنتهية تستخدم مقعداً، ما دام الموجز يحتسب كل دعوة معلّقة؟ أما سطر «لم يُختبر» فممارسة جيدة: ما تعذّر اختباره، وسببه، يصبح الميثاق التالي.
أبلغ عن N3 أولاً ثم N5: فكلاهما يحدد من يدخل مساحة العمل وماذا يستطيع أن يفعل فيها، فقد يكشفان بيانات فريق، بينما تكلّف N2 وN4 وN7 مالاً أو ثقة لكنها لا تكشف شيئاً. أمثلة على العناوين (قد تختلف صياغتك؛ المهم أن يسمّي كل عنوان السلوك والشرط ويُفهم دون الملاحظات): N3 «رابط دعوة ملغاة ما زال يتيح للمدعو الانضمام، فتصل مساحة العمل إلى 11 مقعداً من 10»؛ N5 «المسؤول يستطيع تغيير دور عضو مع أن تغيير الأدوار مقصور على المالك»؛ N2 «صفحة الفوترة ما زالت تحتسب الدعوة الملغاة مقعداً مستخدماً بعد إعادة التحميل»؛ N4 «عنوان بمسافة زائدة في آخره يتجاوز فحص التكرار ويستخدم مقعداً ثانياً»؛ N7 «موضوع بريد الدعوة العربي يعرض علامات استفهام بدل النص العربي».
مواثيق جلساتك في بقية اليوم، الأعلى خطراً أولاً (هذه أمثلة؛ وأي مواثيق جيدة الصياغة تغطي المخاطر نفسها صحيحة). الميثاق الأول: «استكشف روابط الدعوة في كل حالاتها — معلّقة، ومقبولة، وملغاة، ومنتهية، ومفتوحة مرتين — باستخدام نافذة خاصة ومتصفح ثانٍ وعنوان غير العنوان المدعو ومساحة عمل بلغت حدّ المقاعد، لاكتشاف هل يمنح أي رابط وصولاً لا ينبغي أن يمنحه أو يتجاوز بمساحة العمل عشرة مقاعد». يستخدم استدلالَي «نوّع الحالات» و«نوّع التسلسلات» (ألغِ ثم اقبل، واقبل مرتين) وجولة الوسواس (Obsessive-compulsive) بفتح الرابط نفسه مرة بعد مرة. ويأتي أولاً لأن N3 أظهرت فعلاً أن الرابط الملغى يُدخل أصحابه.
الميثاق الثاني: «استكشف تغيير الأدوار بصفة المالك والمسؤول والعضو، في الواجهة وبتكرار التغيير نفسه في تبويبين، لاكتشاف هل يستطيع أي شخص غير المالك تغيير دور، بما في ذلك دوره هو أو دور المالك». الاستدلالات: «تقمّص شخصية» و«نوّع الحالات». أظهرت N5 أن الخادم يقبل تغيير الدور من مسؤول؛ والسؤال التالي: إلى أي حد؟ هل يستطيع المسؤول أن يجعل نفسه مالكاً، أو أن يزيل المالك؟
الميثاق الثالث: «استكشف إزالة عضو بينما يعمل في متصفح ثانٍ — يعدّل مهمة، أو يضيف تعليقاً، أو يرفع ملفاً، على شبكة بطيئة — لاكتشاف متى يفقد العضو المُزال الوصول فعلاً وماذا يحدث لعمله». الاستدلالات: «قاطِع» و«نوّع دورة حياة البيانات». يغطي هذا الميثاق سطر «لم يُختبر» (AC4) ويجمع أدلة لسؤال N6؛ فاطلب حساب الاختبار الثاني قبل بدء الجلسة. ووضعه قبل الميثاق الثاني معقول أيضاً، لأنه يتعلق بالوصول كذلك.
ميثاق رابع لاحقاً: «استكشف رحلة مقعد واحد من الدعوة إلى القبول ثم الإزالة ثم صفحة الفوترة، مع ضبط لغة المرسِل على العربية ثم الإنجليزية، لاكتشاف أين يختلف عدد المقاعد أو اللغة». هذه جولة FedEx (تتبّع البيانات)، مع جولة عارض الأزياء (Supermodel) لرسائل البريد والصفحات العربية. وهي تكمل N2 وN7 اللتين تكلّفان مالاً أو ثقة دون كشف بيانات، ولذلك تأتي أخيراً.
حالة الانحدار من N3 — TC-INV-021 «لا يمكن استخدام رابط دعوة ملغاة للانضمام». الشروط المسبقة: مساحة عمل على خطة الفريق فيها مقعد فارغ ودعوة معلّقة إلى sara@example.com، ولا يوجد حساب بهذا العنوان. الخطوات: 1) ألغِ الدعوة بصفة المالك؛ 2) افتح رابطها في نافذة خاصة؛ 3) حاول التسجيل باسم sara@example.com والانضمام. النتيجة المتوقعة: يُرفض الانضمام برسالة تفيد بأن الدعوة لم تعد صالحة (اطلب نصها الدقيق من مالك المنتج واكتبه في الحالة)، ولا تظهر سارة في صفحة الأعضاء، ويبقى عدد المقاعد كما كان بعد الخطوة 1. أضف حالة ثانية تشغل فيها دعوةٌ جديدة المقعدَ المحرَّر قبل الخطوة 2، فتصبح المقاعد العشرة كلها مستخدمة، لأن N3 وقعت عند الحد. الأتمتة: نعم، فنتيجتها المتوقعة واضحة ومستقرة؛ افحصها على مستوى API (قبول دعوة ملغاة يُرفض ولا يتغير عدد الأعضاء)، وأبقِ فحصاً واحداً في الواجهة للرسالة. نفّذها أولاً بوصفها اختبار تأكيد (Confirmation testing) حين يصل الإصلاح، ثم تنتقل إلى حزمة الانحدار.
راجع عملك: لكل ملاحظة قرار ومرجع حكم، ولم تعدّ N1 أو N8 خطأً لمجرد أنهما دُوّنتا؛ وN3 هي أول ما يُبلَّغ عنه، مع تحقق يعزلها؛ وكل عنوان خطأ يسمّي السلوك والشرط؛ ولكل ميثاق هدف وموارد ومعلومة يبحث عنها، في جملة أو جملتين، فلا هو «استكشف التطبيق» ولا قائمة خطوات، وهو مبني على ما كشفته جلسة رنا؛ وأي شخص ينفّذ حالة الانحدار التي كتبتها يصل إلى النتيجة نفسها، ناجحة أو فاشلة.
تقدّمك في هذا الموضوع
سجّل الدخول لتتابع تقدّمك
علّم الموضوعات مكتملة، وتابع من حيث توقفت، وافتح امتحانات التخصص.
جزء من مسار تعلم ضمان الجودة
قبل هذا الموضوع
الموضوعات التالية
موضوعات أخرى في هذه الوحدة
الأدوات المذكورة في هذا الدليل
ولّد سيناريوهات اختبار عالية المستوى تغطي الجوانب الوظيفية والسلبية والأمنية وسهولة الاستخدام والتوافق لأي ميزة.
اكتشف الحالات الحدّية (edge cases) والحالات الطرفية (corner cases) لأي ميزة أو واجهة API أو نموذج باستخدام الذكاء الاصطناعي من متقن.
ولّد سيناريوهات سلبية وسيناريوهات إساءة استخدام مبتكرة لأي ميزة باستخدام الذكاء الاصطناعي من متقن.
ولّد مدخلات مليئة بالأحرف الخاصة: علامات الاقتباس، والأحرف الوصفية لـ SQL/HTML/JSON، وأحرف التحكم، والرموز التعبيرية، وحيل المسارات.
ولّد سلاسل نصية اختبارية بترميز Unicode عبر الخطوط (العربية والديفاناغارية وCJK والسيريلية) والرموز التعبيرية وعلامات الدمج وصيغ التطبيع.
عرّف الحالات والأحداث، ثم ولّد جدول الانتقالات واختبارات الانتقالات الصالحة/غير الصالحة وتغطية 0-switch/1-switch.
قارن استجابتي API (مثل بيئة التجريب مقابل الإنتاج) واحصل على قائمة بكل فرق بنيوي أو في القيم.
حوّل الملاحظات الأولية إلى تقرير خطأ كامل: خطوات إعادة الإنتاج، والمتوقّع مقابل الفعلي، والبيئة، ودرجة الخطورة، وقائمة تحقق للمرفقات.
ولّد مجموعة اختبارات انحدار من وصف التغيير أو ملخّص الفروقات (diff) أو ملاحظات الإصدار باستخدام الذكاء الاصطناعي من متقن.