Monitoreo Sintético y Pruebas e2e: Dos Caras de la Misma Moneda

Rate this content
Bookmark

A pesar de la emergencia de DevOp para unir desarrollo, soporte y facciones SRE utilizando procesos comunes, todavía enfrentamos desafíos culturales y de herramientas que crean los silos de Dev y Ops. Específicamente, a menudo usamos diferentes herramientas para lograr pruebas similares: un caso en punto es validar la experiencia del usuario en producción utilizando Monitoreo Sintético y en desarrollo utilizando pruebas e2e. Al unir fuerzas en torno a herramientas comunes, podemos usar la misma herramienta tanto para el monitoreo de producción como para las pruebas dentro de CI. En esta charla, discutiré cómo el Monitoreo Sintético y las Pruebas e2e son dos caras de la misma moneda. Además, mostraré cómo se puede lograr el monitoreo de producción y las pruebas de desarrollo utilizando Playwright, GitHub Actions y Elastic Synthetics.

This talk has been presented at TestJS Summit 2023, check out the latest edition of this JavaScript Conference.

FAQ

Carly Richmond es una desarrolladora senior en Elastic y tiene una amplia experiencia como ingeniera de software, incluyendo responsabilidades en gestión de producción y resolución de problemas de usuarios en sistemas regulatorios.

Carly Richmond habló sobre las pruebas de extremo a extremo y el monitoreo sintético, destacando cómo estos elementos pueden considerarse dos caras de la misma moneda y demostrando cómo pueden integrarse con GitHub Actions y Elastic Synthetics.

El desplazamiento a la izquierda es una práctica en desarrollo de software que implica detectar defectos más temprano en el ciclo de desarrollo, con el objetivo de mejorar la calidad y reducir los tiempos de respuesta en la solución de problemas.

Según Carly Richmond, tanto las pruebas de extremo a extremo como el monitoreo sintético automatizan la perspectiva del usuario y a menudo utilizan scripts similares, lo que sugiere que pueden ser integrados y gestionados de manera más eficiente con herramientas comunes.

Integrar Playwright, GitHub Actions y Elastic Synthetics permite usar los mismos scripts para pruebas de extremo a extremo y monitoreo en producción, facilitando la gestión y mejora de la calidad y confiabilidad de las aplicaciones.

Los equipos a menudo enfrentan falta de empatía entre desarrolladores y operadores, prioridades desalineadas y herramientas dispares, lo que dificulta la colaboración y la eficiencia entre los distintos grupos involucrados.

La colaboración entre diferentes disciplinas, como desarrolladores, testers, SREs y gestores de producto, es crucial para crear sistemas más mantenibles y confiables, optimizando el uso de recursos y mejorando la experiencia del usuario final.

Carly Richmond
Carly Richmond
19 min
11 Dec, 2023

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Carly Richmond discute la importancia de cambiar a la izquierda en las pruebas y el monitoreo. Ella enfatiza la necesidad de empatía y un conjunto de herramientas común en el proceso de desarrollo de software. La charla explora el uso de pruebas de extremo a extremo y monitoreo sintético, mostrando un ejemplo con Playwrights, GitHub Actions y Elastic Synthetics. También cubre la configuración, configuración e integración de pruebas en el flujo de trabajo de CI. La charla concluye con los beneficios de monitorear el estado de la aplicación y la prueba, y la importancia de la colaboración en la recreación de problemas.

1. Introducción a las Pruebas y Monitoreo

Short description:

Hola, TestJS Summit. Mi nombre es Carly Richmond. Soy una desarrolladora senior en Elastic. Hoy, hablaré sobre las pruebas de extremo a extremo y el monitoreo sintético, mostrando un ejemplo de cómo combinar un marco de pruebas de extremo a extremo con acciones de GitHub para CI y monitoreo utilizando Elastic Synthetics.

Hola, TestJS Summit. Es genial verlos a todos. Mi nombre es Carly Richmond. Soy una desarrolladora senior en Elastic. Y estoy aquí hoy para hablar sobre testing, lo que probablemente esperaban de una conferencia de testing, seamos honestos. Pero, ¿esperaban que hablara también sobre monitoreo? Posiblemente no. Así que hoy voy a aprovechar mi experiencia previa como ingeniera de software para hablar sobre las pruebas de extremo a extremo y el monitoreo sintético. Hablaré sobre cómo, a pesar de nuestros pensamientos, en realidad, estos elementos son dos caras de la misma moneda. Y también mostraré un ejemplo en el que tomamos un marco de pruebas de extremo a extremo, en este caso, y lo combinamos con GitHub actions para CI y luego monitoreo utilizando Elastic Synthetics para mostrar cómo podemos usar los mismos scripts para ambas pruebas de extremo a extremo y monitoreo sintético.

2. Entendiendo los Desafíos

