Cómo pruebo un millón de estados de UI con cada combinación: Pruebas visuales con Storybook

Rate this content
Bookmark

Estado de error, estado de carga, punto de interrupción incómodo, datos incorrectos, formato deficiente, soporte del navegador. Cada componente puede representar cientos o miles de estados visuales discretos. ¿Cómo lo pruebas? Desactiva manualmente la red, temporalmente. Inserta código incorrecto, solo por un minuto. Toca la pantalla en el borde. Manipula las fijaciones de la base de datos local. El desarrollo frontend tiene tantas dimensiones. El tiempo y la variación resultan en un número infinito de posibilidades de UI. En esta charla, utilizaremos Storybook para desarrollar, probar y documentar progresivamente nuestro trabajo, automatizando el trabajo pesado del desarrollo de UI.

FAQ

Michael Chan habló sobre la importancia de las pruebas de integración y visual en el desarrollo de interfaces de usuario, utilizando herramientas como Storybook y Chromatic.

El 'testing trophy' es un concepto que describe cómo se deben distribuir los diferentes tipos de pruebas en el desarrollo de software, enfatizando una mayor proporción en las pruebas de integración.

Michael señala que, a menudo, las pruebas visuales no están suficientemente integradas en los flujos de trabajo de desarrollo, lo que puede llevar a inconsistencias y errores en las interfaces de usuario.

Storybook permite documentar componentes, ejecutar pruebas y simular estados y propiedades de forma aislada, facilitando un entorno robusto para probar y validar componentes de UI de manera efectiva.

Chromatic ayuda en la automatización de pruebas de regresión visual, permitiendo a los desarrolladores detectar cambios no deseados en la UI y asegurando la consistencia visual a través de diferentes navegadores y dispositivos.

Michael sugiere parametrizar las pruebas y utilizar herramientas que permitan capturar y gestionar múltiples estados y variantes de la UI sin necesidad de escribir pruebas para cada posible estado individualmente.

Michael enfatiza la importancia de incluir pruebas de accesibilidad para asegurar que las interfaces de usuario sean utilizables por personas con diferentes capacidades visuales, destacando que a menudo se dedica menos atención a estos aspectos en comparación con otros elementos de prueba.

Michael Chan
Michael Chan
29 min
21 Oct, 2022

Comments

Sign in or register to post your comment.

Video Summary and Transcription

La charla aborda la necesidad de herramientas más robustas para pruebas visuales en el desarrollo de UI. Explora los desafíos en la construcción de interfaces de usuario, incluyendo vistas múltiples, variantes y puntos de interrupción. Se enfatiza la importancia de la extracción de componentes y las interacciones. La charla también cubre la derivación de historias a partir de componentes e interacciones, pruebas de UI con el ejecutor de pruebas y pruebas de regresión visual con Chromatic. Se discute la automatización de pruebas utilizando GitHub Actions y los errores comunes al usar Storybook. La charla concluye con una sesión de preguntas y respuestas.

1. Introducción a las pruebas visuales en el desarrollo de UI

Short description:

Mi objetivo hoy es convencerte de que solo las capturas de pantalla no son suficientes para lo que estamos haciendo hoy y que necesitamos herramientas más robustas para probar nuestra interfaz de usuario. Hablaremos sobre las pruebas visuales utilizando Storybook con Chromatic, que son herramientas basadas en componentes. La idea es extraer el máximo valor posible de un componente.

¿Qué tal, todos? ¿Cómo están hoy? Bien. Está bien. Está bien. Necesito más café. Hombre, mi vuelo hasta aquí, estoy trabajando con solo un par de horas de sueño, así que pido disculpas si las cosas están un poco difíciles hoy. Pero estoy súper emocionado de estar aquí, súper emocionado de pasar tiempo contigo. Estoy un poco preocupado por el tiempo porque, como en 20 minutos, quiero decir, puedo hablar sobre las diferencias sutiles entre los lápices número dos durante 20 minutos. Así que no sé cuánto de esto podremos cubrir a fondo, pero estoy emocionado de cubrir tanto como sea posible.

Ahora, mi objetivo hoy es convencerte de que solo las capturas de pantalla no son suficientes para lo que estamos haciendo hoy y que necesitamos herramientas más robustas para probar nuestra interfaz de usuario. Así que vamos a hablar de eso. Mi nombre es Chan, Michael Chan, Chantastic, como te sientas cómodo. Así es como puedes encontrarme en línea. A principios de este año, di una charla llamada Domando el Multiverso de la UI, que fue un poco más como una versión emotiva de esta charla. Vamos a tomar un pequeño fragmento de eso y luego pasar a un poco más de código. Pero, si quieres más cosas que hablen sobre la sensación del desarrollo de la interfaz de usuario, lo difícil que es y algunos de los desafíos que sentimos pero de los que no hablamos mucho veces, esta será una buena charla de seguimiento para ti.

