SlideShare una empresa de Scribd logo
Cypress en un
Mundo de Selenium
Gilberto Sánchez Mares
Consultor De Automatización
@ Titanium Solutions
Unidos compartiendo y aprendiendo
#SGVirtual
Gilberto Sánchez Mares
Consultor de Pruebas de software con más de
8 años de experiencia en el área de pruebas
de software
gsanchez@titaniumsolutions.com.mx
Gilberto Sánchez
Mares
Temas
1. End-To-End Testing.
a) ¿Qué es End-to-End Testing?
b) End-to-End vertical vs Horizontal
2. Introducción a Cypress.
a) ¿Qué es Cypress?
b) Principales Características
3. Demo.
a) Arquitectura
b) Proceso
End-to-End
Testing
¿Qué es End-to-End
Testing?
La pirámide de pruebas actual se enfoca en prevenir bugs, más que en encontrarlos.
Pirámide de las Pruebas
GUI Test
Integration
Test
Component/Contract
Test
Unit Test
una metodología en la cual, el flujo entero de una aplicación es evaluado. El propósito de
este mecanismo es verificar que los distintos componentes de una aplicación funcionan
correctamente entre sí.
Usando pruebas E2E interactuamos con la aplicación como un usuario regular lo haría, y, por
lo tanto, utilizando cada parte de la aplicación y evaluando las respuestas para el
comportamiento esperado.
¿Qué es End-to-End Testing?
Test Planing
Test Design
Test Execution
Result
Analysis
Beneficios del e2e
Ayuda a garantizar que el software esté listo para producción y evitar riesgos después del
lanzamiento.
1. Confirma el estado de la aplicación: las pruebas e2e validarán que su software sea funcional en
cada nivel (desde el front hasta el back-end).
2. Expande la cobertura de prueba: Amplía la cobertura de prueba para poder crear casos de prueba
adicionales que pueden no haber sido considerados previamente.
3. Detecta errores y aumenta la productividad de la aplicación: en las pruebas e2e, el software
generalmente se prueba después de cada iteración, lo que significa que podrá encontrar y
solucionar cualquier problema más rápido.
4. Reduce los esfuerzos y los costos de las pruebas: con menos errores y pruebas exhaustivas en cada
paso, las pruebas e2e también disminuirán la necesidad de repetir las pruebas.
End-to-End Vertical
vs Horizontal
e2e Vertical vs Horizontal
E2E Horizontal: Incluye UI y la capa de
integración.
E2E Vertical:
Implementación de
pruebas en todos los
niveles de pruebas.
Tipo de E2E Prerrequisitos Ventajas
Horizontal
Debido a que está verificando un flujo
de trabajo completo en múltiples
aplicaciones, es vital que los entornos
de prueba para su sistema y todos sus
subsistemas estén configurados de
antemano.
• Incluye pruebas de enfoque en la perspectiva
del usuario.
• Evita que los problemas lleguen a la
producción.
• Garantiza la cobertura de los requisitos de
lógica empresarial.
Vertical
Dado que enfoca sus pruebas en la
arquitectura de una sola aplicación,
necesitará el respaldo de una estrategia
de prueba o desarrollo, como BDD, TDD o
las pruebas continuas. Deberá asegurarse
de que cada parte interesada importante
participen en el proyecto.
• Alta cobertura de código
• Ejecución de prueba más rápida
• Pruebas más enfocadas
• Útil para software crítico de seguridad
Prerrequisitos y Ventajas
Prerrequisitos y Ventajas de los Tipos
de e2e
Introducción a
Cypress
¿Qué es
Cypress?
https://www.cypress.io/
Sitio Web de Cypress
“Una herramienta open-source,
para llevar acabo End-to-End
testing (e2e), diseñado para la
web moderna ”
¿Qué es Cypress?
Creciendo en Popularidad y
Adopción
¿Cómo trabaja?
7 formas en que Cypress es diferente
1. No usa Selenium.
2. Se enfoca en hacer pruebas e2e REALMENTE bien.
3. Trabaja en cualquier framework de front-end o sitio
web.
4. Las pruebas de Cypress están escritas solamente en
JavaScript.
5. Es todo en uno.
6. Es para desarrolladores e Ingenieros de Pruebas.
7. Ejecuta mucho, mucho más rápido.
Principales Ventajas
Principales
Características
Viaje en el Tiempo
Toma screenshots mientras se ejecutan las pruebas. Simplemente
coloque el cursor sobre los comandos en el Command Log para
ver exactamente qué sucedió en cada paso.
Características
Recarga en Tiempo Real
Se recarga automáticamente cada vez que realiza cambios en sus
pruebas. Vea los comandos ejecutados en tiempo real en su
aplicación.
Spies, Stubs y Clocks
Verifique y controle el comportamiento de las funciones, las
respuestas del servidor o los temporizadores. La misma
funcionalidad que le encanta de las pruebas unitarias está al
alcance de su mano.
Resultados Consistentes
Nuestra arquitectura no utiliza Selenium o WebDriver. Saluda a
las pruebas rápidas, consistentes y confiables.
Depuración
Deja de adivinar por qué tus pruebas están fallando. Depure
directamente desde herramientas familiares como Chrome
DevTools. Nuestros errores legibles y los rastros de la pila
agilizan la depuración..
Espera Automática
Nunca agregue waits o sleeps a sus pruebas. Cypress
automáticamente espera comandos y aserciones antes de
continuar. No más infierno asíncrono.
Control de Tráfico de Red
Controle, bloquee y pruebe casos extremos fácilmente sin
involucrar a su servidor. Puede detener el tráfico de red
como quiera.
Screenshots y Videos
Vea capturas de pantalla tomadas automáticamente en caso de
falla o videos de todo su conjunto de pruebas cuando se
ejecutan headlessly.
Page Object Model App Actions
Es muy popular entre la comunidad, ya que se ha
implementado desde hace bastante tiempo.
Definida por Cypress es bastante nueva y no se han producido
muchas adaptaciones.
Es como otro contenedor para Page DOM.
Tiene muy poco o nada que ver con DOM, ya que la acción de
la aplicación intenta evitar DOM.
usa DOM como white box y el resto de la aplicación
como black box (como métodos internos, XHR, API,
etc.).
Intenta invocar métodos internos, API de la aplicación y,
por lo tanto, considera la aplicación completa, incluido
DOM, como un White box y nada queda como un black box.
Es bastante fácil de escribir, ya que cualquier
persona que tenga conocimiento sobre identificadores
de objetos comienza a trabajar con él.
Necesita más conocimiento de codificación o aspectos
internos de la aplicación y es posible que deba escribir un
código contenedor internamente en la aplicación o agregar
lógica en su código de prueba y vincularlo con el código de
la aplicación.
Debe mantenerse por separado como clases si la
aplicación cambia, todas las clases POM DEBEN
cambiarse también.
Están menos vinculadas con DOM e incluso si puede crear DOM
privado interno sobre la marcha, pero de nuevo, es mucho
menos engorroso que POM
Hace que la prueba sea más lenta ya que implica una
compilación adicional de todos los casos de prueba.
Es mucho más rápida o, a veces, incluso más rápida que la
aplicación y debe sincronizarse (lo que a su vez es una
desventaja)
Tiene mucho apoyo de la comunidad.
Tiene poco o ningún soporte, ya que es más probable que
entiendas el desarrollo de la aplicación y cómo seleccionas
el código.
Page Object Model vs App Actions
App Actions
Demo
Arquitectura del
Proyecto
Stack de Tecnologías
Gherkin
Feature File
Page Object
Model
Cypress
Test Driver
JavaScript
Binding Language
Cucumber
(BDD) Testing Framework
Step File
Test Data
Flujo del
Proceso
Esquema de Pruebas
Continuas
Pull
Push
Execution
Reporting
Clone/pull
Thanks
Gracias por su
atención!

