اختبار Canvas يطلب من المتصفح رسم عناصر محددة ثم يقرأ البكسلات أو بيانات الصورة ويحوّلها غالبًا إلى Hash للمقارنة. لأن الرسم يمر عبر الخطوط ومحرك النص والتنعيم وطبقة الرسوميات ونظام التشغيل، يمكن لفروق صغيرة أن تغير النتيجة. لكن Hash مختلفة لا تعني تلقائيًا جهازًا مختلفًا، كما أن Hash متطابقة لا تعني أن كل البصمة متطابقة.
كيف تتكون النتيجة؟
الاختبار يرسم نصًا وأشكالًا وربما gradients بأبعاد وألوان ثابتة. بعدها تُقرأ الصورة الناتجة. اختلاف rasterization للخطوط أو rounding أو compositing يمكن أن يغير عددًا قليلًا من البكسلات، فينتج Hash جديدة بالكامل.
اختبر الصورة لا ال ـHash فقط
لو الأداة تسمح، احتفظ بصورة أو بيانات تفصيلية بدل القيمة النهائية فقط. عند التغير، قارن أين حدث الفرق. هذا يساعدك على معرفة هل السبب خطًا مفقودًا أم تغييرًا في بيئة الرسم بدل اعتبار كل اختلاف حدثًا مجهولًا.
خطوات عملية
- سجل Hash وبيانات الاختبار.
- أعد القياس عدة مرات.
- احفظ نتيجة بعد Restart.
- غيّر إعدادًا واحدًا.
- قارن موضع الفروق إن كانت الأداة تدعم ذلك.
الثبات أهم من الندرة
Profile تعطي Hash مختلفة كل مرة قد تبدو «فريدة» لكنها غير مستقرة. إذا كان نظامك يستخدم noise، حدد هل هي ثابتة لل Profile أم تتغير لكل request. الاختيار يجب أن يكون مقصودًا ومختبرًا.
قائمة مراجعة
- النتيجة ثابتة حسب السياسة.
- التغير بعد update مفهوم.
- الخطوط متسقة مع النظام.
- Canvas لا تناقض WebGL بشكل واضح.
- لا تعتمد على score واحد للحكم.
ما الذي لا يثبته Canvas test؟
لا يثبت أن Cookies معزولة، ولا أن Proxy صحيحة، ولا أن WebRTC آمنة. كذلك لا يثبت أن موقعًا معينًا يستخدم Canvas بنفس طريقة أداة الفحص. هو اختبار لإشارة واحدة داخل مجموعة.
استخدمه في QA للتحديثات
قبل تحديث Chromium أو Electron، سجل baseline لعدد من Profiles. بعد التحديث أعد الاختبار. إذا تغير الجميع بالطريقة نفسها فغالبًا السبب تحديث البيئة؛ وإذا تغير subset فقط فابحث عن إعداد خاص بها.
قارن أكثر من سيناريو رسم
اختبار Canvas واحد قد يعتمد على نص وخط معين. ل QA أعمق، استخدم أكثر من مشهد: نصوص بخطوط مختلفة، أشكال، gradients، وعمليات compositing. إذا كانت كل النتائج تتغير بالطريقة نفسها بعد تحديث، يكون لديك دليل أقوى على تغير طبقة الرسم. أما تغير اختبار واحد فقط فقد يشير إلى font أو code path محدد بدل تبدل البيئة الرسومية كلها.
انتبه لتأثير الخطوط
اختبارات Canvas التي ترسم نصوصًا تتأثر بتوفر الخطوط وطريقة fallback. لذلك سجل font set الأساسي للبيئة، خصوصًا عند الانتقال بين Windows و Linux أو جهاز محلي و VPS. تغير خط واحد قد يبدل النتيجة بينما بقية طبقة الرسم سليمة، وهو تفسير مختلف تمامًا عن تغير GPU أو driver.
اختبر أكثر من مرة قبل إصدار الحكم
نفذ نفس Canvas test عدة مرات داخل نفس Profile. إذا اختلفت النتيجة بلا أي تغيير معروف، فهذه إشارة أهم من اختلافها عن جهاز آخر؛ لأنها تعني أن الاستقرار نفسه يحتاج مراجعة.
شارك في تقييم ونقاش المقال
رأيك يضيف قيمة للمقال ويساعدنا على تحسين المحتوى والنقاش حوله.
النقاش
جارٍ تحميل التعليقات…