Así que pasemos directamente a lo que estamos hablando hoy, ¿quién aquí está familiarizado con el testing trophy en React? Ok, solo unos pocos. Ok, ok, las manos están empezando a subir lentamente. Así que creo que probablemente la mitad de ustedes. La idea detrás del testing trophy es más o menos una forma de cuántas pruebas deberíamos escribir en cualquier aspecto, y la más grande de ellas es en esa porción de integración del pastel. Esta es más o menos una distribución de los tipos de herramientas que usamos para los diferentes tipos de testing. Pero se supone que la integración es la parte más grande de eso. Ahora propongo que hay esta gran parte de pruebas de integración que en realidad no hemos integrado en nuestros flujos de trabajo de desarrollo, que es la testing visual. Así que de eso vamos a hablar hoy. Y las herramientas que he estado usando para esto son Storybook con Chromatic. Esas son las herramientas de las que vamos a hablar. Ahora, ambas herramientas derivan de esta mentalidad de ser basadas en componentes. Entonces, ¿cuál es la idea de basada en componentes? ¿Cómo funciona con la testing visual? Bueno, la idea detrás de esto se reduce a cuánto valor podemos extraer de un componente. Tenemos este fragmento de interfaz de usuario realmente genial y aislado. ¿Cómo podemos, supongo que para tomar una metáfora violenta, cuántos pájaros podemos matar con la piedra de un componente? Lo siento, si amas a los pájaros. Yo amo a los pájaros. De hecho, tuve un podcast por un tiempo donde solo revisábamos canciones de pájaros.

2. Desafíos en la construcción de interfaces de usuario

Short description:

Los componentes te permiten inyectar un estado y avanzar rápidamente. El multiverso de la UI es un desafío multidimensional en la construcción de interfaces de usuario. Cada interfaz de usuario tiene múltiples vistas, incluyendo estados de error, carga y éxito. Hay diferentes variantes y puntos de quiebre a considerar. Los motores de navegadores, la usabilidad y las capacidades de los dispositivos añaden complejidad. La complejidad creciente incluye autorización, props, estado y localización. Una buena documentación es esencial.

Un poco diferente a un podcast de React. Una de las cosas que no hemos explorado mucho es cómo integrar componentes con los navegadores en aislamiento. Hasta este punto, las pruebas visuales a menudo implican llevar toda la pila de nuestra aplicación al navegador y probarla. Y eso puede ser realmente difícil de probar, asegurarse de que los entornos sean correctos, asegurarse de que todas las personas sean correctas. Los componentes te permiten simplemente inyectar un estado y avanzar rápidamente.