Más contenido relacionado

La actualidad más candente

Test Automation Strategy
Test Automation StrategyTest Automation Strategy
Test Automation Strategy
Martin Ruddy
 
Tecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De SoftwareTecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De Software
marthahuback
 

La actualidad más candente (20)

Cypress Automation
Cypress  AutomationCypress  Automation
Cypress Automation
 
Java Unit Testing
Java Unit TestingJava Unit Testing
Java Unit Testing
 
End to end test automation with cypress
End to end test automation with cypressEnd to end test automation with cypress
End to end test automation with cypress
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégias
 
Cypress Testing.pptx
Cypress Testing.pptxCypress Testing.pptx
Cypress Testing.pptx
 
Cypress for Testing
Cypress for TestingCypress for Testing
Cypress for Testing
 
Cypress
CypressCypress
Cypress
 
Test Automation Strategy
Test Automation StrategyTest Automation Strategy
Test Automation Strategy
 
Introduction cypress
Introduction cypressIntroduction cypress
Introduction cypress
 
Agile testing
Agile testingAgile testing
Agile testing
 
Introduction to E2E in Cypress
Introduction to E2E in CypressIntroduction to E2E in Cypress
Introduction to E2E in Cypress
 
Pruebas de Software
Pruebas de SoftwarePruebas de Software
Pruebas de Software
 