Short description:

Pero antes de todo eso, necesitamos hablar sobre la noción de desplazamiento a la izquierda porque eso es imperativo para entender este argumento. Mi experiencia con eso fue realmente mi idea inicial sobre por qué DevOps tiene sentido, porque estábamos trabajando juntos. Tenemos que hablar sobre por qué esto es así. La primera razón es la empatía. No somos buenos para empatizar con los otros lados dentro de esta ecuación. La otra cosa es la falta de prioridad común. Y el último problema que vi fue que a menudo nuestros conjuntos de herramientas son tan dispares que es muy difícil averiguar si hay algún terreno común entre nosotros. Y el monitoreo sintético en las pruebas de extremo a extremo es el ejemplo principal de eso.

Pero antes de todo eso, necesitamos hablar sobre la noción de desplazamiento a la izquierda porque eso es imperativo para entender este argumento. Así que para mí, desplazarse a la izquierda era algo que realmente tenía mucho sentido. Tratar de detectar defectos más temprano en el ciclo. Y también tenía sentido para mí porque, en realidad, les contaré un pequeño secreto, solía ser más que solo un ingeniero. En mi primer rol como ingeniero de software, también tuve que hacer todo lo demás. Tuve que hacer gestión de producción, tuve que lidiar con problemas de usuarios, y dado que era un sistema regulatorio, siempre se requería una respuesta bastante rápida para esos casos. Y también nos ocupamos de la implementación, testing, y coordinación del testing de usuarios. Hicimos todo en esa aplicación debido al tamaño del equipo y la experiencia que teníamos. Y fue realmente cuando comenzamos a intentar transferir algunas de las responsabilidades de soporte a un equipo de gestión de producción dedicado que me di cuenta de que estas actividades son más comúnmente realizadas por diferentes grupos. Pero mi experiencia con eso fue realmente mi idea inicial sobre por qué DevOps tiene sentido, porque estábamos trabajando juntos. Ellos configuraron el sistema de tickets, por ejemplo. Trabajé con ellos para documentar todo el conocimiento, sacarlo de mi cabeza, para que las personas pudieran react a los problemas e intentar ayudar a los usuarios donde pudieran. Y luego, si intentaban solucionar un problema y no funcionaba del todo, ellos me llamaban para ayudar y actualizábamos el artículo de conocimiento con la información adicional. Pero también aprendí de ellos porque hablamos sobre testing, hablamos sobre cómo podríamos hacer que la aplicación fuera más fácil de monitorear. Todas estas cosas que realmente como desarrollador no tienes mucha exposición y tuve mucha suerte por eso. Y pensé que era normal hasta que me mudé a mi primer trabajo de desarrollo web y me di cuenta de que eso es en realidad una experiencia muy rara. E incluso hablando con ingenieros de devops y SREs ahora, veo que en realidad la relación a pesar de la aparición de devops es más parecida a un juego de roca. Y tenemos que hablar sobre por qué esto es así. La primera razón es la empatía. No somos buenos para empatizar con los otros lados dentro de esta ecuación. Los desarrolladores no empatizan bien y colaboran con los testers a quienes sienten que podrían estar devolviéndoles características que pensaban que eran perfectas. La gestión de producción está recibiendo regularmente nuevas características que se construyen en pequeños incrementos que significan que a menudo están sobrecargados con características de las que no saben mucho. Y todo el mundo simplemente siente que el otro lado realmente no entiende cuál es su papel y qué están tratando de hacer. La otra cosa es la falta de prioridad común. Este letrero aquí en el asiento todos más o menos sabemos lo que esto significa. Está muy claro para quién está destinado este asiento. Pero si pensamos en la priorización del backlog dentro del mundo ágil reciente no siempre es tan claro como eso y mi experiencia de trabajar con propietarios de productos fue a menudo que las nuevas características se priorizaban regularmente sobre pequeñas mejoras de toil, adiciones como capacidades de monitoreo mejoradas e incluso a veces las correcciones de errores menores se ponían al final del backlog en comparación con nuevas características que ellos podían entender. Y el último problema que vi fue que a menudo nuestros conjuntos de herramientas son tan dispares que es muy difícil averiguar si hay algún terreno común entre nosotros. Y el monitoreo sintético en las pruebas de extremo a extremo es el ejemplo principal de eso. Así que las pruebas para cualquiera que no esté familiarizado son básicamente pruebas que te permiten probar

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

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.
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.
Automatizando Todo el Código y las Pruebas con GitHub Actions
React Advanced 2021React Advanced 2021
19 min
Automatizando Todo el Código y las Pruebas con GitHub Actions
Top Content
We will learn how to automate code and testing with GitHub Actions, including linting, formatting, testing, and deployments. Automating deployments with scripts and Git hooks can help avoid mistakes. Popular CI-CD frameworks like Jenkins offer powerful orchestration but can be challenging to work with. GitHub Actions are flexible and approachable, allowing for environment setup, testing, deployment, and custom actions. A custom AppleTools Eyes GitHub action simplifies visual testing. Other examples include automating content reminders for sharing old content and tutorials.
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.
Pruebas pequeñas, grandes resultados
TestJS Summit 2022TestJS Summit 2022
21 min
Pruebas pequeñas, grandes resultados
Automated atomic tests are a great way to improve UI tests by making them less brittle and faster. The tests focus on testing a single feature or component and have minimal UI interactions. The Talk explores examples of automated atomic tests and their implementation on web applications. It also discusses the analysis of atomic tests, login tests, and working with JSON Web Tokens for authentication and authorization. The Talk concludes by highlighting the use of UI and web requests in automated atomic testing.
Quizá No Necesitemos Pruebas de Componentes
Vue.js Live 2024Vue.js Live 2024
26 min
Quizá No Necesitemos Pruebas de Componentes
Component testing is a gray area between integration and unit testing. The demo app focuses on the cart component and writing test cases for Playwright component test and VTest. The first cart test encounters a bug with the invisible method in View Test.

