Evolution of Web Testing Tools

Rate this content
Bookmark

¿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.

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
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.
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
WorkshopFree
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.