Automated testing with Cypress
Automated testing with CypressAutomated testing with Cypress
Automated testing with Cypress
 
Software Testing Basic Concepts
Software Testing Basic ConceptsSoftware Testing Basic Concepts
Software Testing Basic Concepts
 
e2e testing with cypress
e2e testing with cypresse2e testing with cypress
e2e testing with cypress
 
The Test Pyramid
The Test PyramidThe Test Pyramid
The Test Pyramid
 
Why you should switch to Cypress for modern web testing?
Why you should switch to Cypress for modern web testing?Why you should switch to Cypress for modern web testing?
Why you should switch to Cypress for modern web testing?
 
Unit testing with JUnit
Unit testing with JUnitUnit testing with JUnit
Unit testing with JUnit
 
Tecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De SoftwareTecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De Software
 

Similar a Cypress en un mundo lleno de Selenium

tipos de pruebas.
tipos de pruebas.tipos de pruebas.
tipos de pruebas.
Juan Ravi
 

Similar a Cypress en un mundo lleno de Selenium (20)

Exposición software.pptx
Exposición software.pptxExposición software.pptx
Exposición software.pptx
 
Exposición software.pptx
Exposición software.pptxExposición software.pptx
Exposición software.pptx
 
Testing & Pizza by Lito & nitsnets
Testing & Pizza by Lito & nitsnetsTesting & Pizza by Lito & nitsnets
Testing & Pizza by Lito & nitsnets
 
Vuelta_a_los_origines_Testing.pdf
Vuelta_a_los_origines_Testing.pdfVuelta_a_los_origines_Testing.pdf
Vuelta_a_los_origines_Testing.pdf
 
Pruebas de software
Pruebas de softwarePruebas de software
Pruebas de software
 
Pruebas unitarias
Pruebas unitariasPruebas unitarias
Pruebas unitarias
 
¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?
 
pruebas de calidad.pdf
pruebas de calidad.pdfpruebas de calidad.pdf
pruebas de calidad.pdf
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJS
 
Desarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por PruebasDesarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por Pruebas
 
Ra.1..
Ra.1..Ra.1..
Ra.1..
 
Unidad ii. tdd
Unidad ii. tddUnidad ii. tdd
Unidad ii. tdd
 
El coste de no usar integración continua
El coste de no usar integración continuaEl coste de no usar integración continua
El coste de no usar integración continua
 
Charla Evento TestingUY 2016 - Automatización en Ruby 101
Charla Evento TestingUY 2016 - Automatización en Ruby 101Charla Evento TestingUY 2016 - Automatización en Ruby 101
Charla Evento TestingUY 2016 - Automatización en Ruby 101
 
Pruebas unitarias 7mo -b
Pruebas unitarias   7mo -bPruebas unitarias   7mo -b
Pruebas unitarias 7mo -b
 
