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.

This talk has been presented at React Advanced 2022, check out the latest edition of this React Conference.

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
Cecilia Martinez, a technical account manager at Cypress, discusses network requests in Cypress and demonstrates commands like cydot request and SCI.INTERCEPT. She also explains dynamic matching and aliasing, network stubbing, and the pros and cons of using real server responses versus stubbing. The talk covers logging request responses, testing front-end and backend API, handling list length and DOM traversal, lazy loading, and provides resources for beginners to learn Cypress.
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
Today's Talk discusses the importance of managing technical debt through refactoring practices, prioritization, and planning. Successful refactoring requires establishing guidelines, maintaining an inventory, and implementing a process. Celebrating success and ensuring resilience are key to building a strong refactoring culture. Visibility, support, and transparent communication are crucial for addressing technical debt effectively. The team's responsibilities, operating style, and availability should be transparent to product managers.
Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Debugging JavaScript is a crucial skill that is often overlooked in the industry. It is important to understand the problem, reproduce the issue, and identify the root cause. Having a variety of debugging tools and techniques, such as console methods and graphical debuggers, is beneficial. Replay is a time-traveling debugger for JavaScript that allows users to record and inspect bugs. It works with Redux, plain React, and even minified code with the help of source maps.
Construyendo un Asistente AI Activado por Voz con Javascript
JSNation 2023JSNation 2023
21 min
Construyendo un Asistente AI Activado por Voz con Javascript
Top Content
This Talk discusses building a voice-activated AI assistant using web APIs and JavaScript. It covers using the Web Speech API for speech recognition and the speech synthesis API for text to speech. The speaker demonstrates how to communicate with the Open AI API and handle the response. The Talk also explores enabling speech recognition and addressing the user. The speaker concludes by mentioning the possibility of creating a product out of the project and using Tauri for native desktop-like experiences.
Pruebas de Aplicaciones Web con Playwright
TestJS Summit 2022TestJS Summit 2022
20 min
Pruebas de Aplicaciones Web con Playwright
Top Content
Testing web applications with Playwright, a reliable end-to-end testing tool. Playwright offers fast execution, powerful tooling, and support for multiple languages. It provides precise selectors, web-first assertions, and code generation for easy testing. Playwright also offers features like live debugging, tracing, and running tests on CI. The future of Playwright aims to make testing easy and fun, with a focus on creating frustration-free web experiences.

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.
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Node Congress 2024Node Congress 2024
152 min
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Featured Workshop
Emanuel Scirlet
Miguel Henriques
2 authors
Ven y aprende cómo puedes potenciar tus aplicaciones modernas y seguras utilizando GraphQL y Javascript. En este masterclass construiremos una API de GraphQL y demostraremos los beneficios del lenguaje de consulta para APIs y los casos de uso para los que es adecuado. Se requiere conocimiento básico de Javascript.
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.
Monitoreo 101 para Desarrolladores de React
React Summit US 2023React Summit US 2023
107 min
Monitoreo 101 para Desarrolladores de React
Top Content
WorkshopFree
Lazar Nikolov
Sarah Guthals
2 authors
Si encontrar errores en tu proyecto frontend es como buscar una aguja en un pajar de código, entonces el monitoreo de errores de Sentry puede ser tu detector de metales. Aprende los conceptos básicos del monitoreo de errores con Sentry. Ya sea que estés ejecutando un proyecto de React, Angular, Vue, o simplemente JavaScript “vainilla”, mira cómo Sentry puede ayudarte a encontrar el quién, qué, cuándo y dónde detrás de los errores en tu proyecto frontend.
Nivel de la masterclass: Intermedio