Workshops on related topic

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
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.
Construyendo una suite de pruebas significativa que no sea todo E2E
TestJS Summit 2023TestJS Summit 2023
89 min
Construyendo una suite de pruebas significativa que no sea todo E2E
Workshop
David Burns
David Burns
Todos somos enseñados a seguir la Pirámide de Pruebas pero la realidad es que construimos el Árbol de Pruebas de Navidad. En esta masterclass, David te explicará cómo desglosar proyectos y poner las pruebas donde necesitan estar. Al final de la masterclass, podrás actualizar tus proyectos para que cualquiera y todos puedan empezar a contribuir y realmente vivir según "La calidad es el trabajo de todos".
Te guiará a través de:- Pruebas de Componentes- Pruebas de API- Pruebas de Regresión Visual- Pruebas A11Y
También te explicará cómo configurar todo esto en tu pipeline de CI/CD para que puedas obtener ciclos de feedback más cortos y rápidos.
Potenciando tu CI/CD con GitHub Actions
DevOps.js Conf 2022DevOps.js Conf 2022
155 min
Potenciando tu CI/CD con GitHub Actions
Workshop
David Rubio Vidal
David Rubio Vidal
Obtendrás conocimiento sobre los conceptos de GitHub Actions, como:- El concepto de secretos de repositorio.- Cómo agrupar pasos en trabajos con un propósito determinado.- Dependencias y orden de ejecución de trabajos: ejecutar trabajos en secuencia y en paralelo, y el concepto de matriz.- Cómo dividir la lógica de los eventos de Git en diferentes archivos de flujo de trabajo (en empuje de rama, en empuje a master/principal, en etiqueta, en implementación).- Para respetar el concepto de DRY (No te repitas), también exploraremos el uso de acciones comunes, tanto dentro del mismo repositorio como desde un repositorio externo.
Automatizar Pruebas de Seguridad de Aplicaciones Web usando GitHub Actions (del equipo de StackHawk)
TestJS Summit 2022TestJS Summit 2022
87 min
Automatizar Pruebas de Seguridad de Aplicaciones Web usando GitHub Actions (del equipo de StackHawk)
WorkshopFree
Zachary Conger
Zachary Conger
El desarrollo de software ha cambiado: Despliegues frecuentes, APIs, GraphQL, Arquitectura en la Nube y Automatización CI/CD son la norma. Entonces, ¿por qué las pruebas de seguridad siguen siendo iguales que hace una década?
Los equipos líderes se están dando cuenta de que las pruebas de penetración periódicas y las auditorías de seguridad no son suficientes cuando el código se envía a diario. En su lugar, estos equipos están utilizando herramientas centradas en los desarrolladores para ejecutar pruebas de seguridad automatizadas en un pipeline de CI/CD. Únete a Zachary Conger mientras te guía en cómo automatizar las pruebas de seguridad de aplicaciones JS utilizando GitHub Actions.
Pruebas de seguridad de JS en GitHub Actions
JSNation 2022JSNation 2022
101 min
Pruebas de seguridad de JS en GitHub Actions
WorkshopFree
Zachary Conger
Zachary Conger
Este masterclass se centrará en automatizar el análisis de composición de software, las pruebas de seguridad de aplicaciones estáticas y las pruebas de seguridad de aplicaciones dinámicas utilizando GitHub Actions. Después de una breve introducción que cubre los diferentes tipos de seguridad de aplicaciones y la importancia de encontrar vulnerabilidades de seguridad antes de que lleguen a producción, nos sumergiremos en una sesión práctica donde los usuarios agregarán tres herramientas de pruebas de seguridad diferentes a sus pipelines de construcción.