Evolution of Web Testing Tools

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2025
November 17 - 20, 2025
New York, US & Online
See JS stars in the US biggest planetarium
Learn More
In partnership with Focus Reactive
Upcoming event
JSNation US 2025
JSNation US 2025
November 17 - 20, 2025. New York, US & Online
Learn more
Bookmark
Slides
Rate this content

¿Cansado de seguir el ritmo de los últimos test runners de JavaScript? No estás solo. Vamos a hacer un viaje desde los días de Selenium (//div[@class='nightmare']) hasta la refrescante simplicidad de Vitest. A través de conversaciones con creadores de frameworks y desarrolladores curtidos en batalla, exploraremos por qué seguimos reinventando las herramientas de prueba, y por qué eso no siempre es algo malo. Aprenderás cuándo subirse a las nuevas tendencias de pruebas, cuándo quedarse con lo que funciona, y por qué a veces la mejor opción es simplemente hacer clic en tu aplicación como si fuera 1999. Perfecto para cualquiera que alguna vez se haya preguntado '¿Realmente necesitamos otro test runner?' (Spoiler: A veces sí lo necesitamos.)

This talk has been presented at JSNation US 2024, check out the latest edition of this JavaScript Conference.

Jessica Sachs
Jessica Sachs
22 min
21 Nov, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Mi objetivo con esta charla fue responder a la pregunta de por qué tenemos otro test runner. La charla desglosa la historia de las pruebas web en tres partes: la era del click-through, la primera guerra de navegadores y la segunda guerra de navegadores. Discute las motivaciones detrás de los test runners de navegador y los test runners de node, destacando Karma como el primer runner basado en node que ganó popularidad. El auge de los test runners basados en node como Ava, Tape, Mocha y Jest se atribuye a su estabilidad y facilidad de uso en comparación con Karma. Jest enfrentó desafíos con la carga de módulos y la transpilación, pero su abstracción no dogmática lo hizo una opción adecuada. El cambio hacia runners conscientes del entorno como VTest permite pruebas más seguras y se alinea con la necesidad de transpilación a través de diferentes entornos. Por último, la charla toca el futuro de las herramientas de prueba y las implicaciones de la IA en las pruebas.

1. The Last 20 Years of Web Testing

Short description:

Mi objetivo con esta charla era responder a la pregunta que me hacen todo el tiempo, Jessica, ¿por qué tenemos otro test runner? Esta charla desglosa la historia de la web en el contexto y la lente de las pruebas. Vamos a dividir la historia de la web en tres partes. La primera mitad, entre el principio y alrededor de 2007, sería la era del click-through, donde haces clic en cosas, te acercas al escritorio de tu compañero de trabajo y dices, oye, esta es la aplicación web, y ellos dicen, eso se ve genial. Y luego tenemos las dos eras de la guerra de navegadores uno, donde estamos tratando de luchar contra IE y Netscape.

Hola a todos. Espero que estén teniendo una gran conferencia hasta ahora. Mi nombre es Jessica Saxe y gracias por venir a mi charla, los últimos 20 años de pruebas web. Mi objetivo con esta charla era responder a la pregunta que me hacen todo el tiempo, Jessica, ¿por qué tenemos otro test runner? Usé un test runner hace 10 años. Hacía exactamente lo mismo que hacemos ahora. ¿Qué tiene de bueno esta nueva herramienta? ¿Qué estaba mal con lo anterior que usamos? Lo usé. Funcionó. Y la respuesta que tengo para la gente es que nuestras necesidades cambiaron. Y esta charla básicamente explica eso.

Como, ¿qué cambió particularmente, Jessica? Todavía estamos lanzando sitios web. La renderización del lado del servidor era algo en los 90 cuando la gente escribía aplicaciones web en C. No estoy bromeando. Es. Se llama CGI. La interfaz común de puerta de enlace. De todos modos. Entonces, esta charla desglosa la historia de la web en el contexto y lente de las pruebas. ¿Verdad? Entonces, cada error que normalmente tendrías en, como, una charla de historia web de, como, oye, al principio, ya sabes, usábamos C para escribir aplicaciones web. Está la pregunta paralela. Bien. Los escribiste en C. ¿Cómo te aseguraste de que funcionaran antes de enviarlos? Entonces, esta charla tiene una versión muy larga. Dura alrededor de una hora y media, aprendí, porque esta no es la primera vez que grabo esto. No vamos a hacer una hora y media. Vamos a pasar por esto en unos 18 minutos. Y para hacerlo, vamos a dividir la historia de la web en tres partes. ¿Verdad? Entonces, la primera mitad, entre el lo llamo el principio. El principio hasta alrededor de 2007 sería, como, la era del click-through, donde haces clic en cosas, te acercas al escritorio de tu compañero de trabajo y dices, oye, esta es la aplicación web, y ellos dicen, eso se ve genial. Y luego tenemos las dos eras de, como, la guerra de navegadores uno, donde estamos tratando de luchar contra IE y Netscape. Y hay muchas inconsistencias de plataforma en ese lado.

2. Browser Test Runners and Motivations

Short description:

Y luego tenemos la segunda guerra de navegadores. Esas tres eras del desarrollo web son realmente importantes e influyentes. En general, esas inconsistencias de los navegadores ya no nos afectan tanto debido a la consolidación en Chromium. Alrededor de 2007 a 2024, las cosas se ponen interesantes en cuanto a las motivaciones de los test runners de navegador y los test runners de node. La mayoría de la gente comenzó a escribir pruebas con Karma o Jasmine o Mocha. El nombre original de Karma era Testacular, el test runner con pelotas.

Y luego tenemos la segunda guerra de navegadores. Todos están como, oh, Firefox es genial. Comenzamos con Firefox es genial. {{^}}Y luego terminamos con Microsoft Edge es como, está bien, Chromium. Así que, esas tres eras del desarrollo web son realmente importantes e influyentes. Pero en cuanto a cómo afectan la calidad, podemos resumirlas en que la consistencia de los navegadores era difícil. Y ahora tenemos herramientas de extremo a extremo y laboratorios de automatización de navegadores, como laboratorios de dispositivos, como Sauce, que permiten iniciar navegadores en una VM en algún lugar y hacer clic en cosas. Pero en general, esas inconsistencias de los navegadores ya no nos afectan tanto debido a la consolidación en Chromium.

Así que, eso es, ya sabes, 20 años de historia de la web, como, un poco resumida. Pero ahora, alrededor de 2007 a 2024, las cosas se ponen interesantes en cuanto a las motivaciones de los test runners de navegador y los test runners de node. Así que, eso es en lo que nos vamos a centrar para el resto de esta charla. Así que, cuando me preparé para esta charla, entrevisté a tantas personas como humanamente pude. Publiqué en Twitter. Recibí cientos de respuestas. Envié mensajes, ya sabes, a los escritores y autores de algunos de estos marcos realmente antiguos. Había un test runner del que ni siquiera sabía llamado JS test driver. Fue escrito en Java por Google o en Google por alguien que era, ya sabes, inteligente y googly. Y eso terminó siendo el primer test runner registrado que pude encontrar donde alguien pudo hacer el flujo de trabajo de tener un IDE, iniciar un navegador, y al cambiar un archivo, escribir código y verlo ejecutarse nuevamente. Así que, ese flujo de trabajo de extremo a extremo de como tu código JavaScript se está ejecutando en un navegador después de presionar comando JS. Esa cosa. Eso fue posible alrededor de 2007. Abrió el camino, ideológicamente abrió el camino, para otra herramienta con la que la mayoría de la gente comenzó.

Así que, la mayoría de la gente comenzó a escribir pruebas con Karma o Jasmine o Mocha. Y esas cosas comenzaron alrededor de 2011. Y Karma también fue escrito en Google. Tenía un nombre diferente. Esta es una charla de historia. Así que, voy a hablar sobre algunas de las cosas nerds. El nombre original de Karma era Testacular, el test runner con pelotas. Ese era el nombre oficial.

3. The Rise and Impact of Karma

Short description:

Y pensé en eliminar esto de la charla tantas veces. Todavía le rinden homenaje en la página de inicio de Karma. Karma fue la primera experiencia que la gente tuvo donde un runner basado en node realizaría generalmente el mismo flujo de trabajo que JSTestDriver. Pero era diferente debido a los requisitos de infraestructura. Eso es Karma. Ese es el comienzo de las pruebas y la cultura de pruebas de JavaScript. Se popularizó porque el equipo de Angular adoptó Karma y dijo, hey, todos, esto es prueba unitaria de JavaScript. Así es como puedes escribir pruebas en JavaScript. El costo y la sobrecarga de obtener realmente la aprobación final, esa casilla final para decir, sí, funciona, la mayor parte de ese costo estaba en el proceso de prueba manual. Pero una vez que llegó Karma, el costo de sobrecarga de configurarlo y probarlo y hacer integración continua no era tan malo. Así que, la gente comenzó a hacerlo. Así que, Karma vivió por mucho tiempo.

Y pensé en eliminar esto de la charla tantas veces. Pero lo encuentro tan divertido. Todavía le rinden homenaje en la página de inicio de Karma. Cada vez que ves Karma, el test runner Espectacular, es una especie de broma de vuelta a el nombre, que Google había cambiado después de que la comunidad, a saber, Ryan Florence, dijera, hey, por cierto, ¿crees que tal vez podríamos elegir algo menos juvenil? Porque estoy tratando de que la gente tome en serio las pruebas unitarias y ya estoy teniendo dificultades con eso sin todas sus bromas.

Así que, Karma fue la primera experiencia que la gente tuvo donde un runner basado en node realizaría generalmente el mismo flujo de trabajo que JSTestDriver. Pero era diferente debido a los requisitos de infraestructura, ¿verdad? Ya no necesitas Java en tu máquina de integración continua. Tienes un runner basado en node. Así que, acabas de reducir la complejidad del runner de CI, como, mucho. No necesitas la JVM. Eso es grande. ¿Verdad? Eso es como un gigabyte. Ahora puedes hacer todo lo que necesitas dentro de tu ejecutable de node. Genial. Así que, eso es Karma. Ese es el comienzo de las pruebas y la cultura de pruebas de JavaScript. Y se popularizó porque el equipo de Angular, ya sabes, adoptó Karma y dijo, hey, todos, esto es prueba unitaria de JavaScript. Así es como puedes escribir pruebas en JavaScript. Y eso fue algo enorme.

Fue la primera vez que la gente, los desarrolladores web, pensaron, está bien, tal vez valga la pena escribir pruebas. Porque antes de eso, habían estado en este infierno de matriz de regresión de pruebas manuales tratando de encontrar las versiones correctas de navegadores para probar en qué sistemas operativos y qué peculiaridades de CSS trabajar. No estaban pensando en pruebas unitarias funcionales. Eso simplemente no era algo que la gente hiciera. Porque el costo y la sobrecarga de obtener realmente la aprobación final, esa casilla final para decir, sí, funciona, la mayor parte de ese costo estaba en el proceso de prueba manual. Así que, escribir pruebas unitarias no era útil para Velocity. ¿Verdad? Así que, si fueras a proponer, hey, me gustaría escribir pruebas unitarias antes de 2011 a tu jefe, ¿verdad? Porque es técnicamente posible. Si fueras a hacer esa propuesta antes de 2011, ellos dirían, ¿por qué? ¿Por qué querrías escribir pruebas automatizadas para una característica que vas a tener que probar manualmente en cada navegador? No había un entorno estandarizado que hiciera que las pruebas unitarias realmente mejoraran tu Velocity o realmente la estabilidad de manera significativa.

4. The Impact and Success of Karma

Short description:

Pero una vez que Karma llegó, el costo de sobrecarga de configurarlo y probarlo y hacer integración continua no era tan malo. No fue un gran impacto en la Velocidad o productividad. Así que, la gente comenzó a hacerlo. Así que, Karma vivió por mucho tiempo.

Pero una vez que Karma llegó, el costo de sobrecarga de configurarlo y probarlo y hacer integración continua no era tan malo. No fue un gran impacto en la Velocidad o productividad. Así que, la gente comenzó a hacerlo. Así que, Karma vivió por mucho tiempo.

Fue el principal test runner hasta Jest. Pero Jest, aunque fue escrito en 2011, era de código cerrado cuando Facebook lo escribió por primera vez. Y fue de código abierto en 2014. Y solo eclipsó a Karma en 2016. Así que, tomó un tiempo para que Jest superara a Karma.

Y entre esos dos runners, y luego, ya sabes, Mocha y Jasmine, todos comenzaron por ahí. ¿Verdad? Así que, los runners basados en node, como Jest, están en su propia era. Y yo marco eso como la creación de JSDOM, que ocurrió aproximadamente, ¿qué fue?

5. The Rise of Node-based Test Runners

Short description:

Y JSDOM es como una biblioteca de emulación para que cuando estés en Node, la palabra window no, ya sabes, lance un error cuando la escribas en la consola. Asigna diferentes cosas que esperaríamos que funcionaran en un navegador. Como, no sé, crear un evento o crear un nodo DOM. Esas cosas ahora son posibles si cargas JSDOM en el ámbito del módulo superior. Entonces, una vez que esa biblioteca de emulación, como, se hizo posible de usar, muchos desarrolladores diferentes comenzaron a escribir test runners. ¿Verdad? Tuvimos Ava, Tape, Mocha y Jest de Facebook. Estos fueron geniales en comparación con Karma. Para que Karma funcionara en CI, necesitabas un navegador. Karma era genial si solo lo ejecutabas localmente. Pero al ejecutarlo en CI, estabas ejecutándolo en PhantomJS, un navegador sin cabeza escrito en C++ que tenía problemas de estabilidad. Jest y otros runners basados en node proporcionaron más estabilidad y facilidad de uso al trabajar en un entorno basado en node. Este cambio ha llevado a Jest a superar a Karma debido a los problemas de estabilidad de PhantomJS.

Y JSDOM es como una biblioteca de emulación para que cuando estés en Node, la palabra window no, ya sabes, lance un error cuando la escribas en la consola. Asigna diferentes cosas que esperaríamos que funcionaran en un navegador. Como, no sé, crear un evento o crear un nodo DOM. Esas cosas ahora son posibles si cargas JSDOM en el ámbito del módulo superior.

Entonces, una vez que esa biblioteca de emulación, como, se hizo posible de usar, muchos desarrolladores diferentes comenzaron a escribir test runners. ¿Verdad? Entonces, tuvimos Ava, tuvimos Tape, tuvimos Mocha, y luego, tuvimos Jest de Facebook. Y estos fueron geniales en comparación con Karma. Por el simple hecho de que para que Karma funcionara en CI, necesitabas un navegador. ¿Verdad? Karma era genial si solo lo ejecutabas localmente. Era encantador. Abrías tu navegador, Karma abría tu navegador por ti, y veías las pruebas ejecutarse y decías, esto es genial, puedo depurarlas en el navegador, el mismo entorno en el que tu aplicación va a ejecutarse, puedes depurar tus pruebas. Y eso era súper impresionante. Excepto cuando ibas a ejecutar en CI, no estabas ejecutando en tu navegador en CI, estabas ejecutando en esta cosa llamada Phantom JS.

Y Phantom JS era un navegador sin cabeza escrito en C++. Así que le gustaba fallar todo el tiempo. Era muy quisquilloso en arquitecturas. Y era difícil de depurar localmente cuando había fallos. Tendrías diferencias entre la caja de Linux en la que lo ejecutabas y tu caja OSX o Windows en la que estabas tratando de depurar el problema. Había mucho cambio en el entorno y lo hacía muy difícil de usar. También era más lento. Tendría problemas de reconexión. Era simplemente más lento que la alternativa, que era un test runner basado en node en un DOM emulado basado en node. La estabilidad en Jest y otros runners basados en node superaba con creces el beneficio de trabajar en tu propio entorno de navegador. Y eso es sinceramente una pena. Es una pena que creo que todavía estamos tratando de resolver. Y es por eso que la tercera era de TestRunner, el TestRunner consciente del entorno, espero que resuelva los problemas de emulación basados en node. Así que, hasta ahora, tenemos Karma. Karma es superado por Jest principalmente debido a problemas de estabilidad de PhantomJS.

6. Challenges Faced by Jest

Short description:

Pero principalmente debido a la inestabilidad de PhantomJS, Jest se apoderó del mercado. Sin embargo, Jest luchó con la carga de módulos, las transformaciones y el soporte ESM durante años. También enfrentó dificultades para transpilar archivos que no eran ReactJSX o JSX. Jest requería que los desarrolladores reimplementaran sus compiladores específicamente para el test runner. Aunque Jest podría haber reutilizado herramientas existentes como Webpack, fue creado en una época donde había muchas opciones diferentes para cargar y transformar código. A pesar de estos desafíos, la abstracción no opinada de Jest fue una elección adecuada en ese momento.

Pero principalmente debido a la inestabilidad de PhantomJS, Jest se apoderó del mercado. Y Jest fue genial hasta que tuvimos problemas con la carga de módulos y las transformaciones. Y esto fue lo que realmente provocó la siguiente generación de TestRunners que estás viendo en el mercado ahora mismo.

Entonces, ESM, ya sabes, los TLDRs, ESM es por qué la declaración de importación funciona o no en tu base de código o por qué el await de nivel superior funciona o no en tu base de código. Entonces, Jest luchó con obtener soporte ESM durante años. ¿Como, más de cuatro años? Todavía no sé si realmente tiene soporte de módulos. Dejé de buscar. Y esto es como la industria a la que presto atención. Y dejé de buscar.

Entonces, Jest luchó con el soporte ESM y luchó muy, muy fuertemente con la transpilación de archivos que no eran ReactJSX o archivos JSX. Como desarrollador de Vue, siempre luchamos con transformar componentes de archivo único de una manera que fuera similar a producción para el compilador de Vue. Tendríamos que reimplementar el compilador SFC de Vue específicamente para Jest. Y hay otros frameworks como Svelte o Solid u otros frameworks de front end que no se comportan como React o tienen diferentes extensiones de archivo que necesitan diferentes transformaciones. Y Jest requería que reimplementaras tu compilador solo para tu test runner. Solo para ese test runner.

Sabes, si hubiera reutilizado Webpack, genial. Si hubiera reutilizado cualquier cosa que fuera fácil. Fácil de conectar. Eso habría sido genial. Pero cuando Jest fue escrito, Jest fue escrito en una época donde había empaquetadores. Browserify. Grunt. Babel. Webpack. Parcel. Había muchas maneras diferentes en que la gente intentaba cargar código y transformar código. Y entonces, cuando Jest fue creado, creo que simplemente eligieron una opción que no era opinada. Dijeron, elijamos una abstracción. Elijamos una abstracción y sigamos con eso. Y esa fue una gran elección para el momento.

7. The Shift Towards Environment Aware Runners

Short description:

Ahora, a medida que añadimos más lógica de negocio y complejidad a nuestros empaquetadores, es más seguro que las pruebas reutilicen esa configuración. Los runners conscientes del entorno como V test brillan al reutilizar la configuración de compilación para las pruebas. Al soportar diferentes entornos de ejecución, los compiladores y las herramientas de construcción proporcionan un entorno similar al de producción y eliminan falsos positivos o negativos. Jest y otros runners basados en node promueven la desviación, mientras que los runners conscientes del entorno como VTest proporcionan una forma más segura de probar y construir aplicaciones. Este cambio se alinea con el hecho de que JavaScript se ejecuta en todas partes y requiere transpilación para varios entornos.

una abstracción y sigamos con eso. Y esa fue una gran elección para el momento. Pero ahora, a medida que realmente estamos añadiendo más y más lógica de negocio y complejidad a nuestros empaquetadores, es más seguro que nuestras pruebas reutilicen esa configuración. Y es aquí cuando los runners conscientes del entorno con V test siendo el niño corona aquí. Con V test siendo el mejor ejemplo, es cuando los runners conscientes del entorno realmente brillan. Es la idea de, oye, ¿y si reutilizamos nuestra configuración de construcción, pero también para nuestras pruebas?

¿No tendría mucho sentido? Y los compiladores y las herramientas de construcción que hacen esto tienen la ventaja de poder soportar muchos entornos de ejecución diferentes también. Entonces, si puedes decir, oye, voy a eventualmente ejecutar esta función en una función edge de Vercel o un entorno de trabajador de Cloudflare, puedes hacer que tu entorno node o tu VM sea tan restringido o tan abierto como desees. Y eso te da el entorno similar al de producción que necesitas. Y supera todos los problemáticos falsos positivos o falsos negativos que podrías obtener si estuvieras en un entorno que estaba un poco desviado. No es exactamente lo que vas a enviar. Si no recuerdas, ya sabes, deshabilitar ciertos métodos de node porque vas a enviar código de navegador a un usuario. Si no recuerdas restringir tu entorno, tu entorno de prueba, podrías accidentalmente enviar código roto.

A menos que lo revisaras manualmente. No puedes confiar en tu entorno de prueba si no está muy cerca de ser como producción. Y Jest y otros runners basados en node que no se conectan a tu sistema de construcción o tu sistema de módulos tienden a promover esa desviación. Y así, a medida que más y más runners de prueba como VTest o como BUNZ test o node test, a medida que más y más de estos runners de prueba conscientes del entorno surgen, creo que promueven una forma más segura de probar y construir tus aplicaciones. Y así, ahora, nos estamos alejando de Jest y otros como separados no tengo una buena palabra para ello. Agnósticos. Son bien intencionados y agnósticos a los entornos que eran de la época. Pero creo que el cambio que estamos haciendo ahora con los runners conscientes del entorno, realmente nos está encontrando donde estamos en cuanto a el hecho de que JavaScript literalmente se ejecuta en todas partes y vamos a transpilar nuestro JavaScript para cualquier número de entornos. Y la persona que mejor sabe o el proceso que mejor sabe sobre eso va a ser la cosa que está compilando.

8. The Future of Test Tooling and AI

Short description:

Para la arquitectura y el diseño del test runner. Mi parte sobre los test runners conscientes del entorno y los test runners basados en node. Un ejercicio mental sobre probar las cosas que envías y las implicaciones de la IA en las herramientas de prueba.

Y para que esa cosa tenga tanta información como sea posible sobre cómo estructurar un entorno de prueba, creo que esa es la jugada inteligente. Para la arquitectura y el diseño del test runner.

Así que, esa es mi parte. Esa es mi parte sobre los test runners conscientes del entorno y los test runners basados en node. Y en los tiempos anteriores, era, ya sabes, no hablábamos ni siquiera de los test runners de librerías que nadie usaba excepto los chicos de Yahoo UI.

Porque un tiempo comencé la charla diciendo que nadie realmente probaba antes de 2011. Eso es cierto para los desarrolladores de aplicaciones. Pero hay una historia de nicho muy extraña de personas de 2011 y antes que eran como las personas que escribieron jQuery, ¿qué hicieron? Y escribieron pruebas unitarias y eran como las únicas personas que escribían pruebas unitarias de JavaScript. Pero era posible. Era 100% posible. Pero lo he omitido. Lo he omitido por brevedad. Está en las diapositivas.

9. The Implications of AI on Test Tooling

Short description:

Si te apetece investigarlo, puedes revisar mi presentación de diapositivas. La premisa de esta charla es la pista paralela de probar las cosas que envías o probarlas antes de enviarlas. El futuro de las herramientas de prueba y las implicaciones de la IA.

Si te apetece investigarlo, puedes revisar mi presentación de diapositivas. Tiene mucho más contenido del que puedo incluir en una charla. Pero voy a dejarte con un poco de un ejercicio mental. Así que, hay algo que me gusta hacer de vez en cuando. La premisa de esta charla, ¿verdad?, era si tomas una línea de tiempo, si tomas una línea de tiempo de la historia del desarrollo web y la historia de probar las cosas que se estaban desarrollando, debería haber una pista paralela, ¿verdad?

, de cómo pruebas las cosas que envías? O ¿cómo pruebas antes de enviarlas? Así que, cada avance tecnológico tiene una pregunta paralela de cuáles son las implicaciones para probarlo.

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.
Pruebas de ciclo completo con Cypress
TestJS Summit 2022TestJS Summit 2022
27 min
Pruebas de ciclo completo con Cypress
Top Content
Cypress is a powerful tool for end-to-end testing and API testing. It provides instant feedback on test errors and allows tests to be run inside the browser. Cypress enables testing at both the application and network layers, making it easier to reach different edge cases. With features like AppActions and component testing, Cypress allows for comprehensive testing of individual components and the entire application. Join the workshops to learn more about full circle testing with Cypress.
Desarrollo Efectivo de Pruebas
TestJS Summit 2021TestJS Summit 2021
31 min
Desarrollo Efectivo de Pruebas
Top Content
This Talk introduces Test Effective Development, a new approach to testing that aims to make companies more cost-effective. The speaker shares their personal journey of improving code quality and reducing bugs through smarter testing strategies. They discuss the importance of finding a balance between testing confidence and efficiency and introduce the concepts of isolated and integrated testing. The speaker also suggests different testing strategies based on the size of the application and emphasizes the need to choose cost-effective testing approaches based on the specific project requirements.
Playwright Test Runner
TestJS Summit 2021TestJS Summit 2021
25 min
Playwright Test Runner
Top Content
The Playwright Test Runner is a cross-browser web testing framework that allows you to write tests using just a few lines of code. It supports features like parallel test execution, device emulation, and different reporters for customized output. Code-Gen is a new feature that generates code to interact with web pages. Playwright Tracing provides a powerful tool for debugging and analyzing test actions, with the ability to explore trace files using TraceViewer. Overall, Playwright Test offers installation, test authoring, debugging, and post-mortem debugging capabilities.
Todos pueden escribir pruebas fácilmente
TestJS Summit 2023TestJS Summit 2023
21 min
Todos pueden escribir pruebas fácilmente
Playwright is a reliable end-to-end testing tool for modern web apps that provides one API, full isolation, fast execution, and supports multiple languages. It offers features like auto-weighting, retrying assertions, seamless testing of iframes and shadow DOM, test isolation, parallelism, and scalability. Playwright provides tools like VS Code extension, UiMode, and Trace Viewer for writing, debugging, and running tests. Effective tests prioritize user-facing attributes, use playwright locators and assertions, and avoid testing third-party dependencies. Playwright simplifies testing by generating tests, providing code generation and UI mode, and allows for easy running and debugging of tests. It helps in fixing failed tests and analyzing DOM changes, fixing locator mismatches, and scaling tests. Playwright is open source, free, and continuously growing.

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
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
Workshop
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
Testing Web Applications Using Cypress
TestJS Summit - January, 2021TestJS Summit - January, 2021
173 min
Testing Web Applications Using Cypress
Top Content
Workshop
Gleb Bahmutov
Gleb Bahmutov
Esta masterclass te enseñará los conceptos básicos para escribir pruebas end-to-end útiles utilizando Cypress Test Runner.
Cubriremos la escritura de pruebas, cubriendo cada característica de la aplicación, estructurando pruebas, interceptando solicitudes de red y configurando los datos del backend.
Cualquiera que conozca el lenguaje de programación JavaScript y tenga NPM instalado podrá seguir adelante.
Mejores Prácticas para Escribir y Depurar Pruebas de Cypress
TestJS Summit 2023TestJS Summit 2023
148 min
Mejores Prácticas para Escribir y Depurar Pruebas de Cypress
Top Content
Workshop
Filip Hric
Filip Hric
Probablemente conozcas la historia. Has creado un par de pruebas y, como estás utilizando Cypress, lo has hecho bastante rápido. Parece que nada te detiene, pero luego - prueba fallida. No fue la aplicación, no fue un error, la prueba fue... ¿inestable? Bueno sí. El diseño de la prueba es importante sin importar la herramienta que utilices, incluyendo Cypress. La buena noticia es que Cypress tiene un par de herramientas bajo su cinturón que pueden ayudarte. Únete a mí en mi masterclass, donde te guiaré lejos del valle de los anti-patrones hacia los campos de pruebas estables y siempre verdes. Hablaremos sobre los errores comunes al escribir tu prueba, así como depurar y revelar problemas subyacentes. Todo con el objetivo de evitar la inestabilidad y diseñar pruebas estables.