The Chromium Chronicle #10: اكتشاف انحدارات واجهة المستخدم باستخدام اختبارات Pixel

الحلقة 10: من إعداد "سيفنغ زينغ" في بلفيو، واشنطن (كانون الثاني/يناير 2020)
الحلقات السابقة

تعتمد استراتيجية اختبار Chrome بشكل كبير على اختبارات صحة الوظائف المبرمَجة والاختبار اليدوي، ولكن لا يرصد أي منهما بشكل موثوق تراجُعًا بسيطًا في واجهة المستخدم. استخدِم اختبارات الوحدات البكسيلية لتشغيل اختبار واجهة مستخدِم متصفّح الكمبيوتر المكتبي تلقائيًا.

عند كتابة اختبار بكسل، تجنَّب عدم الثبات من خلال: (1) إيقاف الصور المتحركة، (2) استخدام بيانات وهمية، و (3) اختبار الحد الأدنى من مساحة العرض الممكنة.

في ما يلي نموذج صورة تم استخدامها للتحقّق من صحة وحدات البكسل في مربّع البحث الشامل:

صورة مربّع البحث المتعدّد المستخدَمة لمقارنة وحدات البكسل

يجب أن يتطابق الرمز المخصّص لإثبات ملكية المتصفّح مع هذه الصورة:

IN_PROC_BROWSER_TEST_F(SkiaGoldDemoPixelTest, TestOmnibox) {
  // Always disable animation for stability.
  ui::ScopedAnimationDurationScaleMode disable_animation(
      ui::ScopedAnimationDurationScaleMode::ZERO_DURATION);
  GURL url("chrome://bookmarks");
  AddTabAtIndex(0, url, ui::PageTransition::PAGE_TRANSITION_FIRST);
  auto* const browser_view = BrowserView::GetBrowserViewForBrowser(browser());
  // CompareScreenshot() takes a screenshot and compares it with the
  // golden image, which was previously human-approved, is stored
  // server-side, and is managed by Skia Gold. If any pixels differ, the
  // test will fail and output a link for the author to triage the
  // new image.
  bool ret = GetPixelDiff().CompareScreenshot("omnibox",
      browser_view->GetLocationBarView());
  EXPECT_TRUE(ret);
}

يمكن العثور على هذا الرمز في chrome/test/pixel/demo/skia_gold_demo_pixeltest.cc. العناوين ذات الصلة هي skia_gold_pixel_diff.h لاختبارات الوحدات و browser_skia_gold_pixel_diff.h لاختبارات المتصفّح.

تستند عملية الموافقة ومقارنة وحدات البكسل إلى Skia Gold. توفّر اختبارات حبيبات ‎Skia Gold سير عمل للموافقة المرئية، وتسمح للمطوّرين بقبول الحبيبات الصغيرة من خلال الموافقة على صور ذهبية متعددة.

يتم حاليًا تشغيل حزمة الاختبار على برنامج Windows FYI bot. تتوفّر اختبارات المتصفّح واختبارات وحدات "الاطِّلاعات".