DEV Community

Cover image for ¿Por qué sufrir con testing?
Lara Díaz
Lara Díaz

Posted on • Edited on

¿Por qué sufrir con testing?

Hoy quiero compartirles mi experiencia con Cypress, cómo lo descubrí y cómo llegué a trabajar casi un año haciendo testing automatizado.

Los desarrolladores tocando a testing con un palo

Como desarrolladores al escuchar que tenemos que hacer tests ya nos empezamos a remover un poco en la silla pensando en lo largo y aburrido que se puede hacer. Ya sea tener que crearlos desde 0 o el simple hecho de arreglarlos porque cambiamos todo un componente y ahora rompemos todo.

Por lo menos esto es lo que yo pensaba.

Acérquense que les voy a contar una historia…

El abuelo simpson contando una historia

Mi primer encuentro con Cypress fue en 2021, en circunstancias poco ideales. Me tocó aprenderlo rápidamente, sin experiencia previa, en un proyecto con archivos enormes y un plazo ajustado para crear 12 tests extensos. Digamos que este no fue el comienzo de una historia de amor 🤣​ y que, por suerte para mi, fue extremadamente corta.

Avanzamos rápidamente hasta 2022.

Nuevo proyecto, viejos amigos.

Tuve la suerte de empezar a trabajar con un amigo en la implementación de testing automático con Cypress. Pensé que sería una gran oportunidad para aprender de alguien que tiene mucha experiencia y encima voy a poder aprender Cypress a un ritmo más tranquilo. Sin embargo, como suele suceder, las cosas no siempre salen como uno espera, y mi amigo renunció al mes.

Pedro Pascal llorando

Pero como no todo es lágrimas y tragedia, aprendí mucho en este proceso, y quiero compartirlo con ustedes.

Primero, ¿qué es Cypress?

Cypress es una herramienta de prueba automatizada de código abierto que permite a desarrolladores y testers simular la interacción del usuario con una aplicación web en un navegador.

Algunas de sus características principales son:

  • Ejecución en tiempo real: muestra los resultados de las pruebas de forma inmediata.

  • Facilidad de uso: incluso para aquellos sin experiencia en pruebas automatizadas.

  • Integración con otros frameworks: compatible con una variedad de tecnologías.

  • Facilidad de depuración: proporciona herramientas para depurar de manera rápida y eficiente.

Bob Esponja. La vieja y confiable documentación

Para obtener más información, pueden visitar su sitio web: Cypress.io

Facilidad de creación de comandos:

Cypress simplifica la interacción con elementos de la interfaz de usuario mediante sus comandos, que son similares a las promesas pero más accesibles. Además, permite crear comandos personalizados para automatizar tareas repetitivas, ya sea para encontrar un elemento dentro del DOM o la creación de productos en un e-commerce.

Objetivos claros (testing UI vs testing logic/functionality):

Es crucial definir qué aspectos de la aplicación se van a testear. En nuestro caso, nos centramos en pruebas de interfaz de usuario para reducir el tiempo dedicado a pruebas manuales y garantizar que los nuevos componentes no rompieran la aplicación.

Tests claros dev contentos (readability):

Como mencioné al principio, no soy QA y el hecho de encontrarme con archivos testamento que eran ilegibles me traumó un poco y, entre otros comentarios, no hay nada mejor para un desarrollador que entender qué y dónde tiene que modificar cuando los tests fallan.

COMENTEN SUS TESTS, háganlos legibles y lo más simple posible, y todos felices y contentos. De esta forma evitamos tener malos entendidos cuando tengamos que modificarlos.

Capturas de pantalla y videos:

Cypress ofrece la opción de tomar capturas de pantalla y grabar videos de las pruebas, lo cual resulta invaluable para identificar y solucionar problemas. Estas funcionalidades pueden configurarse tanto para ejecuciones locales como en la nube, lo que facilita la detección de errores en diferentes entornos.

Plugins FTW:

Cypress cuenta con una amplia variedad de plugins, tanto oficiales como de la comunidad, que amplían su funcionalidad.

En particular, encontramos útiles los plugins @cypress/grep para filtrar pruebas por etiquetas y Percy para pruebas visuales.

En resumen, mi experiencia con Cypress hasta el momento, ha sido una montaña rusa emocional, que me ha enseñado mucho sobre testing automatizado y pensar un flujo de uso desde la perspectiva del usuario.

¡Hasta la próxima!

BeerJS Cba 77 - ¿Por qué sufrir con testing?
Conoce a tu mejor aliado, Cypress

Cover Image by storyset on Freepik

Top comments (0)