Conociendo Nuestro Fua interno
Conociendo Nuestro Fua internoConociendo Nuestro Fua interno
Conociendo Nuestro Fua interno
 
Ingeniería del software y metodologías ágiles
Ingeniería del software y metodologías ágilesIngeniería del software y metodologías ágiles
Ingeniería del software y metodologías ágiles
 
GENEX
GENEXGENEX
GENEX
 
Pruebas software (1)
Pruebas  software (1)Pruebas  software (1)
Pruebas software (1)
 
tipos de pruebas.
tipos de pruebas.tipos de pruebas.
tipos de pruebas.
 

Más de Software Guru

Más de Software Guru (20)

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las Cosas
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso reales
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environments
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador Senior
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto ideal
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache Airflow
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learning
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDi
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJS
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stress
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goals
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseño
 

Último

(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 

Último (20)

Licencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareLicencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de Software
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
 
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdfHIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
 
Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.
 
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
 
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerGestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL Server
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
 

Cypress en un mundo lleno de Selenium

  • 1. Cypress en un Mundo de Selenium Gilberto Sánchez Mares Consultor De Automatización @ Titanium Solutions Unidos compartiendo y aprendiendo #SGVirtual
  • 2. Gilberto Sánchez Mares Consultor de Pruebas de software con más de 8 años de experiencia en el área de pruebas de software gsanchez@titaniumsolutions.com.mx Gilberto Sánchez Mares
  • 3. Temas 1. End-To-End Testing. a) ¿Qué es End-to-End Testing? b) End-to-End vertical vs Horizontal 2. Introducción a Cypress. a) ¿Qué es Cypress? b) Principales Características 3. Demo. a) Arquitectura b) Proceso
  • 6. La pirámide de pruebas actual se enfoca en prevenir bugs, más que en encontrarlos. Pirámide de las Pruebas GUI Test Integration Test Component/Contract Test Unit Test
  • 7. una metodología en la cual, el flujo entero de una aplicación es evaluado. El propósito de este mecanismo es verificar que los distintos componentes de una aplicación funcionan correctamente entre sí. Usando pruebas E2E interactuamos con la aplicación como un usuario regular lo haría, y, por lo tanto, utilizando cada parte de la aplicación y evaluando las respuestas para el comportamiento esperado. ¿Qué es End-to-End Testing? Test Planing Test Design Test Execution Result Analysis
  • 8. Beneficios del e2e Ayuda a garantizar que el software esté listo para producción y evitar riesgos después del lanzamiento. 1. Confirma el estado de la aplicación: las pruebas e2e validarán que su software sea funcional en cada nivel (desde el front hasta el back-end). 2. Expande la cobertura de prueba: Amplía la cobertura de prueba para poder crear casos de prueba adicionales que pueden no haber sido considerados previamente. 3. Detecta errores y aumenta la productividad de la aplicación: en las pruebas e2e, el software generalmente se prueba después de cada iteración, lo que significa que podrá encontrar y solucionar cualquier problema más rápido. 4. Reduce los esfuerzos y los costos de las pruebas: con menos errores y pruebas exhaustivas en cada paso, las pruebas e2e también disminuirán la necesidad de repetir las pruebas.
  • 10. e2e Vertical vs Horizontal E2E Horizontal: Incluye UI y la capa de integración. E2E Vertical: Implementación de pruebas en todos los niveles de pruebas.
  • 11. Tipo de E2E Prerrequisitos Ventajas Horizontal Debido a que está verificando un flujo de trabajo completo en múltiples aplicaciones, es vital que los entornos de prueba para su sistema y todos sus subsistemas estén configurados de antemano. • Incluye pruebas de enfoque en la perspectiva del usuario. • Evita que los problemas lleguen a la producción. • Garantiza la cobertura de los requisitos de lógica empresarial. Vertical Dado que enfoca sus pruebas en la arquitectura de una sola aplicación, necesitará el respaldo de una estrategia de prueba o desarrollo, como BDD, TDD o las pruebas continuas. Deberá asegurarse de que cada parte interesada importante participen en el proyecto. • Alta cobertura de código • Ejecución de prueba más rápida • Pruebas más enfocadas • Útil para software crítico de seguridad Prerrequisitos y Ventajas Prerrequisitos y Ventajas de los Tipos de e2e
  • 15. “Una herramienta open-source, para llevar acabo End-to-End testing (e2e), diseñado para la web moderna ” ¿Qué es Cypress?
  • 18. 7 formas en que Cypress es diferente 1. No usa Selenium. 2. Se enfoca en hacer pruebas e2e REALMENTE bien. 3. Trabaja en cualquier framework de front-end o sitio web. 4. Las pruebas de Cypress están escritas solamente en JavaScript. 5. Es todo en uno. 6. Es para desarrolladores e Ingenieros de Pruebas. 7. Ejecuta mucho, mucho más rápido. Principales Ventajas
  • 20. Viaje en el Tiempo Toma screenshots mientras se ejecutan las pruebas. Simplemente coloque el cursor sobre los comandos en el Command Log para ver exactamente qué sucedió en cada paso. Características Recarga en Tiempo Real Se recarga automáticamente cada vez que realiza cambios en sus pruebas. Vea los comandos ejecutados en tiempo real en su aplicación. Spies, Stubs y Clocks Verifique y controle el comportamiento de las funciones, las respuestas del servidor o los temporizadores. La misma funcionalidad que le encanta de las pruebas unitarias está al alcance de su mano. Resultados Consistentes Nuestra arquitectura no utiliza Selenium o WebDriver. Saluda a las pruebas rápidas, consistentes y confiables. Depuración Deja de adivinar por qué tus pruebas están fallando. Depure directamente desde herramientas familiares como Chrome DevTools. Nuestros errores legibles y los rastros de la pila agilizan la depuración.. Espera Automática Nunca agregue waits o sleeps a sus pruebas. Cypress automáticamente espera comandos y aserciones antes de continuar. No más infierno asíncrono. Control de Tráfico de Red Controle, bloquee y pruebe casos extremos fácilmente sin involucrar a su servidor. Puede detener el tráfico de red como quiera. Screenshots y Videos Vea capturas de pantalla tomadas automáticamente en caso de falla o videos de todo su conjunto de pruebas cuando se ejecutan headlessly.
  • 21. Page Object Model App Actions Es muy popular entre la comunidad, ya que se ha implementado desde hace bastante tiempo. Definida por Cypress es bastante nueva y no se han producido muchas adaptaciones. Es como otro contenedor para Page DOM. Tiene muy poco o nada que ver con DOM, ya que la acción de la aplicación intenta evitar DOM. usa DOM como white box y el resto de la aplicación como black box (como métodos internos, XHR, API, etc.). Intenta invocar métodos internos, API de la aplicación y, por lo tanto, considera la aplicación completa, incluido DOM, como un White box y nada queda como un black box. Es bastante fácil de escribir, ya que cualquier persona que tenga conocimiento sobre identificadores de objetos comienza a trabajar con él. Necesita más conocimiento de codificación o aspectos internos de la aplicación y es posible que deba escribir un código contenedor internamente en la aplicación o agregar lógica en su código de prueba y vincularlo con el código de la aplicación. Debe mantenerse por separado como clases si la aplicación cambia, todas las clases POM DEBEN cambiarse también. Están menos vinculadas con DOM e incluso si puede crear DOM privado interno sobre la marcha, pero de nuevo, es mucho menos engorroso que POM Hace que la prueba sea más lenta ya que implica una compilación adicional de todos los casos de prueba. Es mucho más rápida o, a veces, incluso más rápida que la aplicación y debe sincronizarse (lo que a su vez es una desventaja) Tiene mucho apoyo de la comunidad. Tiene poco o ningún soporte, ya que es más probable que entiendas el desarrollo de la aplicación y cómo seleccionas el código. Page Object Model vs App Actions App Actions
  • 22. Demo
  • 24. Stack de Tecnologías Gherkin Feature File Page Object Model Cypress Test Driver JavaScript Binding Language Cucumber (BDD) Testing Framework Step File Test Data