Entonces, en la prueba del sistema, todavía tenemos algo de legado de Cypress después de su cambio de hacer todo e introducir pruebas de componentes y ser un poco poco confiable, así que lo cambiamos a Playwright. Y tenemos Appium, donde hay algo muy interesante que estamos haciendo aquí. Estamos escribiendo pruebas para Playwright, conectándolo a Appium y evaluándolos tanto en la web como en el nativo, en el lado de Android, en el lado de Vega, TV como núcleo. Y de extremo a extremo, como una prueba de extremo a extremo real contra el dispositivo objetivo. Y hay muy pocas tecnologías que realmente proporcionan esta capacidad.
Así que estamos utilizando pruebas de barrido con cajas de caramelos que realmente toman como un D-pad de TV y emulan clics reales en los dispositivos reales. Y ves, ya he categorizado este test en las capas. Y este es otro enfoque donde las pruebas en múltiples capas pueden ayudarte a entender qué tecnologías elegir. Y esta pirámide que te estoy sugiriendo es muy representativa. Así que recomendaría construir capa por capa si no tienes todas ellas. Y no te apresures a, por ejemplo, escribir pruebas de extremo a extremo o pruebas unitarias si no cubres como tu base, tu capa de prueba del sistema, porque la capa de prueba estática. Porque las pruebas estáticas son súper baratas, cubren mucho, son rápidas.
Así que reconocer las capas de prueba. Eso en sí mismo, las pruebas automatizadas son buenas, las herramientas son geniales. Pero ejecutarlas eficientemente es todo un desafío. Así que necesitas responder muchas preguntas como, ¿ejecuto las pruebas localmente versus CI? ¿Ejecuto todo o parte de ello? Cuando una prueba falla, ¿qué haces? ¿Fallas toda la ejecución? Y así sucesivamente. ¿Qué variación de aplicación usar? ¿Pruebo solo un tipo de aplicación en una plataforma o en todas las plataformas y así sucesivamente? Así que lo que necesitas es básicamente definir tu estrategia primero antes de siquiera ejecutarla. Este es un ejemplo de nuestra documentación que responde a todas estas preguntas y es una guía para nuestros ingenieros, nuestros DevOps, todos los que participan en el aseguramiento de calidad, cómo implementarlo, cómo vivirlo, cómo desarrollarlo. Puedes llevarlo a algo más concreto donde puedas establecer algún esquema de cómo las cosas están orquestadas. Y este es un ejemplo para pull request, el objetivo en nuestro desarrollo principal, y todo el asunto. No entraré en detalles, me llevaría una eternidad. Así que realmente necesitas una estrategia de ejecución para utilizar las pruebas eficientemente. Pero aún no es suficiente. Realmente necesitas asegurarte de que tus pruebas sean rápidas y confiables. Y aquí hay algo más concreto para acelerar las prácticas y cómo las hicimos bastante receptivas. Básicamente las hicimos rápidas al almacenar en caché lo que pudimos y ejecutando lo que importaba. ¿Qué significa esto? Comencemos con el almacenamiento en caché. Así que todos conocen esta famosa cita sobre las dos cosas más difíciles en programación, como nombrar cosas y almacenar en caché. Si logras lidiar con el caché, ese es el objetivo. Así que un ejemplo muy simple de ASLint.
Comments