كيف تُختبر القواعد
تقابل 97 من قواعد الحزمة المسجّلة، وعددها 110، بنداً في قواعد التحقق المنشورة من هيئة الزكاة والضريبة والجمارك، فتغطي 96 من أصل 242 من رموز القواعد التي تنشرها الهيئة؛ وما بقي من قواعد الحزمة فحوص خاصة بمطابق. وكل مستند في مجموعة مستندات الاختبار تحكم عليه حزمة أدوات التطوير التي تنشرها الهيئة قبل أن يُحاسَب مطابق عليه. وتبيّن هذه الصفحة كيف يجري ذلك، وأعدادها مقروءة من ملفات البناء نفسها.
من أين تأتي القواعد
تقابل حزمة القواعد 2.2.0 فحوصاً في ملفات قواعد التحقق (Schematron) التي يتضمنها الإصدار 3.4.8 من حزمة أدوات التطوير SDK التي تنشرها الهيئة: ملف المملكة المؤرخ في 2025-12-01 وملف معيار EN16931 المؤرخ في 2025-09-02، وهما محفوظان في المستودع بايتاً ببايت كما تصدرهما حزمة أدوات التطوير. و97 من قواعد مطابق المسجّلة وعددها 110 تقابل بنداً منشوراً، وتقتبس صفحة كل قاعدة البند الذي تقابله بالملف والسطر. أما بقية القواعد فتفحص ما لا يختبره أي بند منشور: هل يُقرأ ملف XML ويوافق مخططه، وحمولة رمز الاستجابة السريعة، وبصمة تجزئة الفاتورة السابقة. وفحوص قارئ الأرشيف، MTB-BATCH، مستقلة وليست من هذه القواعد.
من أين تأتي درجة الخطورة
يحمل كل فحص في ملفات الهيئة تصنيف الهيئة نفسها: خطأ أو تحذير. فالقاعدة التي تقابل فحصاً مصنَّفاً خطأً تكون خطأً في تقرير مطابق، لأن المستند يخفق به لدى حزمة أدوات التطوير؛ والقاعدة التي تقابل فحصاً مصنَّفاً تحذيراً تكون تحذيراً، لأن حزمة أدوات التطوير تطبعه وتُجيز المستند. ولا يرفع مطابق أي تصنيف حددته الملفات إلى درجة أعلى. أما القاعدة التي لا تقابل بنداً فتكون خطأً حيث يخفق المستند في مرحلة المخطط أو البنية لدى حزمة أدوات التطوير، وتحذيراً حيث يكون ذلك غير مؤكد؛ وتكون بصمة تجزئة الفاتورة والتوقيع والمفتاح العام في رمز الاستجابة السريعة، وتوقيع الجهة التقنية المصدِّرة للشهادات لدى الهيئة على ذلك المفتاح، إرشاداً، لأنها تأتي من خطوة التوقيع ومن الشهادة ولا يستطيع مطابق حسابها. وحين يرفض قارئ الأرشيف أرشيفاً تكون الملاحظة خطأً، لأنه لم يُفحص شيء مما فيه.
مستندات الاختبار
تُحاسَب حزمة القواعد على 151 مستند اختبار بُنيت لها: مستندات ينبغي أن تجتاز، ومستندات يحمل كل منها خللاً واحداً ينبغي أن يرصده بند بعينه. وكل مستند مبني من مخططات حزمة أدوات التطوير SDK التي تنشرها الهيئة وملفات قواعدها، وكل حقل فيه مبرَّر بمعرّف قاعدة. وأكثر المستندات غير موقّعة، فملاحظات حزمة أدوات التطوير عن التوقيع والشهادة متوقعة على أكثرها، ومسرودة برموزها بجانب كل مستند، ولا تُعدّ إخفاقاً أبداً؛ ومستند واحد موقّع بمفتاح العيّنة الذي تتضمنه حزمة أدوات التطوير.
حزمة أدوات التطوير تحكم على كل مستند أولاً
قبل أن ينضم مستند إلى المجموعة، يُشغَّل عليه الإصدار 3.4.8 من حزمة أدوات التطوير SDK التي تنشرها الهيئة، وتُسجَّل النتيجة التي تطبعها، مرحلةً مرحلة، بجانب المستند مع كل رمز قاعدة رصدته. وتُحدَّد نتيجة مطابق المتوقعة لذلك المستند بناءً على ذلك السجل، والقاعدة التي تخالف حزمة أدوات التطوير في مستند حكمت عليه هي القاعدة الخاطئة. والمستند الذي تتوقف حزمة أدوات التطوير عنده بلا نتيجة يُسجَّل على هذا النحو بالضبط.
السجل لا ينحرف
يحمل كل سجل بصمة تجزئة SHA-256 لبايتات المستند لحظة حكمت عليه حزمة أدوات التطوير. ويعيد فحص يعمل مع كل تغيير حساب كل بصمة ويُخفق عند أي اختلاف، فلا يستطيع مستند عُدِّل أن يحتفظ بنتيجة لم يستحقها. وقاعدة العمل ألا تُغيَّر نتيجة مسجّلة إلا بتشغيل حزمة أدوات التطوير من جديد.
البايتات نفسها، النتيجة نفسها
ويبني فحص ثانٍ المجموعة كلها مرتين ويشغّل حزمة أدوات التطوير على كلتيهما، ويُخفق إذا اختلفت بايتات أي مستند أو أي نتيجة بين التشغيلين: فالمولّد الذي يعتمد على الساعة، أو حزمة أدوات التطوير حين تجيب إجابة مختلفة، يظهران هنا. ويُشغَّل حين تتغير مستندات الاختبار أو حزمة القواعد، خارج الفحوص التي تعمل مع كل تغيير. وقاعدة واحدة، MTB-BR-KSA-04، تفحص تاريخ الإصدار مقارنةً بتاريخ مرجعي، ويذكر تقرير كل فحص جديد التاريخ الذي استخدمه.
ما يعمل مع كل تغيير
يشغّل كل تغيير في الشيفرة حزمة القواعد على المستندات كلها وعددها 151 ويقارن الملاحظات بكل سجل، قاعدةً قاعدة. والتغيير الذي يحرّك أي نتيجة يُخفق حتى تتفق السجلات والشيفرة. ولا دور لنص الشرح بأي من اللغتين في النتيجة، ولا لأي نموذج لغوي.
حين تنشر الهيئة إصداراً جديداً من حزمة أدوات التطوير
وحين تنشر هيئة الزكاة والضريبة والجمارك إصداراً جديداً من حزمة أدوات التطوير SDK، يعيد مطابق تشغيل مجموعة ملفات الاختبار وعدّ التغطية على الملفات التي يتضمنها ذلك الإصدار، ويسجّل النتيجة في سجل التغييرات خلال أربعة عشر يوماً.
ما لا يُفحص
يفحص مطابق 96 من رموز القواعد في ملفات قواعد الإصدار 3.4.8 من حزمة أدوات التطوير SDK التي تنشرها الهيئة وعددها 242. وتسرد صفحة التغطية كل رمز قاعدة لا يفحصه، مع تصنيف الهيئة ورسالتها، وتبيّن طريقة عدّ الرموز.