A Validated Measurement Protocol for Comparable, Cost-Aware Software Testing Evaluation: A Reproducible Benchmark, an Oracle Sampling-Budget Guarantee, and a Real-Fault Validity Study, Instantiated for Quantum Programs
تقدم هذه الورقة بروتوكول قياس معتمد وقابل لإعادة الإنتاج (QSQ-Bench و Q-EVAL) يضمن تقييمات لاختبار البرمجيات قابلة للمقارنة، ومراعية للتكلفة، وصالحة بنيوياً من خلال إرساء ضمانات إحصائية لـ "الأوراكل" وإثبات فعاليتها عبر دراسة شاملة على البرامج الكمومية ونظام كلاسيكي.
في عالم هندسة البرمجيات، يمثل الاختبار عملية تشغيل برنامج ما لمعرفة ما إذا كان يعمل بشكل صحيح. بالنسبة لمعظم برامج الكمبيوتر، يكون هذا الأمر مباشرًا: تعطي البرنامج مدخلات محددة، فينتج إجابة واحدة محددة. إذا تطابقت الإجابة مع ما تتوقعه، ينجح الاختبار؛ وإذا لم تتطابق، يفشل. ولكن هناك فئة متنامية من البرمجيات، لا سيما تلك المصممة للحواسيب الكمومية، التي لا تسلك هذا السلوك. فبدلاً من إنتاج إجابة واحدة وحيدة، تولد هذه البرامج سحابة من النتائج المحتملة، لكل منها فرصتها الخاصة في الحدوث. ولكي تعرف ما إذا كان مثل هذا البرنامج يعمل بشكل صحيح، لا يمكنك تشغيله مرة واحدة فقط، بل يجب عليك تشغيله آلاف المرات، وجمع النتائج، والنظر في النمط العام للاحتمالات. وهذا يحول الاختبار إلى لعبة إحصائية بدلاً من مجرد فحص بسيط للصواب أو الخطأ. وتكمن التحدي للمهندسين في أن تشغيل هذه البرامج مكلف وبطيء، لذا فهم بحاجة إلى معرفة عدد المرات التي يجب تشغيلها بالضبط ليكونوا واثقين من حكمهم. فإذا قاموا بتشغيلها مرات قليلة جداً، فقد يغفلون عن خطأ حقيقي؛ وإذا قاموا بتشغيلها مرات كثيرة جداً، فإنهم يهدرون وقتاً وموارد قيمة.
لقد بنى فريق من الباحثين الآن طريقة معيارية جديدة لقياس مدى فعالية طرق الاختبار المختلفة لهذه البرامج المعقدة القائمة على الاحتمالات. لقد وضعوا مجموعة ثابتة من القواعد، وهي "معيار مرجعي"، وضماناً إحصائياً يسمح للمهندسين بمقارنة استراتيجيات الاختبار المختلفة بشكل عادل. قبل هذا العمل، كانت الدراسات في هذا المجال غالباً ما تستخدم برامج مختلفة، وتعاريف مختلفة لـ "الفشل"، وكميات مختلفة من القدرة الحوسبية، مما يجعل من المستحيل معرفة ما إذا كانت إحدى الطرق أفضل حقاً من غيرها. قام الباحثون، باستخدام البرمجيات الكمومية كحالة اختبار، بوضع بروتوكول واحد يبقي كل العوامل الأخرى ثابتة. وقد اختبروا أربع طرق مختلفة لاختيار المدخلات التي يتم تغذيتها للبرنامج، وثلاث طرق مختلفة لتحديد ما إذا كانت المخرجات صحيحة أم لا. كما أجروا هذه الاختبارات على خمسة عشر برنامجاً كمومياً مختلفاً، من خلال إنشاء آلاف الأخطاء الاصطناعية لمعرفة أي طريقة اختبار يمكنها اكتشافها.
كشفت الدراسة أنه لا توجد طريقة اختبار واحدة مثالية لكل موقف. ووجد الباحثون أن الخيار الأفضل يعتمد على النوع المحدد للخطأ الذي تبحث عنه ومدى الوقت المتاح لك لإجراء الاختبارات. إحدى الطرق، والتي تستخدم خوارزمية جينية للبحث عن الأخطاء، كانت الأكثر فعالية عندما كانت ميزانية تشغيل الاختبارات ضيقة جداً، حيث وجدت جميع الأخطاء في جولة اختبار واحدة فقط. ومع ذلك، مع زيادة الميزانية، لحقت بها الطرق الأبسط التي تستخدم مدخلات عشوائية أو قواعد تغطية أساسية وأدت أداءً مماثلاً. كما اكتشف الباحثون أن تكلفة الاختبار لا تتحدد بحجم البرنامج، بل بمدى انتشار إجاباته المحتملة. فبالنسبة للبرامج التي تتركز إجاباتها في عدد قليل من النتائج، فأنت تحتاج إلى عدد أقل بكما من عمليات التشغيل لتكون واثقاً مما قد يوحي به أسوأ سيناريو رياضي.
تضمن جزء حاسم من عملهم التحقق مما إذا كانت الأخطاء الاصطناعية التي استخدموها في الاختبار تمثل بالفعل أنواع الأخطاء التي يرتكبها المطورون الحقيقيون. فقد أخذوا اثنين وخمسين خطأً حقيقياً من قاعدة بيانات عامة لأخطاء البرمجيات الكمومية، وأجروا عليها نفس نظام الاختبار. وأظهرت النتائج أن طرق الاختبار نجحت في اكتشاف 81% من الأخطاء الحقيقية القابلة للتنفيذ. أما الـ 19% التي تم تفويتها، فلم تكن فشلاً في أدوات الاختبار، بل كانت حداً جوهرياً لهذا النهج: إذ تضمنت تلك الأخطاء المحددة أشياء مثل المظهر المرئي للكود أو الطور العالمي (global phase) للحالة الكمومية، وهي أمور لا يمكن رؤيتها من خلال النظر إلى احتمالات المخرجات وحدها. وقد أكد هذا أن الاختبارات الاصطناعية هي أداة قوية، لكنها لا تستطيع رؤية كل نوع من أنواع الأخطاء البشرية.
كما أثبت الباحثون أن البيئة التي يعمل فيها البرنامج مهمة. فعندما قاموا بمحاكاة الضجيج الموجود في الأجهزة الكمومية الحقيقية، لم تتقارب نتائج الاختبار نحو صفر خطأ مع زيادة عدد مرات التشغيل، بل استقرت عند حد أدنى ضئيل ولا مفر منه من الضجيج الناتج عن الجهاز نفسه. وهذا يعني أنه مهما كان عدد المرات التي تشغل فيها الاختبار، فلا يمكنك التمييز بين خطأ برمجي ضئيل والضجيج الطبيعي للآلة ما لم تضع عتبة كشف عالية لتجاهل ذلك الضجيج. ولإثبات أن بروتوكول القياس الجديد الخاص بهم ليس مقتصرًا على الحواسيب الكمومية، طبقوا نفس الكود دون تعديل على نظام حاسوبي كلاسيكي يدير تقسيم حركة المرور لميزات الويب. وقد تكررت النتائج تماماً، مما أظهر أن القواعد التي اكتشفوها تنطبق على أي برنامج تكون فيه المخرجات عبارة عن توزيع للاحتمالات بدلاً من قيمة واحدة.
في نهاية المطاف، يوفر هذا العمل خارطة طريق واضحة وموثقة للمهندسين الذين يعملون مع البرمجيات غير اليقينية. فهو يقدم صيغة لحساب عدد مرات تشغيل الاختبار المطلوبة بالضبط لالتقاط حجم معين من الخطأ بمستوى الثقة المطلوب. كما يوضح أن صعوبة الاختبار مدفوعة بشكل البيانات، وليس فقط بحجم الكود. ويضع منهجاً صارماً للتحقق مما إذا كانت استراتيجية الاختبار تجد بالفعل مشكلات حقيقية، أم مجرد مشكلات اصطناعية. ومن خلال ضبط قواعد اللعبة، حول الباحثون مجالاً من الادعاءات المتفرقة وغير القابلة للمقارنة إلى تخصص يمكن فيه قياس الفعالية ومقارنتها والثقة بها.
تعاني التقييمات التجريبية لاختبار البرمجيات في المجالات الناشئة، ولا سيما البرمجيات الكمومية، من نقص في القدرة على المقارنة. إن النتائج المنشورة المتعلقة بفعالية استراتيجيات توليد الاختبارات، أو "الأوراكل" (oracles)، ونماذج الخطأ، غالبًا ما تكون غير متوافقة مع بعضها البعض لأنها تعتمد على برامج، ونماذج خطأ، وميزانيات تنفيذ، وإجراءات إحصائية متباينة. هذا التراكم من الادعاءات التي قد تكون موثوقة فرديًا ولكنها غير قابلة للمقارنة يعيق قدرة المجال على تحديد التقنيات الفعالة حقًا. علاوة على ذلك، هناك نقص في الضمانات الإحصائية المُثبتة فيما يتعلق بميزانية أخذ العينات المطلوبة لكي تنتج "الأوراكل" الاحتمالية (probabilistic oracles) أحكامًا جديرة بالثقة، كما تظل الصلاحية البنائية لاختبار الطفرات الاصطناعية (تحديدًا ما إذا كانت الطفرات المزروعة تتنبأ باكتشاف أخطاء المطورين الحقيقية) فرضية غير مختبرة في المجالات ذات "الأوراكل" الاحتمالية.
المنهجية
يعالج المؤلفون هذه القضايا من خلال تصميم وتثبيت وتنفيذ بروتوكول قياس ثابت وقابل للتكرار يسمى Q-EVAL، مُجسد ضمن مجموعة اختبار تسمى QSQ-Bench. الدراسة عبارة عن محاكاة محكومة باستخدام 15 برنامجًا كموميًا مزودًا بأدوات قياس كاملة (تتراوح من 2 إلى 9 كيوبت) يتم تنفيذها على محاكي قياسي (Qiskit Aer).
تشمل الابتكارات المنهجية الجوهرية ما يلي:
البروتوكول الثابت: يثبت البروتوكول مجموعة البرامج، ومجموعة نموذجية من خمسة عوامل للطفرات (استبدال البوابة، الحذف، الإدخال، إعادة توصير الكيوبت، واضطراب المعاملات)، وعائلة محددة من "الأوراكل" (تعتمد افتراضيًا على مسافة L1 الإحصائية)، وميزانية أخذ عينات، وإجراءات إحصائية (أحجام تأثير Vargha-Delaney A^12، واختبارات Mann-Whitney).
ضمان ميزانية أخذ عينات الأوراكل: اشتق المؤلفون وثبتوا حدًا نظريًا لعدد الطلبات (N) المطلوبة لـ "أوراكل" إحصائي للتمييز بين برنامج صحيح وآخر معيب بوجود فجوة توزيعية معينة (d) ومستوى ثقة (α). الحد هو N=O((K+log(1/α))/d2)، حيث K هو عدد النتائج الممكنة.
دراسة الصلاحية البنائية: لاختبار صلاحية اختبار الطفرات، قام المؤلفون بتنفيذ 52 زوجًا من (الخطأ/الإصلاح) الحقيقي من مستودع Bugs4Q عبر نفس إطار القياس المستخدم للطفرات الاصطناعية. قاموا بتصنيف نتائج الكشف وتحليل حالات الإخفاق لتحديد ما إذا كانت هذه الأخطاء غير مرئية لـ "الأوراكل" القائمة على المخرجات بحكم التعريف.
التحقق عبر المجالات: لاختبار عمومية البروتوكول، تمت إعادة تنفيذ الكود الأساسي غير المعدل (تحديدًا حد ميزانية أخذ العينات ودوال الأوراكل) على نظام عشوائي كلاسيكي غير كمومي: نظام تقسيم حركة المرور الموزون (نظام bucketing لخاصية feature-flag).
المساهمات الرئيسية
تقدم الورقة ست مساهمات أساسية، مرتبة حسب أهميتها لأبحاث جودة البرمجيات:
بروتوكول قياس ثابت (QSQ-Bench/Q-EVAL): إطار عمل يجعل المقارنة خاصية للأداة وليس للبرنامج، ويتميز بمجموعة نموذجية من عوامل الطفرات وتقارير هيكلية إلزامية (عرض الدائرة، الحجم، العمق).
ضمان إحصائي مُثبت: حد مُثبت عددياً لميزانية أخذ العينات المطلوبة لـ "أوراكل" إحصائي للتحكم في معدلات الإنذار الكاذب والخطأ، والمحكوم بمجموعة تحقق يجب اجتيازها قبل الإبلاغ عن النتائج التجريبية.
صلاحية بنائية مُقاسة: قياس مباشر لمدى قدرة الطفرات الاصطناعية على التنبؤ باكتشاف الأخطاء الحقيقية، تم تنفيذه على أزواج أخطاء حقيقية بدلاً من الافتراض.
دراسة تجريبية عبر الاستراتيجيات: مقارنة مباشرة بين أربع استراتيجيات لتوليد الاختبارات (العشوائية، تغطية المدخلات، التجميعي، والبحث القائم على البحث - SB) عبر 15 برنامجًا و726 طفرة، بما في ذلك أحجام التأثير واختبارات الدلالة.
التحقق خارج النطاق: عرض مُنفذ يوضح أن آليات البروتوكول ونتائجه النوعية تتكرر في نظام عشوائي كلاسيكي دون تعديل الكود.
حزمة التكرار: أثر (artifact) كامل يحتوي على المكتبة، ومجموعة التحقق، ومشغلات التجارب، وملفات النتائج الخام، مما يضمن إعادة توليد جميع الأشكال والجداول المبلغ عنها مباشرة من البيانات.
النتائج الرئيسية
ميزانية أخذ العينات: الحد النظري لميزج أخذ العينات يعمل في الواقع. لم يتجاوز الخطر المقاس الحد النظري أبدًا. ومع ذلك، تحت ضوضاء التنفيذ (نموذج التحلل - depolarizing model)، يتقارب إحصاء L1 نحو أرضية ضوضاء يفرضها الجهاز (0.028–0.051)، مما يستلزم أن تتجاوز عتبات الكشف هذه الأرضية لتجنب الإنذارات الكاذبة.
هيمنة الأوراكل: لا توجد عائلة واحدة من "الأوراكل" (المخرجات الخاطئة، احتمالية المخرجات، أو L1 الإحصائي) تهيمن على الشبكة الكاملة من البرامج والميزانيات. "أوراكل" L1 الإحصائي هو الوحيد الذي يمتلك ميزانية أخذ عينات قابلة للضبط ومثبتة، لكنه يعاني من معدلات أعلى من الإيجابيات الكاذبة عند الميزانيات المنخفضة مقارلة بـ "أوراكل" المخرجات الخاطئة.
توليد الاختبار: يتفوق الاختيار القائم على البحث (SB) بشكل كبير على الاستراتيجيات الأخرى فقط في ظل الميزانيات الضيقة (مثل تنفيذ اختبار واحد). مع زيادة الميزانية (6 اختبارات فأكثر)، تتقارب جميع الاستراتيجيات نحو معدلات كشف تقترب من السقف.
تحليل الطفرات: 12.3% من الطفرات المولدة كانت مكافئة (equivalent) بشكل مثبت. كانت طفرات اضطراب المعاملات (PP) هي الأصعب في القتل (معدل قتل 62%) مقارنة بالعوامل الأخرى (89–100%)، ويرجع ذلك أساسًا إلى أن انزياحات الزوايا الصغيرة غالبًا ما تنتج فجوات خطأ أقل من عتبة الكشف.
صلاحية الخطأ الحقيقي: من بين 52 زوجًا من الأخطاء الحقيقية، كان 21 زوجًا قابلًا للتنفيذ تحت طبقة التوافق. اكتشف البروتوكول 81% من هذه الأخطاء الحقيقية القابلة للتنفيذ. ومن المهم ملاحظة أن جميع الأخطاء الأربعة التي لم تُكتشف تنتمي إلى فئات غير مرئية بطبيعتها لأي "أوراكل" قائم على توزيع المخرجات (مثل أخطاء الطور العالمي، أو أخطاء التصور فقط، أو ترتيب الواجهة الذي لا يؤثر على توزيع المخرجات).
القابلية للتوسع: تتأثر تكاليف أخذ العينات بانتشار توزيع المخرجات، وليس فقط بحجم البرنامج. بالنسبة للتوزيعات المركزة (مثل حالات GHZ)، ظل عدد الطلبات اللازمة للوصول إلى العتبة ثابتًا (64–128 طلبًا) حتى مع زيادة عدد الكيوبتات، بينما نمت الحدود النظرية للأسوأ بشكل أسي.
التكرار الكلاسيكي: كررت عملية التحقق الكلاسيكية لخاصية feature-flag جميع النتائج الرئيسية: الحد كان صحيحًا، ولم يهيمن أي "أوراكل"، وكانت الطفرات المكافئة منتشرة (37.5%)، وكانت الأخطاء ذات الحجم الصغير هي الأصعب في القتل.
الأهمية والادعاءات
تدعي الورقة أن القابلية للمقارنة، والوعي بالتكلفة، والصلاحية البنائية يمكن تقديمها كخصائص لبروتوكول قياس ثابت. تكمن الأهمية في نقل المجال من تراكم الادعاءات غير القابلة للمقارنة إلى إنشاء أداة قابلة للتكرار.
يصنف المؤلفون ادعاءاتهم صراحةً حسب الحالة التدليلية:
مثبت (Proven): صيغة حد ميزانية أخذ العينات، وحقيقة أن مجموعة التحقق تجتاز الاختبار.
مقاس (Measured): معدلات الكشف المحددة، ومعدل كشف الخطأ الحقيقي بنسبة 81%، ومعدل الطفرات المكافئة بنسبة 12.3%، وقيم أرضية الضوضاء.
فرضية (Hypothesis): أن الثوابت الكمية (مثل معدلات الكشف المحددة) ستنتقل إلى مجموعات أكبر، أو أجهزة حقيقية، أو مجالات كلاسيكية أخرى مثل مكونات تعلم الآلة.
عمل مستقبلي (Further Work): دمج ملفات الأدوات (tool binaries) من المراحل العليا، والتوسع في مجموعات البرامج الأكبر، والتحقق على أجهزة كمومية حقيقية.
تخلص الورقة إلى أنه بينما ترتبط النتائج الكمية المحددة بمجموعة الـ 15 برنامجًا، فإن المنهجية — وهي تثبيت البروتوكول لتمكين المقارنة، والتحقق من ميزانية "الأوراكل"، وتدقيق الأخطاء الاصطناعية مقابل الأخطاء الحقيقية — هي المساهمة الأساسية القابلة للنقل. توضح الدراسة أن درجات الطفرات الاصطناعية قد تبالغ في تقدير قدرة اكتشاف الأخطاء الحقيقية بنسبة تقارب 20% في هذا المجال، وتحديدًا لأن الأخطاء الحقيقية يمكن أن توجد خارج توزيع المخرذات المرصود.