يتشارك BackstopJS وDelta-QA سمة نادرة في السوق: كلاهما مجاني، بلا حدود، ويعمل محليًا. بدون سحابة، بدون اشتراك، بدون عداد لقطات. لكن هذا تقريبًا القاسم المشترك الوحيد بينهما.
BackstopJS أداة مفتوحة المصدر للمطورين. Delta-QA تطبيق سطح مكتب للفريق بأكمله. الفرق يتلخّص في سؤال واحد: من سيُنشئ الاختبارات ويصيانتها؟
نهج BackstopJS
يعمل BackstopJS بملف تهيئة JSON حيث تُعلن الصفحات المراد اختبارها وأحجام النوافذ (viewports) والمناطق الاختيارية المراد إخفاؤها. ثم يلتقط Puppeteer (Chrome) الصفحات ويقارن لقطات الشاشة بأسس مرجعية مخزّنة محليًا.
من المعتاد أن نتوقع منك هنا عرض ملف JSON. لكن لنكن صريحين: في عام 2026، تطلب من الذكاء الاصطناعي "أنشئ لي ملف backstop.json لموقعي" وينتهي الأمر في 5 ثوان. ما لا يتغير هو أنك تحتاج إلى فهم البنية، وصيانتها عند تغيير الصفحات، وتصحيح الأخطاء عند فشل الاختبارات.
تُولّد الأداة تقريرًا بصريًا بصيغة HTML مع مقارنات جنبًا إلى جنب — واضح ومقروء. لكن سير العمل بأكمله يتم عبر الطرفية: backstop test، backstop approve، backstop reference.
نهج Delta-QA
لا يتطلب Delta-QA أي تهيئة. لا JSON، لا طرفية، لا واجهة سطر أوامر. تفتح التطبيق، تُدخل الرابط، تتصفح الموقع. تسجّل الأداة الإجراءات وتلتقط الصفحات. للمقارنة، تُعيد تشغيل السيناريو.
التقرير بنفس البصرية التي يتمتع بها BackstopJS — مقارنة جنبًا إلى جنب مع إبراز الاختلافات. لكن إنشاء الاختبار يستغرق دقيقتين بدلاً من 20.
Chrome فقط مقابل متعدد المتصفحات
يعمل BackstopJS حصريًا مع Puppeteer، أي Chrome (Chromium). إذا كنت تريد اختبار Firefox أو Safari، تحتاج إلى أداة أخرى.
يدعم Delta-QA Chrome وFirefox وWebKit (Safari). موقعك يُعرض بشكل مختلف عبر المتصفحات — هذه حقيقة يعالجها اختبار التوافق عبر المتصفحات. مع BackstopJS، لن تعرف بذلك.
الصيانة
مع BackstopJS، كل تغيير ولو طفيف في الرابط أو معرّف الصفحة أو حجم النافذة أو منطقة الإخفاء (mask) يتطلب تعديل يدوي لملف التهيئة JSON. في موقع من 50 صفحة، يصبح ملف JSON طويلًا وهشًا ومعرّضًا للأخطاء عند كل تعديل.
مع Delta-QA، تعديل سيناريو يعني ببساطة إعادة تسجيله من جديد. بضع نقرات فقط، بدون أي تعديل يدوي للملفات أو خطر الأخطاء المطبعية في ملف JSON.
التكلفة الحقيقية لـ"المجاني"
كلتا الأداتين مجانيتان. لكن التكلفة ليست في الرخصة — بل في الوقت.
BackstopJS مجاني بالرخصة لكنه يكلف وقت المطور: الإعداد الأولي، كتابة التهيئة، صيانة ملف JSON، تصحيح أخطاء الإيجابيات الكاذبة، إدارة خطوط الأساس. هذا وقت مطوّر لا يُنتج ميزات.
Delta-QA مجاني بالرخصة والوقت. مختبر الجودة يُنشئ الاختبارات في دقائق دون تدخل مطور.
الإيجابيات الكاذبة
يُجري BackstopJS مقارنة بكسل خام. تباينات الـ antialiasing، اختلافات عرض الخطوط بين التشغيلات، التحولات الدقيقة على مستوى الـ sub-pixel — كلها تُولّد إيجابيات كاذبة تتطلب فرزًا يدويًا.
يستخدم Delta-QA مقارنة هيكلية CSS لا تعتمد على العرض الرسومي. صفر إيجابيات كاذبة عبر 429 حالة اختبار مُحقّقة.
لمن هذا الحل؟
BackstopJS هو الخيار المناسب إذا كنت مطورًا، وإذا كنت تحب سطر الأوامر، وإذا كان Chrome وحده كافيًا، وإذا كان لديك وقت لصيانة التهيئة.
Delta-QA هو الخيار المناسب إذا أراد فريق ضمان الجودة الاستقلالية، وإذا كنت تحتاج إلى دعم متعدد المتصفحات، وإذا كنت تريد نتائج دون المرور بالطرفية، أو إذا كنت تبحث عن أسهل اختبار بصري للإعداد.
الأسئلة الشائعة
هل لا يزال BackstopJS يُصان؟
BackstopJS مشروع مفتوح المصدر مجتمعي. أقل نشاطًا في الصيانة من الحلول التجارية. يمكن أن تبقى المشاكل وطلبات السحب (PRs) مفتوحة لفترة طويلة.
أيهما أسرع في التثبيت؟
Delta-QA: حمّل وافتح (30 ثانية). BackstopJS: npm install backstopjs، إنشاء ملف التهيئة، توليد خطوط الأساس (15-30 دقيقة كحد أدنى).
هل يمكن الترحيل من BackstopJS إلى Delta-QA؟
نعم. لا بيانات للترحيل — تُعاد خطوط الأساس بتسجيل السيناريوهات في Delta-QA. يستغرق الترحيل بضع ساعات لإعادة إنشاء الاختبارات الرئيسية.
هل يدعم BackstopJS مسارات المستخدم (user journeys)؟
جزئيًا. يمكن لـ BackstopJS تشغيل نصوص Puppeteer قبل الالتقاط (نقر، تعبئة نماذج)، لكن يجب كتابتها بلغة JavaScript. Delta-QA يسجّل المسارات بالتصفح — بدون كود.
BackstopJS وDelta-QA كلاهما مجاني ومحلي. الفرق يتلخّص في جملة واحدة: BackstopJS يتطلب مطورًا لتهيئة الاختبارات وصيانتها. Delta-QA يتيح لأي شخص في الفريق إنشاءها بنقرات قليلة.
للمزيد من القراءة
- Delta-QA مقابل BackstopJS: بدون كود هيكلي أم مفتوح المصدر بكسل ببكسل؟
- Delta-QA مقابل Applitools: ذكاء اصطناعي بصري أم نهج هيكلي بدون كود؟