Prueba de extremo a extremo
End To End Testing es un método de prueba de software que valida todo el software de principio a fin junto con su integración con interfaces externas. El propósito de las pruebas de extremo a extremo es probar todo el software en busca de dependencias, integridad de datos y comunicación con otros sistemas, interfaces y bases de datos para ejercer una producción completa como escenario.
Junto con el sistema de software, también valida el procesamiento por lotes / datos de otros sistemas ascendentes / descendentes. De ahí el nombre "de extremo a extremo" . Las pruebas de extremo a extremo generalmente se ejecutan después de las pruebas funcionales y del sistema. Utiliza la producción real como datos y entorno de prueba para simular configuraciones en tiempo real. Las pruebas de extremo a extremo también se denominan pruebas en cadena .
¿Por qué realizar pruebas de extremo a extremo?
End To End Testing verifica el flujo completo del sistema y aumenta la confianza al detectar problemas y aumentar la cobertura de prueba de los subsistemas. Los sistemas de software modernos son complejos y están interconectados con múltiples subsistemas que pueden diferir de los sistemas actuales. Todo el sistema puede colapsar por la falla de cualquier subsistema que sea un riesgo importante que puede evitarse mediante pruebas de extremo a extremo.
Proceso de prueba de extremo a extremo:
El siguiente diagrama ofrece una descripción general del proceso de prueba de un extremo a otro.
Las principales actividades involucradas en las pruebas de extremo a extremo son:
- Estudio de los requisitos de prueba de un extremo a otro
- Configuración del entorno de prueba y requisitos de hardware / software
- Describe todos los procesos de los sistemas y sus subsistemas.
- Descripción de roles y responsabilidades para todos los sistemas
- Metodología y estándares de prueba
- Seguimiento de requisitos de extremo a extremo y diseño de casos de prueba
- Datos de entrada y salida para cada sistema
¿Cómo crear casos de prueba de un extremo a otro?
El marco de diseño de pruebas de extremo a extremo consta de tres partes
- Construir funciones de usuario
- Condiciones de construcción
- Crear casos de prueba
Desarrollar funciones de usuario
Las siguientes actividades deben realizarse como parte de las funciones de usuario de compilación:
- Enumere las características del sistema y sus componentes interconectados.
- Enumere los datos de entrada, la acción y los datos de salida para cada característica o función.
- Identificar las relaciones entre las funciones.
- Determine si la función puede ser reutilizable o independiente
Por ejemplo -Considere un escenario en el que inicie sesión en su cuenta bancaria y transferir dinero a otra cuenta de otro banco (3 ª parte subsistema)
- Inicie sesión en el sistema bancario
- Verifique el monto del saldo en la cuenta
- Transferir una cierta cantidad de su cuenta a otra cuenta bancaria (3 ª parte subsistema)
- Verifique el último saldo de su cuenta
- Cerrar sesión de la aplicación
Construir condiciones basadas en la función del usuario
Las siguientes actividades se realizan como parte de las condiciones de construcción:
- Construyendo un conjunto de condiciones para cada función de usuario definida
- Las condiciones incluyen secuencia, tiempo y condiciones de datos.
Por ejemplo -Comprobación de más condiciones como
Página de inicio de sesión
- Nombre de usuario y contraseña inválidos
- Verificando con nombre de usuario y contraseña válidos
- Comprobación de la seguridad de la contraseña
- Comprobación de mensajes de error
Balance de Cuenta
- Verifique el saldo actual después de 24 horas. (Si la transferencia se envía a otro banco)
- Verifique el mensaje de error si el monto de la transferencia es mayor que el monto del saldo actual
Cree un escenario de prueba
Creación del escenario de prueba para la función de usuario definida
En este caso,
- Iniciar sesión en el sistema
- Verificación del monto del saldo bancario
- Transferir el monto del saldo bancario
Cree varios casos de prueba
Cree uno o más casos de prueba para cada escenario definido. Los casos de prueba pueden incluir cada condición como un solo caso de prueba.
Métricas para las pruebas de extremo a extremo:
A continuación se muestran algunas de las muchas métricas que se utilizan para las pruebas de extremo a extremo.
- Estado de preparación del caso de prueba: proporciona el progreso de la preparación del caso de prueba contra
- Progreso de la prueba semanal: proporciona detalles semanales del porcentaje de finalización de la prueba. Falló, no se ejecutó y ejecutó las pruebas de ejecución planificadas.
- Estado y detalles de los defectos: proporciona el porcentaje de defectos abiertos y cerrados por semana. Además, la distribución de defectos semanal se basa en la gravedad y la prioridad
- Disponibilidad del entorno: número total de horas "activas" / número total de horas programadas por día para las pruebas
Prueba de extremo a extremo frente a prueba del sistema
Prueba de extremo a extremo | Prueba del sistema |
---|---|
Valida el sistema de software así como los subsistemas interconectados | Valida solo el sistema de software según las especificaciones de requisitos. |
Comprueba el flujo de proceso completo de principio a fin. | Comprueba las funciones y características del sistema. |
Todas las interfaces y los sistemas backend se considerarán para la prueba. | Las pruebas funcionales y no funcionales se considerarán para las pruebas. |
Se ejecuta una vez que se completa la prueba del sistema. | Se ejecuta después de las pruebas de integración. |
Las pruebas de extremo a extremo implican verificar interfaces externas que pueden ser complejas de automatizar. Por lo tanto, se prefiere la prueba manual. | Tanto el Manual como la Automatización se pueden realizar para las pruebas del sistema. |
Conclusión
En ingeniería de software, las pruebas de extremo a extremo son el proceso que verifica un sistema de software junto con sus subsistemas. El mayor desafío en esta prueba es tener suficiente conocimiento de todo el sistema, así como de un subsistema interconectado.