شرح · ثلاثة

كيف نختبر، بالتفصيل

ننشر مقارنات مع برمجيات أشخاص آخرين، فوجب أن تكون الطريقة قابلة للتدقيق. وهذه هي كاملة: الأجهزة، والمحتوى، والإعدادات التي يحصل عليها كل برنامج، والقواعد التي تقرر إن كان التشغيل يُحتسب نتيجةً أم يُطرح جانبًا.

منصة الاختبار

الجهاز نفسه، والخط نفسه، والمحتوى نفسه

كل برنامج في مقارنة ما يعمل على جهاز واحد، تجاه المزودين أنفسهم، على المحتوى نفسه، ضمن الجولة نفسها. ولا يُنقل شيء من يوم سابق.

القاعدة التي تحسم كل شيء

يُحكم على البرنامج بالملف، لا برسالة حالته هو

هذا أهم ما في هذه الصفحة على الإطلاق. تنتهي كل جولة بالبحث عن أكبر ملف أنتجه البرنامج، في أي موضع من مخرجاته، وحساب بصمته مقابل نسخة معروفة الصحة. الحجم وMD5، في كل جولة، لا على عيّنة.

نفعل ذلك لأن إبلاغ البرنامج عن نجاحه ليس دليلًا موثوقًا. قِسنا برنامجًا يبلّغ done عن مهمة كان مجلد مخرجاتها فارغًا. وقِسنا آخر يبلّغ Completed وقد سلّم مجلدات أرشيف خامًا لم يفك ضغطها قط. وأداة إصلاح واسعة الانتشار تخرج برمز فشل بعد إصلاح ناجح. لم يكن أيٌّ من تلك البرامج كاذبًا؛ فسلاسل الحالة تعني ببساطة أشياء مختلفة لمؤلفين مختلفين، والقياس الذي يثق بها يقيس المفردات لا السلوك.

لذا فخط النهاية واحد للجميع: المحتوى موجود، بالحجم الصحيح، وبالبصمة الصحيحة. وإن توقف برنامج قبل ذلك فلا يحصل على زمن، ويُؤشَّر على العمود كله بدل حذفه بصمت. والبرنامج البطيء الذي ينهي أفضل حالًا من السريع الذي لا ينهي، وعلى الجدول أن يقول ذلك.

ويترتب على ذلك أن عدم الإنهاء نتيجة، لا خطأ من جانبنا. وحين ننشر واحدة نصف الحالة النهائية بعبارات واضحة، بما في ذلك كل ما يوحي بأنها خاصة بتلك المهمة لا عامة، ونقول ماذا فعل البرنامج بدل أن ينهي.

الترتيب والتكرار

لماذا تتناوب الجولات، ولماذا لا تُنشر التشغيلات المفردة

تتفاوت إنتاجية المزودين من دقيقة إلى أخرى، وأحيانًا بمقدار الضعف أو ثلاثة أضعاف. وأي قياسين يؤخذان في وقتين مختلفين يقيسان الطقس جزئيًا.

لذا تعمل البرامج تباعًا ومتداخلة، وينعكس الترتيب بين التكرارات، حتى لا يكون برنامج بعينه هو الداخل أولًا دائمًا على خط دافئ أو بارد. والنتيجة هي النمط عبر التكرارات، لا أفضل تشغيلة. وحين يتسع التباين ننشر المدى بدل متوسط يخفيه، وإن لم نعرف سبب تشتت أرقام برنامج قلنا ذلك بدل اختلاق سبب.

نتجنب المقارنات بين جولات مختلفة حيثما أمكن. وإن اقتضى ادعاءٌ رقمين، فضّلنا إعادة سباقهما معًا في جولة واحدة على طرح رقم يوم من رقم يوم آخر، لأن حالة المنصة وظروف المزودين وإصدارات البرامج كلها تنجرف. وحين نقارن بين إصدارين من عندنا، يعمل كلاهما في الجولة نفسها، بالتناوب، على المحتوى نفسه.

الفحوص غير البرّاقة

ما الذي يعمل قبل كل جولة وأثناءها

معظمها موجود لأن عطلًا صامتًا أنتج مرةً رقمًا سليم المظهر وقابلًا للنشر وخاطئًا. وكلٌّ منها يعمل الآن تلقائيًا ويوقف الجولة بدل أن يحذر.

وحيث يحتاج برنامج إلى إعدادات بعينها ليؤدي جيدًا، يحصل عليها، والجولة تذكر أيّها. أمثلة: تفعيل تسلسل الطلبات حيث يأتي البرنامج به معطلًا، وتعطيل فحص التكرار حين تُنزَّل المهمة نفسها مرارًا، وأخذ مساعدات فك الضغط من حزمة البرنامج نفسه لا من نسخة النظام. والغاية أن يُقاس كل برنامج في أفضل حالاته لا عند إعداداته الافتراضية، إذ إن الإعدادات الافتراضية نقاش منفصل عن القدرة.

ما لن نفعله

حدود هذه الأرقام