¿Qué es End-to-End Testing?

Clase 2 de 24Curso de End to End Testing con Cypress 2018

Resumen

End to end testing es uno de los niveles dentro de la pirámide de testing y sirve para detectar fallas en la interfaz del usuario (user interface). El e2e testing es una metodología que comprueba el funcionamiento de toda una aplicación, de principio a fin, por ello, se le conoce como pruebas de extremo a extremo o pruebas end-to-end (e2e).

Las pruebas e2e garantizan que el flujo de una aplicación funcione como se esperaría ante la interacción de un usuario real. El foco es detectar posibles problemas que van a encontrar nuestros usuarios en el flujo general del programa.

Características del end-to-end testing

Dar una efectiva experiencia del usuario (user experience) es importante para ayudar a mejorar posibles fallas de una aplicación. Algunas características que puedes encontrar al hacer e2e testing son:

  • Prueba todo el flujo del software desde el punto de vista del usuario final.
  • Prueba el software desde la interfaz de usuario y no desde el código interno.
  • Está enfocado en detectar posibles problemas que pudieran encontrar nuestros usuarios en su interacción con el flujo general del programa.

Cómo funciona el end to end testing

Esta metodología intenta simular desde el punto de vista del usuario cómo se comportaría la aplicación en condiciones normales y reales.

Para lograrlo, programamos la interacción del usuario con un navegador y verificamos el funcionamiento de principio a fin del proceso. Con este propósito, podemos utilizar herramientas como Cypress, entre otras.

¿Por qué es necesario hacer testing?

Testing Process es un método de trabajo que se emplea para identificar fallas en el software o producto con el fin de que este alcance un grado aceptable de madurez y estabilidad incluso antes de ser lanzado.

¿Cómo se relaciona el testing con las pruebas e2e? Lo veremos a continuación.

Niveles de la pirámide de testing

De acuerdo al nivel de complejidad y elementos que la componen, existe una pirámide de testing compuesta de varios niveles. Dentro de los niveles de esta pirámide encontramos el e2e testing.

https://static.platzi.com/media/user_upload/piramide%20tests-df9afd92-24e0-40f8-b7ef-b2201bf83ebc.jpg

Unit Test o Pruebas Unitarias

Permiten probar los elementos más fundamentales del software como objetos, funciones, eventos, entre otros.

Component Tests o Pruebas de Componentes

Permiten identificar fallas en componentes que incluyen varias funciones o elementos internos.

Integration Tests o Pruebas de Integración

Permiten probar el comportamiento y posibles fallas en la interacción entre los componentes entre sí, y demás elementos del software.

GUI Tests o End-to-end Tests

Nos ayudan a identificar fallas en la interfaz de usuario. Es en este nivel de pruebas es el más sofisticado, pues depende de los otros niveles de tests y una combinación de sus funciones.