ตอนที่ 10: โดย Sven Zheng ใน Bellevue, WA (มกราคม 2020)
ตอนก่อนหน้า
กลยุทธ์การทดสอบของ Chrome อาศัยการทดสอบความถูกต้องของฟังก์ชันการทำงานอัตโนมัติและการทดสอบด้วยตนเองเป็นอย่างมาก แต่ทั้ง 2 อย่างนี้ไม่สามารถตรวจหาการถดถอยของ UI เล็กน้อยได้อย่างน่าเชื่อถือ ใช้การทดสอบพิกเซลเพื่อทดสอบ UI ของเบราว์เซอร์บนเดสก์ท็อปโดยอัตโนมัติ
เมื่อเขียนการทดสอบพิกเซล ให้หลีกเลี่ยงความผิดพลาดโดย (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 การทดสอบพิกเซลระดับ Gold ของ Skia มีเวิร์กโฟลว์การอนุมัติภาพ และช่วยให้นักพัฒนาแอปยอมรับข้อบกพร่องเล็กๆ น้อยๆ ได้โดยอนุมัติภาพระดับ Gold หลายภาพ
ขณะนี้ชุดทดสอบทํางานอยู่บนบ็อต FYI ของ Windows ระบบรองรับการทดสอบเบราว์เซอร์และการทดสอบหน่วยของ Views