Así que quiero describir un poco el problema, y lo llamo el multiverso de la UI. Y es una descripción del desafío multidimensional que tenemos cuando construimos interfaces de usuario. Y sí, como todos nosotros, estaba viendo mucho Marvel en el momento en que estaba pensando en esto. También lo llamo las 10-ish dimensiones de la UI web, o 35,000 estados perfectos. Entonces, cada interfaz de usuario comienza con la cosa que todos creen que están construyendo, la visión muy clara de lo que vamos a hacer. Pero todos sabemos como desarrolladores web modernos que cualquier vista potencialmente tiene tres vistas, un estado de error , un estado de carga y luego el estado de carga exitoso. Y luego va aún más lejos, porque tenemos diferentes variantes de esas Podríamos tener un spinner, podríamos tener un esqueleto, los errores podrían ser un 404, que es claramente diferente de un 500. Y luego para nuestras vistas exitosas, como se multiplican como conejos, ¿verdad? Porque tal vez tengamos 6 puntos de quiebre o algo así en los que realmente pensamos y nos importan. Pero podríamos estar soportando cualquier número de puntos de quiebre en realidad. Esto se complica un poco más multiplicado por la cantidad de motores de navegadores que tienes que soportar. Desafortunadamente, estos mejoran año tras año, pero todavía hay diferencias sutiles. Ahora, argumentaría que las diferencias sutiles no son necesariamente importantes para tener en cuenta siempre y cuando tengas una experiencia consistente dentro de esos motores de navegadores. Y luego tenemos la usabilidad, ¿verdad? ¿Estás usando, como, el tacto, estás usando la vista, estás usando tus oídos? En Estados Unidos, los CDC sugieren que al menos el 4.6% de los estadounidenses tienen ceguera o baja visión. Ahora, es realmente interesante porque he pasado una gran cantidad de tiempo testing y rehaciendo vistas en Internet Explorer para salvar nuestra aplicación para, como, el 1.5, 2% de los usuarios, pero dedicamos tan poco tiempo al 4.6% más de usuarios que no pueden usar nuestros sitios con sus ojos. Y también tenemos, como, las capacidades de los dispositivos. No voy a hablar mucho de eso, pero es parte de la dimensionalidad del desarrollo de UI. Y luego estas vistas se multiplican por toda la complejidad en nuestras aplicaciones. Podría ser solo, como, autorización, eso es una métrica, pero luego tienes, como, todos sabemos lo rápido que los props y el estado y la autorización de una aplicación realmente pueden, como, hincharse desproporcionadamente. Y si tienes el privilegio de tener una aplicación tan popular que necesitas localizarla en diferentes ubicaciones, bueno, ahora tienes al menos dos versiones de las que tienes que preocuparte. Así que solo toma todas esas vistas y multiplícalas por dos. Y si alguna vez has tenido que hacer esto, te darás cuenta de lo mal que tus aplicaciones probablemente se adaptan para hacer ese cambio, porque cada vez que usas un margen derecho para cualquier cosa, como, todo eso es algo que tienes que arreglar ahora. Y luego la documentación. La documentación siempre es un gran problema. Creamos estas bibliotecas de componentes y esperamos que las personas las usen diligentemente, pero necesitamos hacer el trabajo para crear una buena documentación.

QnA

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Solicitudes de Red con Cypress
TestJS Summit 2021TestJS Summit 2021
33 min
Solicitudes de Red con Cypress
Top Content
Ya sea que estés probando tu UI o API, Cypress te proporciona todas las herramientas necesarias para trabajar y gestionar solicitudes de red. Esta tarea de nivel intermedio demuestra cómo usar los comandos cy.request y cy.intercept para ejecutar, espiar y simular solicitudes de red mientras pruebas tu aplicación en el navegador. Aprende cómo funcionan los comandos, así como los casos de uso para cada uno, incluyendo las mejores prácticas para probar y simular tus solicitudes de red.
Testing Pyramid Makes Little Sense, What We Can Use Instead
TestJS Summit 2021TestJS Summit 2021
38 min
Testing Pyramid Makes Little Sense, What We Can Use Instead
Top Content
Featured Video
Gleb Bahmutov
Roman Sandler
2 authors
The testing pyramid - the canonical shape of tests that defined what types of tests we need to write to make sure the app works - is ... obsolete. In this presentation, Roman Sandler and Gleb Bahmutov argue what the testing shape works better for today's web applications.
Un Marco para Gestionar la Deuda Técnica
TechLead Conference 2023TechLead Conference 2023
35 min
Un Marco para Gestionar la Deuda Técnica
Top Content
Seamos realistas: la deuda técnica es inevitable y reescribir tu código cada 6 meses no es una opción. La refactorización es un tema complejo que no tiene una solución única para todos. Las aplicaciones de frontend son particularmente sensibles debido a los frecuentes cambios de requisitos y flujos de usuario. Nuevas abstracciones, patrones actualizados y limpieza de esas viejas funciones - todo suena genial en papel, pero a menudo falla en la práctica: los todos se acumulan, los tickets terminan pudriéndose en el backlog y el código legado aparece en cada rincón de tu base de código. Por lo tanto, un proceso de refactorización continua es la única arma que tienes contra la deuda técnica.En los últimos tres años, he estado explorando diferentes estrategias y procesos para refactorizar el código. En esta charla describiré los componentes clave de un marco para abordar la refactorización y compartiré algunos de los aprendizajes acumulados en el camino. Espero que esto te ayude en tu búsqueda de mejorar la calidad del código de tus bases de código.

Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Como desarrolladores, pasamos gran parte de nuestro tiempo depurando aplicaciones, a menudo código que ni siquiera escribimos. Lamentablemente, a pocos desarrolladores se les ha enseñado cómo abordar la depuración, es algo que la mayoría de nosotros aprendemos a través de la experiencia dolorosa. La buena noticia es que _puedes_ aprender a depurar de manera efectiva, y hay varias técnicas y herramientas clave que puedes usar para depurar aplicaciones de JS y React.
Pruebas de Aplicaciones Web con Playwright
TestJS Summit 2022TestJS Summit 2022
20 min
Pruebas de Aplicaciones Web con Playwright
Top Content
Las pruebas son difíciles, las pruebas requieren tiempo para aprender y escribir, y el tiempo es dinero. Como desarrolladores queremos probar. Sabemos que deberíamos pero no tenemos tiempo. Entonces, ¿cómo podemos conseguir que más desarrolladores hagan pruebas? Podemos crear mejores herramientas.Permíteme presentarte a Playwright - Pruebas confiables de extremo a extremo en diferentes navegadores para aplicaciones web modernas, por Microsoft y completamente de código abierto. El codegen de Playwright genera pruebas para ti en JavaScript, TypeScript, Dot Net, Java o Python. Ahora realmente no tienes excusas. Es hora de jugar tus pruebas correctamente.
Pruebas de ciclo completo con Cypress
TestJS Summit 2022TestJS Summit 2022
27 min
Pruebas de ciclo completo con Cypress
Top Content
Cypress ha tomado al mundo por sorpresa al traer una herramienta fácil de usar para pruebas de extremo a extremo. Sus capacidades han demostrado ser útiles para crear pruebas estables para aplicaciones de frontend. Pero las pruebas de extremo a extremo son solo una pequeña parte de los esfuerzos de prueba. ¿Qué pasa con tu API? ¿Qué pasa con tus componentes? Bueno, en mi charla me gustaría mostrarte cómo podemos comenzar con pruebas de extremo a extremo, profundizar con pruebas de componentes y luego subir a probar nuestra API, circ

