Episodio 10: de Sven Zheng en Bellevue, Washington (enero de 2020)
Episodios anteriores
La estrategia de pruebas de Chrome se basa en gran medida en pruebas de corrección funcional automatizadas y pruebas manuales, pero ninguna de ellas detecta regresiones menores de la IU de forma confiable. Usa pruebas de píxeles para automatizar las pruebas de la IU del navegador para computadoras de escritorio.
Cuando escribas una prueba de píxeles, evita la inestabilidad haciendo lo siguiente: (1) inhabilita la animación, (2) usa datos simulados y (3) prueba la menor área de superficie posible.
Esta es una imagen de ejemplo que se usa para verificar la exactitud de los píxeles de la barra omni:
Y el código para verificar que el navegador coincida con esta imagen:
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);
}
Este código se encuentra en chrome/test/pixel/demo/skia_gold_demo_pixeltest.cc.
Los encabezados relevantes son skia_gold_pixel_diff.h
para pruebas de unidades y browser_skia_gold_pixel_diff.h
para pruebas de navegadores.
La diferencia de píxeles y el proceso de aprobación se basan en Skia Gold. Las pruebas de píxeles de oro de Skia proporcionan un flujo de trabajo de aprobación visual y permiten a los desarrolladores aceptar pequeños desprendimientos aprobando varias imágenes de oro.
Actualmente, el paquete de pruebas se ejecuta en el bot FYI de Windows. Se admiten pruebas de navegadores y pruebas de unidades de Views.