Ir al contenido
wannacode

Tipos de prueba

En resumen: El nivel dice dónde pruebas, el tipo dice qué y cómo. Las pruebas funcionales comprueban lo que hace el sistema, las no funcionales qué tan bien. La caja negra mira el comportamiento, la caja blanca la estructura. Después de una corrección ejecutas una prueba de confirmación del defecto y pruebas de regresión de todo lo que lo rodea.

Problema

Arreglaron una cosa y rompieron otra

Un cliente se queja: un pedido de exactamente 50,00 € paga envío. El programador corrige la comparación, el tester prueba 50,00 € y ve 0,00 €. Corregido.

Al día siguiente contabilidad ve que ahora el código promocional se descuenta dos veces. La corrección cambió la función del total, que el código promocional también usa. Nadie ejecutó las pruebas del código promocional, porque «tocamos el envío».

La idea

El tipo es qué y cómo

La lección anterior decía dónde pruebas: componente, integración, sistema, aceptación. El tipo de prueba dice qué compruebas y de dónde salen los casos de prueba:

  • Pruebas funcionales: lo que hace el sistema. La tarifa con 50,00 €, el rechazo de un carrito vacío.
  • Pruebas no funcionales: qué tan bien. Velocidad, accesibilidad, seguridad, fiabilidad: las ocho características de la ISO/IEC 25010 además de la adecuación funcional.
  • Caja negra: los casos de prueba salen de la especificación y del comportamiento. No se mira el código.
  • Caja blanca: los casos de prueba salen de la estructura: las ramas de la función, los caminos del proceso.

Los tipos se combinan con los niveles. Una prueba funcional de caja negra en el nivel de sistema, una prueba no funcional en el nivel de componente: es posible cualquier pareja.

Más precisamente, para curiosos

En ISTQB CTFL v4.0.1 los tipos están en la sección 2.2.2: funcional, no funcional, caja negra y caja blanca. El plan de estudios dice expresamente que cada tipo se puede hacer en cada nivel, con un enfoque distinto. Las técnicas de caja negra y de caja blanca (particiones de equivalencia, límites, cobertura de ramas) están en el módulo de diseño de pruebas.

Pruébalo

¿Qué tipo de prueba?

1. El tester prueba 49,99 €, 50,00 € y 50,01 € y mira la tarifa del envío. No ha abierto el código.
2. El programador ve que la función del envío tiene tres ramas y escribe una prueba para cada una.
3. Se mide qué tan rápido se abre el carrito mientras 200 clientes compran al mismo tiempo.
4. Un cliente con un lector de pantalla recorre todo el camino del pedido solo con el teclado.

La idea

Después de la corrección: dos preguntas

Cuando se corrige un defecto, ejecutas pruebas por dos razones distintas:

  1. Pruebas de confirmación: ¿está corregido el defecto? Ejecutas la prueba que lo mostró, con exactamente los mismos pasos. 50,00 € → 0,00 €.
  2. Pruebas de regresión: ¿rompió la corrección algo que antes funcionaba? Ejecutas las pruebas de todo lo que el cambio puede alcanzar. El total lo usan el código promocional, la fidelidad y el pago. Así que sus pruebas también.

Un error en algo que antes funcionaba se llama regresión. Es el tipo más desagradable, porque nadie mira ahí: «tocamos el envío, no el código promocional».

Más precisamente, para curiosos

Las pruebas de confirmación y de regresión están en la sección 2.2.3 de CTFL. El conjunto de regresión crece con cada versión, así que el plan de estudios recomienda automatizarlo y seleccionar de él con un análisis de impacto: qué partes dependen de la que cambió. La matriz de trazabilidad del módulo de Trazabilidad responde justo a esa pregunta.

Pruébalo

¿Qué ejecutas después de la corrección?

1. Se ha corregido el envío para exactamente 50,00 €. ¿Qué prueba ejecutas primero?
2. La corrección cambia la función del total del carrito. ¿Qué más hay que ejecutar?
3. ¿Por qué las pruebas de regresión son las primeras candidatas a la automatización?

La idea

El sistema que ya funciona

La tienda está en producción. A partir de ahora cada cambio es en un sistema en marcha con clientes y datos reales. Probar en él se llama pruebas de mantenimiento. Hay tres desencadenantes:

  • modificación: una corrección, una regla nueva (el umbral pasa a ser 60 €), una biblioteca actualizada, una versión nueva del sistema operativo;
  • migración: una plataforma nueva, un servidor nuevo, pasar los datos de la tienda vieja;
  • retirada: la vieja aplicación se da de baja, y los datos deben seguir siendo legibles durante años.

Hasta dónde pruebas depende de dos preguntas: qué tan grande es el riesgo del cambio y qué tan grande es el sistema que lo rodea. Por eso el mantenimiento siempre empieza con un análisis de impacto: ¿qué toca el cambio?

Más precisamente, para curiosos

Las pruebas de mantenimiento están en la sección 2.3 de CTFL. Para la migración el plan de estudios menciona también comprobar los datos convertidos (conversión de datos), y para la retirada probar el archivo y los procedimientos de restauración, cuando los datos tienen que conservarse mucho tiempo.

Ejercicio

Tipos y desencadenantes

1. ¿Son pruebas de mantenimiento? Para cada cambio en la tienda en marcha, di si es una razón para probar, y por qué.

1. La tienda pasa de su propio servidor a la nube. El código no cambia.
2. Se da de baja la vieja aplicación móvil. Sus pedidos deben conservarse 5 años para la contabilidad.
3. El umbral del envío gratis pasa a ser 60 €.

Test

Ponte a prueba

1. ¿Cuál es la diferencia entre un nivel de prueba y un tipo de prueba?
2. ¿Qué es una regresión?
3. Las pruebas de caja negra son…
4. ¿Cuál NO es un desencadenante de las pruebas de mantenimiento?

Creado por Ivo Gergov como parte de la campaña de Evo Tech por una educación accesible en programación ·