Workshops on related topic

Diseñando Pruebas Efectivas con la Biblioteca de Pruebas de React
React Summit 2023React Summit 2023
151 min
Diseñando Pruebas Efectivas con la Biblioteca de Pruebas de React
Top Content
Featured Workshop
Josh Justice
Josh Justice
La Biblioteca de Pruebas de React es un gran marco para las pruebas de componentes de React porque responde muchas preguntas por ti, por lo que no necesitas preocuparte por esas preguntas. Pero eso no significa que las pruebas sean fáciles. Todavía hay muchas preguntas que tienes que resolver por ti mismo: ¿Cuántas pruebas de componentes debes escribir vs pruebas de extremo a extremo o pruebas de unidad de nivel inferior? ¿Cómo puedes probar una cierta línea de código que es difícil de probar? ¿Y qué se supone que debes hacer con esa persistente advertencia de act()?
En esta masterclass de tres horas, presentaremos la Biblioteca de Pruebas de React junto con un modelo mental de cómo pensar en el diseño de tus pruebas de componentes. Este modelo mental te ayudará a ver cómo probar cada bit de lógica, si debes o no simular dependencias, y ayudará a mejorar el diseño de tus componentes. Te irás con las herramientas, técnicas y principios que necesitas para implementar pruebas de componentes de bajo costo y alto valor.
Tabla de contenidos- Los diferentes tipos de pruebas de aplicaciones de React, y dónde encajan las pruebas de componentes- Un modelo mental para pensar en las entradas y salidas de los componentes que pruebas- Opciones para seleccionar elementos DOM para verificar e interactuar con ellos- El valor de los mocks y por qué no deben evitarse- Los desafíos con la asincronía en las pruebas de RTL y cómo manejarlos
Requisitos previos- Familiaridad con la construcción de aplicaciones con React- Experiencia básica escribiendo pruebas automatizadas con Jest u otro marco de pruebas unitarias- No necesitas ninguna experiencia con la Biblioteca de Pruebas de React- Configuración de la máquina: Node LTS, Yarn
Cómo empezar con Cypress
TestJS Summit 2022TestJS Summit 2022
146 min
Cómo empezar con Cypress
Featured WorkshopFree
Filip Hric
Filip Hric
La web ha evolucionado. Finalmente, también lo ha hecho el testing. Cypress es una herramienta de testing moderna que responde a las necesidades de testing de las aplicaciones web modernas. Ha ganado mucha popularidad en los últimos años, obteniendo reconocimiento a nivel mundial. Si has estado esperando aprender Cypress, ¡no esperes más! Filip Hric te guiará a través de los primeros pasos sobre cómo empezar a usar Cypress y configurar tu propio proyecto. La buena noticia es que aprender Cypress es increíblemente fácil. Escribirás tu primer test en poco tiempo y luego descubrirás cómo escribir un test de extremo a extremo completo para una aplicación web moderna. Aprenderás conceptos fundamentales como la capacidad de reintentar. Descubre cómo trabajar e interactuar con tu aplicación y aprende cómo combinar pruebas de API y de UI. A lo largo de todo este masterclass, escribiremos código y realizaremos ejercicios prácticos. Saldrás con una experiencia práctica que podrás aplicar a tu propio proyecto.
Detox 101: Cómo escribir pruebas de extremo a extremo estables para su aplicación React Native
React Summit 2022React Summit 2022
117 min
Detox 101: Cómo escribir pruebas de extremo a extremo estables para su aplicación React Native
Top Content
WorkshopFree
Yevheniia Hlovatska
Yevheniia Hlovatska
A diferencia de las pruebas unitarias, las pruebas de extremo a extremo buscan interactuar con su aplicación tal como lo haría un usuario real. Y como todos sabemos, puede ser bastante desafiante. Especialmente cuando hablamos de aplicaciones móviles.
Las pruebas dependen de muchas condiciones y se consideran lentas e inestables. Por otro lado, las pruebas de extremo a extremo pueden dar la mayor confianza de que su aplicación está funcionando. Y si se hace correctamente, puede convertirse en una herramienta increíble para aumentar la velocidad del desarrollador.
Detox es un marco de pruebas de extremo a extremo en caja gris para aplicaciones móviles. Desarrollado por Wix para resolver el problema de la lentitud e inestabilidad y utilizado por React Native en sí como su herramienta de pruebas E2E.
Únete a mí en esta masterclass para aprender cómo hacer que tus pruebas de extremo a extremo móviles con Detox sean excelentes.
Prerrequisitos- iOS/Android: MacOS Catalina o más reciente- Solo Android: Linux- Instalar antes de la masterclass
Masterclass de Pruebas de API con Postman
TestJS Summit 2023TestJS Summit 2023
48 min
Masterclass de Pruebas de API con Postman
Top Content
WorkshopFree
Pooja Mistry
Pooja Mistry
En el panorama siempre en evolución del desarrollo de software, garantizar la fiabilidad y funcionalidad de las API se ha vuelto primordial. "Pruebas de API con Postman" es una masterclass completa diseñada para equipar a los participantes con los conocimientos y habilidades necesarios para sobresalir en las pruebas de API utilizando Postman, una herramienta poderosa ampliamente adoptada por profesionales en el campo. Esta masterclass profundiza en los fundamentos de las pruebas de API, avanza a técnicas de prueba avanzadas y explora la automatización, las pruebas de rendimiento y el soporte multiprotocolo, proporcionando a los asistentes una comprensión holística de las pruebas de API con Postman.
Únete a nosotros para esta masterclass para desbloquear todo el potencial de Postman para las pruebas de API, agilizar tus procesos de prueba y mejorar la calidad y fiabilidad de tu software. Ya seas un principiante o un probador experimentado, esta masterclass te equipará con las habilidades necesarias para sobresalir en las pruebas de API con Postman.
Construyendo una Aplicación de Shopify con React & Node
React Summit Remote Edition 2021React Summit Remote Edition 2021
87 min
Construyendo una Aplicación de Shopify con React & Node
Top Content
WorkshopFree
Jennifer Gray
Hanna Chen
2 authors
Los comerciantes de Shopify tienen un conjunto diverso de necesidades, y los desarrolladores tienen una oportunidad única para satisfacer esas necesidades construyendo aplicaciones. Construir una aplicación puede ser un trabajo duro, pero Shopify ha creado un conjunto de herramientas y recursos para ayudarte a construir una experiencia de aplicación sin problemas lo más rápido posible. Obtén experiencia práctica construyendo una aplicación integrada de Shopify utilizando el CLI de la aplicación Shopify, Polaris y Shopify App Bridge.Te mostraremos cómo crear una aplicación que acceda a la información de una tienda de desarrollo y pueda ejecutarse en tu entorno local.
Pruebas de Aplicaciones Web utilizando Cypress
TestJS Summit - January, 2021TestJS Summit - January, 2021
173 min
Pruebas de Aplicaciones Web utilizando Cypress
WorkshopFree
Gleb Bahmutov
Gleb Bahmutov
Este masterclass te enseñará los conceptos básicos de cómo escribir pruebas de extremo a extremo utilizando Cypress Test Runner.
Cubriremos la escritura de pruebas, abarcando todas las características de la aplicación, estructurando las pruebas, interceptando solicitudes de red y configurando los datos del backend.
Cualquier persona que conozca el lenguaje de programación JavaScript y tenga NPM instalado podrá seguir el masterclass.