Factorización en Agile Testing

Factorizar en el contexto del testing ágil implica identificar y extraer similitudes en los pasos de los casos de prueba, creando sub-casos reutilizables que simplifican el mantenimiento y reducen los costos. Esta técnica permite gestionar eficientemente la complejidad de los casos de prueba y optimizar los esfuerzos de testing. A continuación, se detalla el concepto y se proporciona un ejemplo práctico para ilustrar su aplicación.

Pasos para Factorizar

Ejercicio: Compra de Tickets en Cine XXX

Identificación de Factores Comunes:

  • Login: Paso común en casi todos los casos de prueba donde un usuario necesita autenticarse.
  • Selección del Complejo, Cine, Día y Hora: Común para cualquier tipo de reserva o compra de entradas.
  • Seleccionar Entradas: Paso necesario para todas las transacciones relacionadas con la compra de entradas.
  • Seleccionar Butacas: Especificar las butacas para la película.
  • Combos: Elección de combos (bebidas, palomitas, etc.).
  • Pagos: Proceso de realizar el pago.
  • Confirmación: Confirmación de la compra.

Crear Casos de Prueba Funcionales (CPs):

  • CP1: Usuario se loguea, selecciona película, elige butacas y realiza el pago.
  • CP2: Usuario se loguea, selecciona película, elige combos y realiza el pago.
  • CP3: Usuario se loguea, selecciona película, elige butacas y combos, y realiza el pago.

Crear Casos de Prueba Funcionales Válidos y No Válidos:

  • CPV1: Usuario se loguea con credenciales válidas y completa una compra.
  • CPNV1: Usuario intenta loguearse con credenciales inválidas.
  • CPV2: Usuario selecciona película, butacas y realiza un pago con tarjeta válida.
  • CPNV2: Usuario intenta pagar con tarjeta inválida.

Ejemplo Práctico de Factorización

Supongamos que estamos diseñando casos de prueba para el sistema de compra de tickets de Cine Hoyts. Al analizar los pasos comunes, podemos descomponer los casos en sub-casos reutilizables:

  • Sub-Caso: Login
    • Descripción: Usuario ingresa sus credenciales.
    • Pasos:
      • Navegar a la página de login.
      • Ingresar usuario y contraseña.
      • Hacer clic en «Ingresar».
  • Sub-Caso: Selección de Película
    • Descripción: Usuario selecciona el complejo, cine, día y hora.
    • Pasos:
      • Navegar a la página de selección.
      • Elegir el complejo.
      • Seleccionar la película, día y hora.
  • Sub-Caso: Selección de Entradas y Butacas
    • Descripción: Usuario elige el número de entradas y las butacas.
    • Pasos:
      • Seleccionar el número de entradas.
      • Elegir las butacas en el mapa de asientos.
  • Sub-Caso: Pago y Confirmación
    • Descripción: Usuario realiza el pago y recibe la confirmación.
    • Pasos:
      • Ingresar datos de la tarjeta de crédito.
      • Confirmar el pago.
      • Recibir el correo de confirmación.

Estos sub-casos pueden combinarse para formar casos de prueba completos según sea necesario. Por ejemplo:

  • CP Completo 1:
    • Combina los sub-casos de Login, Selección de Película, Selección de Entradas y Butacas, y Pago y Confirmación para simular una compra completa.

Pasos para Versionado de Software

Antes de ejecutar los casos de prueba, es crucial gestionar adecuadamente las versiones del software para evitar incongruencias y asegurar la estabilidad del sistema.

  • Confirmar Versión Disponible:
    • Verificar que la versión del software a probar esté disponible y sea la correcta.
  • Trazabilidad:
    • Asegurar que cada caso de prueba esté vinculado a los requisitos y funcionalidades correspondientes.
  • Verificar Estabilidad:
    • Asegurar que la versión del software sea estable y que el entorno de pruebas esté configurado correctamente.
  • Configuración y Parametrización:
    • Confirmar que todas las configuraciones y parámetros estén establecidos correctamente para evitar fallos durante las pruebas.
  • Evitar Incongruencias:
    • Asegurarse de que no haya paquetes antiguos o versiones desactualizadas en el entorno de pruebas.

Conclusión

La factoración en agile testing es una técnica valiosa que permite optimizar los esfuerzos de prueba y mantener un bajo costo de mantenimiento al reutilizar pasos comunes en diferentes casos de prueba. Al seguir una metodología estructurada y asegurar la correcta gestión de las versiones de software, se pueden realizar pruebas más eficientes y efectivas, mejorando la calidad del producto final.

Referencias

ISTQB Glossary
Agile Testing Practices

Gus Terrera

Apasionado por el agile testing y la ia.