what is incremental testing
Con la ayuda de este artículo, voy a cubrir uno de los enfoques de integración más importantes: las pruebas incrementales.
Al final de esta sección, la audiencia tendrá un conocimiento razonable de lo siguiente:
- ¿Qué son las pruebas incrementales?
- Su objetivo
- Metodologias
- Ventajas
- Inconvenientes
Lo que vas a aprender:
- ¿Qué son las pruebas incrementales?
¿Qué son las pruebas incrementales?
La prueba incremental, también conocida como prueba de integración incremental, es uno de los enfoques de la prueba de integración e incorpora sus conceptos fundamentales.
Es como una prueba que combina Módulo e Integración estrategia de prueba .
En esta prueba, probamos cada módulo individualmente en la fase de prueba unitaria, y luego los módulos se integran de forma incremental y se prueban para garantizar una interfaz e interacción fluidas entre los módulos.
En este enfoque, cada módulo se combina de forma incremental, es decir, uno por uno hasta que todos los módulos o componentes se agregan de manera lógica para realizar la aplicación requerida, en lugar de integrar todo el sistema a la vez y luego realizar pruebas en el producto final. Los módulos integrados se prueban como un grupo para garantizar una integración y un flujo de datos exitosos entre los módulos.
Al igual que en las pruebas de integración, el enfoque principal de realizar estas pruebas es verificar la interfaz, los enlaces integrados y el flujo de información entre los módulos. Este proceso se repite hasta que los módulos se combinan y prueban con éxito.
Ejemplo
Comprendamos este concepto con un ejemplo:
El sistema o la aplicación de software consta de los siguientes módulos:
Enfoque de prueba de integración incremental
- Cada módulo, es decir, M1, M2, M3, etc., se prueba individualmente como parte de la prueba unitaria.
- Los módulos se combinan de forma incremental, es decir, uno por uno y se prueban para una interacción exitosa
- En la figura 2, el módulo M1 y el módulo M2 se combinan y prueban
- En la Fig3, el módulo M3 se agrega y se prueba
- En la Fig4, se agrega el Módulo M4 y se realizan pruebas para asegurarse de que todo funcione correctamente en conjunto
- El resto de los módulos también se agregan gradualmente en cada paso y se prueban para una integración exitosa
Figura 2
Fig. 3
El archivo swf no se abre en Chrome
Fig4
Objetivo de la prueba incremental
- Para garantizar que los diferentes módulos funcionen juntos con éxito después de la integración
- Identifique los defectos antes y en cada fase. Esto les da a los desarrolladores una ventaja para identificar dónde está el problema. Como si la prueba después de la integración de M1 y M2 es exitosa pero cuando se agrega M3, la prueba falla; esto ayudará al desarrollador a segregar el problema
- Los problemas se pueden solucionar en la fase inicial sin necesidad de volver a trabajar y a un costo menor
Metodologías de prueba de integración incremental
Antes de comenzar con este tema, me gustaría hacer una breve introducción sobre Stubs y controladores ya que usaremos estos términos con frecuencia.
Los stubs y los controladores son pseudocódigo o código ficticio que se utilizan en Integración o prueba de componentes cuando uno o más módulos no están desarrollados pero son necesarios para probar algún otro módulo.
Talones se utilizan en el enfoque de prueba descendente y se conocen como 'programas llamados'. Los stubs ayudan a simular la interfaz entre los módulos de palanca inferior que no están disponibles o desarrollados.
Conductores se utilizan en el enfoque de prueba ascendente y se conocen como 'programas de llamada'. Los controladores ayudan a simular la interfaz entre los módulos de nivel superior que no están desarrollados ni disponibles.
Una pregunta que se nos puede ocurrir a algunos de nosotros es ¿por qué no esperar hasta que se desarrollen todos los módulos de la aplicación en lugar de usar stub / driver antes de comenzar las pruebas?
La respuesta simple es que aumenta el tiempo de ejecución del proyecto, ya que los probadores estarán inactivos hasta que se desarrollen todos los módulos. Además, esto dificulta el análisis de la raíz del defecto. Este tipo de enfoque de prueba se conoce como prueba de integración Big-Bang.
Ahora que hemos cubierto los talones y los controladores, pasemos a diferentes metodologías de prueba incremental:
# 1) De arriba hacia abajo
Como sugiere su nombre, las pruebas se realizan de arriba a abajo, es decir, desde el módulo central hasta el submódulo. Primero se prueban los módulos que enmarcan la capa superior de aplicación.
Este enfoque sigue el flujo estructural de la aplicación bajo prueba. Los módulos o componentes no disponibles o no desarrollados se sustituyen por stubs.
Entendamos esto con un ejemplo:
- Módulo : Inicio de sesión en el sitio web también conocido como L
- Módulo : Orden también conocida como O
- Resumen del pedido del módulo, también conocido como SO (aún no desarrollado)
- Módulo : Pago también conocido como P
- Módulo de pago en efectivo también conocido como CP
- Módulo de pago de débito / crédito también conocido como DP (aún no desarrollado)
- Módulo de pago de billetera también conocido como WP (aún no desarrollado)
- Módulo: Reporting aka R (aún no desarrollado)
Enfoque de prueba de integración incremental descendente
Se derivarán los siguientes casos de prueba:
qué descargador de videos mp4 es compatible con youtube
Caso de prueba 1: El módulo L y el módulo O se integrarán y probarán
Caso de prueba 2: Los módulos L, O y P se integrarán y probarán
Caso de prueba 3: Los módulos L, O, P y R se integrarán y probarán.
Y así se derivan otros casos de prueba.
Este tipo de prueba en la que todos los módulos de una capa se integran y prueban primero se conoce como 'amplitud primero'. Otra categoría es 'profundidad primero'.
Los siguientes casos de prueba se derivarán para 'profundidad primero':
Caso de prueba 1: El módulo L y el módulo O se integrarán y probarán
Caso de prueba 2: Los módulos L, O y OS se integrarán y probarán
Caso de prueba 3: El módulo L, O, OS, P se integrará y probará
Caso de prueba 4: Los módulos L, O, OS, P, CP se integrarán y probarán
Y así se derivan otros casos de prueba.
Méritos de la metodología descendente
- Exposición temprana de defectos de arquitectura
- Describe el funcionamiento de una aplicación como un todo en las primeras etapas y ayuda en la divulgación temprana de defectos de diseño.
- Los puntos de control principales se prueban temprano
Ventajas de la metodología de arriba hacia abajo
- Los módulos importantes se prueban al final del ciclo
- Es muy difícil escribir condiciones de prueba
- Un stub no es una implementación perfecta de Module relacionado. Simplemente simula el flujo de datos entre dos módulos
# 2) de abajo hacia arriba
En este enfoque, las pruebas se llevan a cabo de abajo hacia arriba, es decir, los módulos en la capa inferior se integran y prueban primero y luego se integran secuencialmente otros módulos a medida que avanzamos. Los módulos no disponibles o no desarrollados son reemplazados por controladores.
Veamos un ejemplo que se menciona a continuación para comprenderlo mejor:
Los módulos Clasificación, Marcas, Porcentaje y Calificación deportiva aún no se han desarrollado, por lo que se sustituirán por el controlador relacionado:
Enfoque de prueba de integración incremental de abajo hacia arriba
Se derivarán los siguientes casos de prueba:
Caso de prueba 1: Prueba unitaria del módulo Práctica y teoría
Caso de prueba 2: Integración y testeo de Módulos Marcas-Teoría-práctica
Caso de prueba 3 : Integración y prueba de Módulos Porcentaje-Marcas-Teoría-Práctica
Caso de prueba 4: Prueba unitaria de grado deportivo del módulo
Caso de prueba 5: Integración y prueba de Módulos Rango-Deportes Grado-Porcentaje-Marcas-Teoría-Práctica
Méritos de la metodología ascendente
- Esta metodología es muy útil para aplicaciones donde se utiliza el modelo de diseño de abajo hacia arriba
- Es más fácil crear condiciones de prueba en un enfoque de abajo hacia arriba
- Comenzar a probar en el nivel inferior de la jerarquía significa probar los módulos críticos o la funcionalidad en una etapa temprana. Esto ayuda en el descubrimiento temprano de errores.
- Los defectos de la interfaz se detectan en una etapa temprana
Deméritos de la metodología ascendente
- Los controladores son más difíciles de escribir que el código auxiliar
- Los defectos de diseño se detectan en la etapa posterior
- En este enfoque, no tenemos una aplicación de trabajo hasta que se compila el último módulo
- El controlador no es una implementación completa del módulo relacionado. Simplemente simula el flujo de datos entre dos módulos.
# 3) Prueba de sándwich
Este enfoque es un híbrido de metodología descendente y ascendente. Los stub y los controladores se utilizan para módulos incompletos o no desarrollados.
Enfoque de prueba
- Se identifica una capa intermedia a partir de la cual se realizan las pruebas ascendentes y descendentes. Esta capa intermedia también se conoce como capa objetivo.
- La capa de destino se identifica según el enfoque heurístico, es decir, seleccione una capa que permita un uso mínimo de stubs y controladores
- Las pruebas de arriba hacia abajo comienzan desde la capa media y avanzan hacia los módulos de nivel inferior. Esta capa debajo de la capa media se conoce como capa inferior
- Las pruebas de abajo hacia arriba también comienzan desde la capa media y avanzan hacia los módulos de la capa superior. Esta capa sobre la capa media se conoce como capa superior.
- Con el uso de stubs y controladores, la interfaz de usuario y las funciones de los módulos de nivel inferior se prueban respectivamente
- Al final, solo queda la capa intermedia para la ejecución de la prueba final
Ejemplo:
Los siguientes casos de prueba se pueden derivar con la estrategia de prueba Sandwich:
Caso de prueba 1: Pruebe A, X, Y y Z individualmente, donde la prueba A se incluye en la prueba de capa superior y la prueba X, Y y Z se incluye en las pruebas de capa inferior
Caso de prueba 2: Prueba A, G, H e I
Caso de prueba 3: Prueba G, X e Y
Caso de prueba 4: Mano de prueba Z
Caso de prueba 5: Prueba A, G, H, I, X, Y y Z
Méritos de la metodología de prueba de sándwich
- Es muy beneficioso para un gran proyecto que tiene varios subproyectos.
- La metodología de prueba de arriba hacia abajo y de abajo hacia arriba se puede ejecutar en paralelo
Deméritos de la metodología de prueba de sándwich
- Antes de la unificación de módulos, los subsistemas y sus interfaces no se prueban a fondo
- Mayor costo debido a la participación de la metodología de prueba de arriba hacia abajo y de abajo hacia arriba
- Este tipo de prueba no se recomienda para un sistema donde los módulos son altamente interdependientes
Conclusión
Las pruebas incrementales se incluyen en las pruebas de integración. En este enfoque de pruebas, las pruebas de integración se realizan en el módulo individual como parte de las pruebas unitarias y en la siguiente fase, los módulos o componentes de la aplicación se integran de forma incremental y las pruebas se realizan en módulos combinados como un grupo.
De las tres metodologías de prueba de integración incremental, la elección de qué metodología elegir depende de la estructura de la aplicación y también de la posición de los módulos de alto riesgo.
Las tres metodologías de pruebas incrementales se incluyen en la categoría horizontal debido a los siguientes aspectos de comportamiento:
- Las tres metodologías se centran en las pruebas de capas
- Todos ellos consideran un diseño estructural o jerárquico
- Todos ellos integran capas de forma incremental
Méritos:
Con este enfoque de prueba, es más fácil identificar los defectos de manera temprana y también ayuda al desarrollador a determinar la causa del problema. Dado que utiliza los conceptos básicos de las pruebas estructuradas, este enfoque de prueba es muy eficaz y preciso.
Deméritos:
Este tipo de enfoque de prueba requiere mucho tiempo debido al uso de códigos auxiliares y controladores. También es repetitivo.
Acerca de autor: Este útil tutorial está escrito por Neha B. Es analista líder de calidad certificada por ISTQB con más de 8 años de experiencia.
Háganos saber si tiene alguna pregunta / sugerencia.
Lectura recomendada
- Mejores herramientas de prueba de software 2021 [Herramientas de automatización de pruebas de control de calidad]
- ¿Qué son las pruebas de componentes o las pruebas de módulos? (Aprenda con ejemplos)
- Descarga del libro electrónico Testing Primer
- Pruebas funcionales versus pruebas no funcionales
- ¿Qué son las pruebas de resistencia en las pruebas de software (ejemplos)?
- Tutorial de pruebas por pares o pruebas de todos los pares con herramientas y ejemplos
- Tipos de pruebas de software: diferentes tipos de pruebas con detalles
- Tutorial de prueba de volumen: ejemplos y herramientas de prueba de volumen