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.

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.

Available in English

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

Testing Web Applications with Playwright
TestJS Summit 2022TestJS Summit 2022
20 min
Testing Web Applications with Playwright
Top Content
Testing is hard, testing takes time to learn and to write, and time is money. As developers we want to test. We know we should but we don't have time. So how can we get more developers to do testing? We can create better tools.Let me introduce you to Playwright - Reliable end-to-end cross browser testing for modern web apps, by Microsoft and fully open source. Playwright's codegen generates tests for you in JavaScript, TypeScript, Dot Net, Java or Python. Now you really have no excuses. It's time to play your tests wright.
Full-Circle Testing With Cypress
TestJS Summit 2022TestJS Summit 2022
27 min
Full-Circle Testing With Cypress
Top Content
Cypress has taken the world by storm by brining an easy to use tool for end to end testing. It’s capabilities have proven to be be useful for creating stable tests for frontend applications. But end to end testing is just a small part of testing efforts. What about your API? What about your components? Well, in my talk I would like to show you how we can start with end-to-end tests, go deeper with component testing and then move up to testing our API, circ
Automating All the Code & Testing Things with GitHub Actions
React Advanced Conference 2021React Advanced Conference 2021
19 min
Automating All the Code & Testing Things with GitHub Actions
Top Content
Code tasks like linting and testing are critical pieces of a developer’s workflow that help keep us sane like preventing syntax or style issues and hardening our core business logic. We’ll talk about how we can use GitHub Actions to automate these tasks and help keep our projects running smoothly.
Everyone Can Easily Write Tests
TestJS Summit 2023TestJS Summit 2023
21 min
Everyone Can Easily Write Tests
Let’s take a look at how Playwright can help you get your end to end tests written with tools like Codegen that generate tests on user interaction. Let’s explore UI mode for a better developer experience and then go over some tips to make sure you don’t have flakey tests. Then let’s talk about how to get your tests up and running on CI, debugging on CI and scaling using shards.
Tiny Tests, Large Results
TestJS Summit 2022TestJS Summit 2022
21 min
Tiny Tests, Large Results
Yes, Big things do come in small packages. For example, isn’t a unit test’s speed, feedback, and reliability fantastic? Did you know we can also have fast, focused, and reliable feedback from our functional e2e tests? Atomic e2e tests are those that are targeted and focused. They’re tiny in size but large in their impact. This tutorial will teach you how to create atomic e2e tests with several code examples. First, we will use Cypress.io to authenticate by setting a cookie. Instead of using a UI. Second, we will use Cypress.io to set a JSON Web Token for authentication. Join me, and let’s write tiny tests for large results.
We May Not Need Component Testing
Vue.js Live 2024Vue.js Live 2024
26 min
We May Not Need Component Testing
Testings are mandatory and unit tests are the foundation for building a good testing system for our project. But for front end projects which involve components, how many unit tests are considered efficient and not overkill? Should we use additional libraries like Testing Library or Vue Test Utils with Vitest to test a component, when we can perform the same with just Playwright? Whether a component test using an E2E framework like Playwright is really a kill for? Let's find out in my talk.

Workshops on related topic

Detox 101: How to write stable end-to-end tests for your React Native application
React Summit 2022React Summit 2022
117 min
Detox 101: How to write stable end-to-end tests for your React Native application
Top Content
WorkshopFree
Yevheniia Hlovatska
Yevheniia Hlovatska
Compared to unit testing, end-to-end testing aims to interact with your application just like a real user. And as we all know it can be pretty challenging. Especially when we talk about Mobile applications.
Tests rely on many conditions and are considered to be slow and flaky. On the other hand - end-to-end tests can give the greatest confidence that your app is working. And if done right - can become an amazing tool for boosting developer velocity.
Detox is a gray-box end-to-end testing framework for mobile apps. Developed by Wix to solve the problem of slowness and flakiness and used by React Native itself as its E2E testing tool.
Join me on this workshop to learn how to make your mobile end-to-end tests with Detox rock.
Prerequisites- iOS/Android: MacOS Catalina or newer- Android only: Linux- Install before the workshop
Testing Web Applications Using Cypress
TestJS Summit - January, 2021TestJS Summit - January, 2021
173 min
Testing Web Applications Using Cypress
WorkshopFree
Gleb Bahmutov
Gleb Bahmutov
This workshop will teach you the basics of writing useful end-to-end tests using Cypress Test Runner.
We will cover writing tests, covering every application feature, structuring tests, intercepting network requests, and setting up the backend data.
Anyone who knows JavaScript programming language and has NPM installed would be able to follow along.
Building out a meaningful test suite that's not all E2E
TestJS Summit 2023TestJS Summit 2023
89 min
Building out a meaningful test suite that's not all E2E
Workshop
David Burns
David Burns
We're all taught to follow the Testing Pyramid but the reality is that we build out the Testing Christmas Tree. In this workshop, David will talk you through how to break down projects and put the tests where they need to be. By the end of the workshop you will be able to update your projects so that anyone and everyone can start contributing and truly living up to "Quality is everyone job".
He will walk you through:- Component Testing- API Testing- Visual Regression Testing- A11Y testing
He will also talk you through how to get these all setup in your CI/CD pipeline so that you can get shorter and faster feedback loops.
Powering your CI/CD with GitHub Actions
DevOps.js Conf 2022DevOps.js Conf 2022
155 min
Powering your CI/CD with GitHub Actions
Workshop
David Rubio Vidal
David Rubio Vidal
You will get knowledge about GitHub Actions concepts, like:- The concept of repository secrets.- How to group steps in jobs with a given purpose.- Jobs dependencies and order of execution: running jobs in sequence and in parallel, and the concept of matrix.- How to split logic of Git events into different workflow files (on branch push, on master/main push, on tag, on deploy).- To respect the concept of DRY (Don't Repeat Yourself), we will also explore the use of common actions, both within the same repo and from an external repo.
Automate WebApp Security Testing using GitHub Actions (from StackHawk team)
TestJS Summit 2022TestJS Summit 2022
87 min
Automate WebApp Security Testing using GitHub Actions (from StackHawk team)
WorkshopFree
Zachary Conger
Zachary Conger
Software development has changed - Frequent deployments, APIs, GraphQL, Cloud Architecture and CI/CD Automation are the norm. So why is security testing the same way it was a decade ago?
Leading teams are realizing that periodical penetration testing and security audits is not enough when code is being shipped daily. Instead, these teams are using developer-centric tools to run automated security testing in a CI/CD pipeline. Join Zachary Conger as he walks through how to automate application JS security testing using GitHub actions.
JS Security Testing in GitHub Actions
JSNation 2022JSNation 2022
101 min
JS Security Testing in GitHub Actions
WorkshopFree
Zachary Conger
Zachary Conger
This workshop will focus on automating software composition analysis, static application security testing and dynamic application security testing using GitHub Actions. After a brief introduction covering the different types of application security and the importance of finding security vulnerabilities before they hit production, we'll dive into a hands-on session where users will add three different security testing tool to their build pipelines.