Qué es el End to End Testing: E2E Testing Framework with Examples
Las pruebas de extremo a extremo son una metodología de pruebas de Software para probar el flujo de una aplicación de principio a fin. El propósito de las pruebas de extremo a extremo es simular el escenario real del usuario y validar el sistema bajo prueba y sus componentes para la integración y la integridad de los datos.
Nadie quiere ser conocido por sus errores y su negligencia, y lo mismo ocurre con los Testers. Cuando a los Testers se les asigna una aplicación para que la prueben, desde ese momento, asumen la responsabilidad y la aplicación también actúa como una plataforma para mostrar sus conocimientos prácticos y técnicos de pruebas.
Así que, para describirlo técnicamente, para asegurar que las pruebas se hacen completamente, es necesario realizar «Pruebas de extremo a extremo».
En este tutorial, aprenderemos qué es la prueba de extremo a extremo, cómo se hace, por qué es necesaria, cuáles son las matrices utilizadas, cómo crear casos de prueba específicos de extremo a extremo y algunos otros aspectos importantes también. También aprenderemos sobre las pruebas de sistema y las compararemos con las pruebas de extremo a extremo..
También real => Formación de extremo a extremo en un proyecto en vivo – Formación gratuita de QA en línea.
¿Qué es la prueba de extremo a extremo?
La prueba de extremo a extremo es una metodología de prueba de software para probar un flujo de aplicación de principio a fin. El propósito de estas pruebas es simular el escenario real del usuario y validar el sistema bajo prueba y sus componentes para la integración y la integridad de los datos.
Se lleva a cabo de principio a fin bajo escenarios del mundo real como la comunicación de la aplicación con el hardware, la red, la base de datos y otras aplicaciones.
La razón principal para llevar a cabo estas pruebas es determinar varias dependencias de una aplicación, así como asegurar que la información precisa se comunica entre varios componentes del sistema. Por lo general, se realiza después de la finalización de las pruebas funcionales y del sistema de cualquier aplicación.
Tomemos un ejemplo de Gmail:
La verificación de extremo a extremo de una cuenta de Gmail incluirá los siguientes pasos:
- Lanzamiento de una página de inicio de sesión de Gmail a través de la URL.
- Inicio de sesión en la cuenta de Gmail utilizando credenciales válidas.
- Acceso a la bandeja de entrada. Abrir los correos electrónicos leídos y no leídos.
- Componer un nuevo correo electrónico, responder o reenviar un correo electrónico.
- Abrir los elementos enviados y comprobar los correos electrónicos.
- Comprobar los correos electrónicos en la carpeta de Spam
- Cerrar la sesión de la aplicación Gmail haciendo clic en ‘logout’
Herramientas de prueba de extremo a extremo
Herramienta recomendada:
#1) TestCraft
Recomendamos utilizar una herramienta de automatización de pruebas de extremo a extremo como TestCraft.
TestCraft es una plataforma de automatización de pruebas Selenium sin código. Su revolucionaria tecnología de IA y su exclusivo modelado visual permiten una creación y ejecución de pruebas más rápida a la vez que eliminan la sobrecarga de mantenimiento de las pruebas.
Los probadores crean escenarios de prueba totalmente automatizados sin codificar. Los clientes encuentran errores más rápidamente, liberan con mayor frecuencia, se integran con el enfoque CI/CD y mejoran la calidad general de sus productos digitales. Todo esto está creando una experiencia completa de pruebas de extremo a extremo.
=>
Visita el sitio web de TestCraft
¿Cómo funcionan las pruebas de extremo a extremo?
Para entender un poco más, vamos a descubrir ¿Cómo funciona?
Toma un ejemplo de la industria bancaria. Pocos de nosotros debemos haber probado las acciones. Cuando un titular de una cuenta Demat, compra cualquier acción, un porcentaje particular de una cantidad se debe dar al corredor. Cuando el accionista vende esa acción, ya sea que obtenga ganancias o pérdidas, un porcentaje particular de la cantidad se da de nuevo al corredor. Todas estas operaciones se reflejan y gestionan en las cuentas. Todo el proceso implica la Gestión de Riesgos.
Cuando observamos el ejemplo anterior, teniendo en cuenta la prueba End-to-End, encontraremos que todo el proceso incluye múltiples números así como diferentes niveles de transacciones. Todo el proceso implica muchos sistemas que pueden ser difíciles de probar.
Métodos de prueba E2E
#1) Prueba horizontal:
Este método se utiliza muy comúnmente. Se produce horizontalmente en el contexto de múltiples aplicaciones. Este método puede ocurrir fácilmente en una sola aplicación ERP (Enterprise Resource Planning). Tomemos el ejemplo de una aplicación basada en la web de un sistema de pedidos en línea. Todo el proceso incluirá las cuentas, el estado del inventario de los productos, así como los detalles de envío.
#2) Prueba vertical:
En este método, todas las transacciones de cualquier aplicación se verifican y evalúan de principio a fin. Cada capa individual de la aplicación se comprueba empezando de arriba a abajo. Tomemos el ejemplo de una aplicación basada en la web que utiliza códigos HTML para llegar a los servidores web. En estos casos, se requiere una API para generar códigos SQL contra la base de datos. Todos estos escenarios informáticos complejos requerirán una validación adecuada y pruebas dedicadas. Por lo tanto, este método es mucho más difícil.
Las ‘Pruebas de Caja Blanca’ así como las ‘Pruebas de Caja Negra’ están asociadas a estas pruebas. O en otras palabras, podemos decir, que es la combinación de los beneficios de las pruebas de caja blanca y las pruebas de caja negra. Dependiendo del tipo de software que se desarrolle, en diferentes niveles, ambas técnicas de prueba, es decir, la prueba de caja blanca y la de caja negra, se utilizan como y cuando sea necesario. Básicamente, la prueba de extremo a extremo realiza un enfoque funcional y arquitectónico para cualquier software o programa para validar las funciones del sistema.
A los probadores les gusta la verificación de extremo a extremo porque escribir los casos de prueba desde la perspectiva del usuario y en un escenario del mundo real, puede evitar los dos errores comunes, es decir, «pasar por alto un error» y «escribir casos de prueba que no verifican los escenarios del mundo real». Esto proporciona a los probadores, una inmensa sensación de logro.
A continuación se enumeran algunas directrices que deben tenerse en cuenta al diseñar los casos de prueba para la realización de este tipo de pruebas:
- Los casos de prueba deben ser diseñados desde la perspectiva del usuario final.
- Deberían centrarse en probar algunas características existentes del sistema.
- Deberían considerarse múltiples escenarios para crear múltiples casos de prueba.
- Deberían crearse diferentes conjuntos de casos de prueba para centrarse en múltiples escenarios del sistema.
- Mantener un control y realizar la verificación del flujo del sistema.
- Aumentar las áreas de cobertura de las pruebas de todos los subsistemas involucrados con el sistema de software.
- Detectar problemas, si los hay, con los subsistemas y así aumentar la productividad de todo el sistema de software.
- Un estudio exhaustivo de los requisitos para realizar estas pruebas.
- Configuración adecuada de los entornos de prueba.
- A thorough study of Hardware and Software requirements.
- Descriptions of all subsystems as well as main software system involved.
- Enlist the roles and responsibilities for all the systems and subsystems involved.
- Testing methods used under this testing as well as standards that are followed, its description.
- Test cases designing as well as tracing requirement matrix.
- Record or save the input and output data for each system.
- Enumerar las características de los sistemas de software y sus subsistemas interconectados.
- Para cualquier función, hacer un seguimiento de las acciones realizadas, así como de los datos de Entrada y Salida.
- Encontrar las relaciones, si las hay, entre las diferentes funciones de los Usuarios.
- Averiguar la naturaleza de las diferentes funciones de los usuarios .es decir, si son independientes o son reutilizables.
- Para todas y cada una de las funciones de usuario, debe prepararse un conjunto de condiciones.
- El tiempo, las condiciones de los datos y otros factores que afectan a las funciones de usuario pueden considerarse como parámetros.
- Para cada escenario, uno o más casos de prueba deben ser creados para probar todas y cada una de las funcionalidades de las funciones del usuario.
- Cada una de las condiciones debe ser alistada como un caso de prueba separado.
Como ejecutamos cualquier caso de prueba, algo similar ocurre con esta prueba. Si los casos de prueba son ‘Pass’, es decir, obtenemos la salida esperada, se dice que el sistema ha pasado con éxito la prueba End to End. Del mismo modo, si el sistema no produce la salida deseada, entonces se requiere una nueva prueba de un caso de prueba teniendo en cuenta las áreas de fracaso.
¿Por qué realizamos pruebas E2E?
En el escenario actual, como también se muestra en el diagrama anterior, un sistema de software moderno comprende su interconexión con múltiples subsistemas. Esto ha hecho que los sistemas de software modernos sean muy complicados.
Estos subsistemas de los que estamos hablando pueden estar dentro de la misma organización o en muchos casos pueden ser de diferentes organizaciones también. Además, estos subsistemas pueden ser algo similares o diferentes del sistema actual. Como resultado, si hay algún fallo o falla en cualquier subsistema, puede afectar negativamente a todo el sistema de Software llevando a su colapso.
Estos grandes riesgos pueden ser evitados y pueden ser controlados por este tipo de pruebas:
A continuación se mencionan las pocas actividades que se incluyen en el proceso de extremo a extremo:
E2E Testing Design Framework
We will look into all the 3 categories one by one:
#1) User Functions: Las siguientes acciones deben realizarse como parte de la construcción de las Funciones de Usuario:
#2) Condiciones: Las siguientes actividades deben realizarse como parte de la construcción de condiciones basadas en las funciones de usuario:
#3) Casos de prueba: Los siguientes factores deben ser considerados para la construcción de casos de prueba:
Métricas involucradas
Pasando a las siguientes actividades importantes o métricas involucradas en esta prueba:
- Estado de la preparación de casos de prueba: Esto puede ser rastreado en forma de un gráfico para representar el progreso de los casos de prueba planificados que están en preparación.
- Seguimiento semanal del progreso de las pruebas: Esto incluye la representación semanal del progreso de la ejecución de los casos de prueba. Puede reflejarse a través de la representación porcentual de los casos aprobados, fallados, ejecutados, no ejecutados, no válidos, etc.
- Informe de estado y detallado de los defectos: El informe de estado debe prepararse diariamente para mostrar el estado de ejecución de los casos de prueba, así como los defectos encontrados y registrados según su gravedad. Semanalmente, se debe calcular el porcentaje de los defectos abiertos y cerrados. Además, en función de la gravedad y la prioridad de los defectos, se debe realizar un seguimiento semanal del estado de los mismos.
- Entorno de pruebas: Esto mantiene un seguimiento de la duración del tiempo del entorno de prueba asignado, así como el tiempo del entorno de prueba realmente utilizado mientras se realiza esta prueba.
Casi hemos visto todos los aspectos de esta prueba. Ahora vamos a diferenciar el «System Testing» y el «End to End testing». Pero antes permítanme darles una idea básica de las «Pruebas del sistema» para que podamos diferenciar fácilmente entre las dos formas de pruebas de software.
Las pruebas del sistema son la forma de prueba que incluye una serie de pruebas diferentes cuyo propósito es realizar la prueba completa del sistema integrado. Las pruebas del sistema son básicamente una forma de pruebas de caja negra en las que el enfoque es el funcionamiento externo de los sistemas de software desde el punto de vista del usuario manteniendo las condiciones del mundo real como consideración.
Las pruebas del sistema implican:
- Probar una aplicación totalmente integrada incluyendo el sistema principal.
- Determinar los componentes que interactúan entre sí y dentro del sistema.
- Verificar la salida deseada sobre la base de la entrada proporcionada.
- Analizar la experiencia del usuario durante el uso de diversos aspectos de la aplicación.
Antes hemos visto la descripción básica de las pruebas del sistema para entenderlo. Ahora, vamos a ver las diferencias entre «System Testing» y «End to End testing».
S.No. | End to End Testing | System Testing |
---|---|---|
1 | Validates both the main Software system as well as all the interconnected Sub-Systems. | As per the specifications provided in Requirement document, it just validates the software system. |
2 | The main emphasis is on verifying the end to end testing process flow. | The main emphasis is on verifying and checking features and functionalities of the software system. |
3 | While performing testing, all the interfaces including the backend processes of the software system is taken under consideration. | While performing testing, only the functional and the non- functional areas and their features are considered for testing. |
4 | End to End testing is executed /performed after the completion of System testing of any software system. | System testing is basically performed after the completion of integration testing of software system. |
5 | Manual testing is mostly preferred for performing end to End testing as these form of testing involves testing of external interfaces also which can be very difficult to automate at times. And will make the whole process very complex. | Both manual and automation testing can be performed as a part of System testing. |
Conclusion
Hope you learned various aspects of End to End tests like its processes, metrics, and the difference between System testing and End to End testing.
Para cualquier lanzamiento comercial del software, la verificación End to End desempeña un papel importante, ya que prueba toda la aplicación en un entorno que imita exactamente a los usuarios del mundo real, como la comunicación de red, la interacción con la base de datos, etc.
La mayoría de las veces, la prueba End to End se realiza manualmente, ya que el coste de la automatización de dichos casos de prueba es demasiado alto para ser asumido por cada organización. Esto no sólo es beneficioso para la validación del sistema, sino que también puede considerarse útil para probar la integración externa.
Háganos saber si tiene preguntas sobre la prueba de extremo a extremo.
Última actualización: 18 de febrero de 2021