- اختبار التكامل لا يسأل «هل انتقلت الوثيقة؟» فقط، بل: هل انتقلت كاملة ببياناتها، إلى التصنيف الصحيح، بالصلاحيات الصحيحة، مرة واحدة فقط، وهل يظهر الفشل ويُعالج دون فقد؟
- غطِّ ست فئات من الحالات لكل تكامل: النجاح المعتاد، وأخطاء البيانات، وتعطل الطرف الآخر، والتكرار والترتيب، والحجم، والصلاحيات. الفئات الثلاث الأخيرة هي التي تُهمل عادة، وهي مصدر أغلب مشكلات ما بعد الإطلاق.
- لا تبدأ الاختبار قبل شروط الدخول: مواصفة تكامل معتمدة، وبيئتا اختبار في النظامين ببيانات ممثلة، وحساب تكامل بصلاحيات محدودة، وشخص مسمى من مورد النظام الآخر.
- معيار القبول يُكتب قبل التنفيذ: الحالات الحرجة كلها ناجحة، ومطابقة كاملة بين ما أُرسل وما وصل في دفعة الاختبار أو تفسير موثق لكل فرق، وتنبيه يصل لشخص مسمى، ودليل تشغيل مستلم.
هذه المقالة لمدير مشروع الأرشفة الذي يقترب من مرحلة اختبار التكاملات، ويحتاج خطة اختبار يستطيع أن يقبل بها أو يرفض بثقة. تعطيك شروط الدخول، وجدول حالات اختبار جاهزًا للتكييف، وطريقة لاختبار الحجم من أرقام جهتك، ومعايير القبول، وما يجب توثيقه. أما سيناريوهات قبول النظام عمومًا فتجدها في مقالة سيناريوهات اختبار القبول، وهذه المقالة تتناول ما يختص به التكامل.
لماذا يحتاج التكامل اختبارًا مختلفًا عن بقية النظام؟
عندما تختبر البحث أو مسار الاعتماد، فأنت تختبر نظامًا واحدًا يملكه مورد واحد. أما التكامل فيقع بين نظامين، لكل منهما مورده وبيئته وجدول تحديثاته، وقد لا يكون أي منهما مسؤولًا عن الخطأ الذي يقع في المنتصف. هذا يغير الاختبار في أربعة أمور:
- النتيجة في مكانين: نجاح الحالة يُتحقق منه في النظام المصدر (هل سُجل الرابط أو الحالة؟) وفي الأرشيف (هل وصلت الوثيقة ببياناتها وتصنيفها؟) وفي سجل عمليات الربط (هل سُجلت العملية بمعرّفها؟).
- الفشل جزء من التصميم: النظام الآخر سيتعطل يومًا، وشهادة الاتصال ستنتهي، والحقل سيصل فارغًا. الاختبار الذي لا يفتعل هذه الحالات يختبر نصف التكامل.
- البيانات من خارج الفريق: بيانات الاختبار تُنشأ في نظام لا يملكه فريق الأرشفة، وتحتاج تنسيقًا مع مالكه.
- الأثر لا يظهر فورًا: وثيقة وصلت بتصنيف خاطئ لن يشتكي منها أحد يوم الاختبار، بل بعد أشهر حين لا يجدها صاحبها أو يجدها من لا يحق له.
ولذلك تذكر صفحة خطوات تنفيذ التكامل أن البناء والتجربة تشمل الحالات العادية وحالات الخطأ، وأن الجهة ومورد النظام الآخر يشاركان في الاختبار والتحقق من النتائج.
شروط الدخول: ما يجب أن يكون جاهزًا قبل أول حالة
أكثر أيام اختبار التكامل تضيع في انتظار ما كان يجب أن يُجهز قبلها. اجعل هذه الشروط بوابة: لا يبدأ الاختبار الرسمي قبل اكتمالها، ويمكن قبلها إجراء تجارب اتصال فنية فقط.
- مواصفة التكامل معتمدة
لكل تكامل: الحدث الذي يطلقه، واتجاه النقل، والحقول ومطابقتها مع نوع الوثيقة، والتوقيت، والنتيجة المتوقعة في النظامين، والسلوك عند الخطأ. ما ليس في المواصفة لا يمكن الحكم عليه بنجاح أو فشل.
مالك الإجراء ومدير المشروع - بيئتا اختبار متصلتان
بيئة اختبار للأرشيف، وبيئة اختبار أو حساب تجريبي للنظام الآخر، متصلتان بالطريقة نفسها المخطط لها في الإنتاج قدر الإمكان: الشبكة، والمصادقة، والشهادات.
تقنية المعلومات ومورد النظام الآخر - بيانات اختبار ممثلة ومجهزة مسبقًا
معاملات تغطي الأنواع والحالات المطلوبة، بما فيها الحالات الشاذة. إن استُخدمت نسخة من بيانات حقيقية فبموافقة الجهة المختصة لديكم، ومع حجب البيانات الشخصية أو الحساسة بحسب سياستها.
مالك النظام الآخر - حساب تكامل بصلاحيات محدودة
حساب مستقل لكل نظام، بصلاحيات لا تتجاوز ما يحتاجه التكامل، لا حساب مسؤول النظام. الاختبار بحساب واسع الصلاحيات يخفي مشكلات ستظهر في الإنتاج.
أمن المعلومات - أشخاص مسمون من الطرفين
من يستطيع إطلاق الحدث في النظام الآخر، ومن يقرأ سجلاته، ومن يقرر إن كان الخلل في طرفه. وجودهم في يوم الاختبار نفسه، لا بالبريد بعده.
مدير المشروع لدى الجهة - إصدارات مجمدة
إصدار كل نظام وإعدادات التكامل ثابتة أثناء دورة الاختبار. تحديث أحد النظامين في منتصفها يعني إعادة الحالات المتأثرة.
مورد النظامين
جدول حالات اختبار التكامل
الجدول التالي مبني على تكامل افتراضي بين النظام المالي والأرشيف: عند تسجيل فاتورة مورد في النظام المالي تنتقل الفاتورة ببياناتها إلى الأرشيف، وتُربط بأمر الشراء، ويعود رابط الأرشيف إلى النظام المالي. غيّر الحدث والحقول بحسب تكاملاتكم، واحتفظ بالفئات.
مثال توضيحي| # | الفئة | الحالة والمدخل | النتيجة المتوقعة | الدليل |
|---|---|---|---|---|
| 1 | النجاح | تسجيل فاتورة كاملة البيانات مرتبطة بأمر شراء قائم | الفاتورة في الأرشيف بنوعها وتصنيفها وحقولها، مرتبطة بأمر الشراء، والرابط ظاهر في النظام المالي | لقطة من النظامين، وسطر العملية في سجل الربط بمعرّفها |
| 2 | النجاح | تعديل قيمة الفاتورة في النظام المالي بعد أرشفتها | يتحدث الحقل في الأرشيف بحسب المواصفة، أو يُسجل إصدار جديد، ولا تُنشأ وثيقة ثانية | بطاقة الوثيقة قبل التعديل وبعده |
| 3 | أخطاء البيانات | فاتورة بلا رقم أمر شراء | تُؤرشف في قائمة «بانتظار الربط» أو تُرفض بحسب المواصفة، مع سبب واضح في السجل | سطر الخطأ ورسالة التنبيه |
| 4 | أخطاء البيانات | مورد غير موجود في قائمة الموردين في الأرشيف | السلوك المحدد في المواصفة: إضافة المورد بالتكامل أو تعليق العملية، ولا تُحفظ قيمة نصية حرة | بطاقة الوثيقة وقائمة الموردين |
| 5 | أخطاء البيانات | مرفق بصيغة غير مدعومة، أو ملف أكبر من الحد المتفق عليه، أو اسم مورد بحروف عربية وأرقام مختلطة | رفض واضح بسبب مسجل للصيغة والحجم، وحفظ صحيح للنص العربي دون تشوه | سجل الربط وبطاقة الوثيقة |
| 6 | تعطل الطرف الآخر | إيقاف خدمة الأرشيف أثناء تسجيل ثلاث فواتير | تُسجل العمليات متعذرة، وتُعاد المحاولة تلقائيًا بعد عودة الخدمة، وتصل الفواتير الثلاث دون تكرار | سجل المحاولات، وعدد الفواتير في الأرشيف |
| 7 | تعطل الطرف الآخر | انتهاء صلاحية بيانات مصادقة حساب التكامل | فشل مسجل برسالة تدل على السبب، وتنبيه يصل إلى الشخص المسمى، ولا فقد بعد تجديدها | التنبيه المستلم وسجل الإعادة |
| 8 | التكرار والترتيب | إرسال الحدث نفسه مرتين، أو إعادة عملية يدويًا بعد نجاحها | وثيقة واحدة فقط في الأرشيف | بحث برقم الفاتورة يُرجع نتيجة واحدة |
| 9 | التكرار والترتيب | وصول الفاتورة قبل أمر الشراء المرتبط بها | تُحفظ الفاتورة وتُربط تلقائيًا عند وصول أمر الشراء، أو تظهر في قائمة استثناء بحسب المواصفة | حالة الربط قبل وصول أمر الشراء وبعده |
| 10 | الحجم | دفعة بحجم ذروة الجهة الفعلية، مثل فواتير نهاية الشهر | كل العمليات مسجلة، وعدد المرسل يطابق عدد المستلم، ولا تتجاوز مدة المعالجة ما اتُّفق عليه | تقرير المطابقة وتوقيت أول عملية وآخرها |
| 11 | الصلاحيات | فاتورة لإدارة أو فرع مقيد | ترث صلاحيات تصنيفها، ولا يراها في الأرشيف إلا المخولون | بحث من مستخدم غير مخول لا يُرجعها |
| 12 | الصلاحيات | مستخدم في النظام المالي يضغط رابط الأرشيف لفاتورة لا يملك صلاحية عليها | يُرفض الفتح في الأرشيف، ويُسجل الطلب | رسالة الرفض وسطر سجل التدقيق |
| 13 | الصلاحيات | محاولة حساب التكامل حذف وثيقة أو قراءة تصنيف خارج نطاقه | مرفوضة | استجابة الرفض في السجل |
| 14 | الصلاحيات | إيقاف التكامل أو سحب صلاحية حسابه | يتوقف النقل فقط، ويستمر عمل الأرشيف والتكاملات الأخرى | عمل تكامل آخر وبحث عادي أثناء الإيقاف |
الحالات 6 و7 و8 تختبر ما وصفته صفحة متابعة الربط ومعالجة الأخطاء: تسجيل كل عملية، وإعادة المحاولة، والتنبيه، والإعادة اليدوية بعد معالجة السبب. أما تصميم إدارة الأخطاء نفسها بعد الإطلاق، من يستقبل التنبيه وكيف تُصنف الأخطاء ومتى تُصعّد، فموضوع مقالة إدارة أخطاء تبادل الوثائق بين الأنظمة.
اختبار الحجم من أرقام جهتك لا من أرقام المورد
«التكامل يتحمل أي حجم» عبارة لا تُختبر. الحجم الذي يهمك هو ذروة جهتك، وتستخرجه من سجلات النظام المصدر لا من التقدير:
- الذروة لا المتوسط: ابحث في سجلات النظام المصدر عن أعلى عدد للأحداث في ساعة أو يوم خلال السنة الماضية، مثل إقفال نهاية الشهر أو بداية العام الدراسي أو موسم التعيينات.
- الدفعة الأولى بعد الإطلاق: إن كان التكامل سيبدأ بنقل معاملات متراكمة، فهذه ذروة من نوع آخر، واختبرها منفصلة.
- ما تقيسه: هل وصل كل شيء (المطابقة)، وكم استغرقت الدفعة من أول عملية لآخرها، وهل تأثر المستخدمون في الأرشيف أثناءها، وهل ظهرت أخطاء لم تظهر في الحالات المنفردة.
جهة افتراضية وجدت في سجلات نظامها المالي أن أعلى يوم في السنة سُجلت فيه 1,200 فاتورة، أغلبها في آخر أربع ساعات عمل. قرر فريق المشروع أن يختبر بدفعة 1,500 فاتورة، أي الذروة مع هامش ربع إضافي حدده بنفسه، تُطلق خلال أربع ساعات. النتيجة المطلوبة: 1,500 عملية في سجل الربط، و1,500 فاتورة في الأرشيف، ومدة معالجة لا تتجاوز ما اتُّفق عليه في المواصفة. الأرقام هنا لتوضيح الطريقة فقط، والهامش قرار الجهة بحسب توقع نموها.
وإن كانت بيئة الاختبار أضعف من الإنتاج، فاذكر ذلك في محضر النتائج، ولا تستنتج من سرعة الاختبار سرعة الإنتاج ولا العكس. الأهم في اختبار الحجم هو المطابقة وغياب الفقد والتكرار، أما التوقيت فيُقرأ في سياق البيئة.
البيئات: من الاختبار إلى الإنتاج دون مفاجآت
أغلب مشكلات التكامل التي تظهر يوم الإطلاق سببها فرق بين البيئتين لا خلل في المنطق: عنوان خدمة مختلف، أو شهادة لم تُثبت، أو منفذ شبكة لم يُفتح، أو قائمة مرجعية في الإنتاج تختلف عن الاختبار. لذلك:
- قائمة فروق مكتوبة: كل إعداد يختلف بين الاختبار والإنتاج يُكتب في قائمة، ويُتحقق منه عند النقل واحدًا واحدًا.
- إن لم يكن للنظام الآخر بيئة اختبار: لا تختبر على الإنتاج مباشرة كأنه بيئة اختبار. الخيارات المعتادة: حساب أو شركة تجريبية داخل النظام نفسه، أو نسخة محجوبة البيانات، أو تشغيل محدود على الإنتاج بنطاق ضيق ومراقبة لصيقة بعد إكمال كل ما يمكن اختباره في جانب الأرشيف. اختيار أحدها قرار يُكتب مع أثره.
- اختبار دخان بعد النقل: بعد نقل التكامل إلى الإنتاج وقبل فتحه للجميع، نفّذ الحالة 1 وحالة خطأ واحدة على معاملات حقيقية منخفضة الأثر، وتحقق من وصول التنبيه إلى الشخص المسمى في الإنتاج.
- خطة تراجع: إن ظهر خلل بعد الإطلاق، يُوقف التكامل دون إيقاف الأرشيف، وتتراكم الأحداث في النظام المصدر أو في قائمة انتظار لتُعاد بعد الإصلاح. اختبرها فعلًا ضمن الحالة 14.
ضوابط الفصل بين البيئتين نفسها، من البيانات والصلاحيات إلى نقل الإعدادات، تجدها في مقالة فصل بيئة الاختبار عن الإنتاج.
معايير قبول التكامل وتوثيقه
اكتب معايير القبول في خطة الاختبار قبل التنفيذ، ووقّعها مالكا النظامين. المعيار الذي يُكتب بعد رؤية النتائج يتحول إلى تفاوض.
| المعيار | متى يُعد متحققًا |
|---|---|
| الحالات الحرجة | كل حالات النجاح والتكرار والصلاحيات ناجحة، ولا ملاحظة مانعة مفتوحة في أي فئة |
| المطابقة | عدد العمليات المرسلة يساوي عدد الوثائق المستلمة في كل دفعة اختبار، أو يوجد تفسير موثق لكل فرق |
| المراقبة والتنبيه | كل فشل مفتعل ظهر في لوحة المتابعة، ووصل تنبيهه إلى الشخص المسمى في الإنتاج لا في الاختبار فقط |
| الاسترداد | كل عملية فشلت أُعيدت بنجاح بعد معالجة سببها، دون تكرار ودون تدخل في قاعدة البيانات |
| الحجم | دفعة الذروة المتفق عليها اكتملت بمطابقة كاملة ضمن المدة المتفق عليها لتلك البيئة |
| التوثيق | مستلم ومراجع: المواصفة النهائية، ومطابقة الحقول، ودليل التشغيل، ورموز الأخطاء، وجهات التواصل |
وتصنيف الملاحظات إلى مانعة وجوهرية وثانوية يتبع القواعد نفسها المستخدمة في قبول النظام. أما ما يُحفظ دليلًا على الاختبار فهو:
- خطة الاختبار بحالاتها ومعاييرها موقعة قبل التنفيذ.
- لكل حالة: تاريخ التنفيذ، والمنفذ، ومعرّف العملية في سجل الربط، ولقطات من النظامين، والنتيجة.
- سجل الملاحظات ومعالجة كل منها وإعادة اختبارها.
- تقرير مطابقة لدفعات الحجم.
- محضر قبول التكامل موقع من مالك الأرشيف ومالك النظام الآخر.
- دليل التشغيل: كيف تُقرأ لوحة المتابعة، وكيف تُعاد عملية فاشلة، ومن يُتصل به في كل طرف.
البند الأخير هو ما سيستخدمه فريقكم بعد رحيل فريق المشروع. تكامل مقبول بلا دليل تشغيل يعني أن أول خطأ بعد الإطلاق سيصبح طلب دعم عاجلًا.
أخطاء شائعة في اختبار التكاملات
- الاختبار بحساب مسؤول النظام: تنجح كل الحالات، ثم تفشل في الإنتاج لأن حساب التكامل الفعلي محدود الصلاحيات، أو أسوأ: يُعتمد الحساب الواسع في الإنتاج لأنه «اختُبر».
- التحقق من طرف واحد: الوثيقة وصلت إلى الأرشيف، لكن الرابط لم يعد إلى النظام المالي، أو عاد لكنه يفتح وثيقة أخرى.
- تجاهل التكرار: إعادة المحاولة التلقائية أو اليدوية تُنتج نسختين، ولا يُكتشف ذلك إلا في التقارير.
- بيانات اختبار نظيفة أكثر من الواقع: كل الفواتير كاملة، وكل الموردين موجودون. الواقع فيه حقول فارغة وأسماء بصيغ مختلفة ومرفقات تالفة.
- اختبار التكامل مرة واحدة: تحديث أحد النظامين بعد الإطلاق قد يكسر الربط. أبقِ مجموعة مختصرة من الحالات تُعاد بعد كل تحديث لأي من النظامين.
- ترك قرار السلوك عند الخطأ للمطور: هل تُرفض الفاتورة بلا أمر شراء أم تُعلق؟ هذا قرار عمل يعود لمالك الإجراء، ويُكتب في المواصفة قبل البناء.
الخطوة التالية: خطة اختبار لكل تكامل قبل بنائه
لا تنتظر مرحلة الاختبار لتكتب الحالات. اكتب مسودتها مع مواصفة التكامل، فكثير من الحالات يكشف قرارات لم تُتخذ بعد: ماذا نفعل بفاتورة بلا أمر شراء؟ من يتلقى التنبيه؟ ما حجم الذروة؟ وحدد لكل تكامل ما يلزمك من مورد النظام الآخر من توثيق وبيئة وأشخاص، لأن هذا ما يؤخر الاختبار عادة. وتعرض صفحة أمن التكامل الضوابط التي تتحقق منها الحالات 11 إلى 14، وتوضح صفحة مراحل التنفيذ موقع بناء التكاملات واختبارها في المشروع.
وإن كنت تخطط لتكاملات مع أنظمة جهتك، فأرسل قائمة الأنظمة والأحداث المطلوب ربطها وما تعرفه عن واجهاتها، واطلب تقييم نطاق التكامل وخطة اختباره لنوضح ما يمكن تحقيقه بعد فحص الواجهات، وما يتطلبه من مورد النظام الآخر.
أسئلة شائعة
من يكتب حالات اختبار التكامل: المورد أم الجهة؟
يكتب المورد المسودة عادة لأنه يعرف تفاصيل البناء، لكن الجهة تراجعها وتضيف إليها. تتولى الجهة تحديدًا حالات البيانات الشاذة التي تعرفها من واقعها، وحجم الذروة من سجلاتها، والنتيجة المتوقعة في الحالات التي تمس قرار عمل. ويعتمد الخطة مالك الأرشيف ومالك النظام الآخر معًا.
هل نختبر كل الحالات لكل تكامل مهما كان بسيطًا؟
غطِّ الفئات الست لكل تكامل، لكن عدد الحالات داخل كل فئة يتناسب مع أثره. تكامل البريد لاستقبال المرفقات قد يكفيه حالة أو اثنتان لكل فئة. أما تكامل ينقل وثائق مالية أو ملفات موظفين بصلاحيات مقيدة فيستحق حالات أكثر في فئتي الصلاحيات والتكرار تحديدًا.
كم مرة نعيد اختبار التكامل بعد الإطلاق؟
بعد كل تحديث لأي من النظامين يمس الواجهة أو الحقول أو المصادقة، وبعد أي تغيير في مطابقة الحقول أو القوائم المرجعية. احتفظ بمجموعة انحدار مختصرة: حالة نجاح، وحالة خطأ بيانات، وحالة تكرار، وحالة صلاحيات، تُنفذ على بيئة الاختبار قبل تطبيق التحديث في الإنتاج.
ماذا لو رفض مورد النظام الآخر المشاركة في الاختبار؟
هذا خطر يُرفع إلى راعي المشروع مبكرًا، لأن الجهة هي صاحبة العلاقة التعاقدية معه. إلى أن يُحل، يمكن اختبار جانب الأرشيف بمحاكاة الطرف الآخر وفق توثيق واجهته، لكن لا تقبل التكامل نهائيًا دون حالات من طرف إلى طرف على النظام الفعلي، ولو بتشغيل محدود ومراقب.