Lo que la cobertura no dice
En resumen: La cobertura de requisitos cuenta cuántos requisitos tienen al menos una prueba. No dice si la prueba caza el error, si comprueba todo el requisito, qué pasa cuando se encuentran dos reglas, ni lo que no se ha escrito en absoluto. Por eso junto al número siempre se pregunta «qué no se ha comprobado, y por qué».
Problema
Cien por cien, y aun así mal
El informe antes de poner en marcha la campaña de otoño está en verde: todos los requisitos están cubiertos, todas las pruebas pasan.
Una semana después atención al cliente recibe una queja. Un carrito de 52,00 € con OTONO10, 46,80 € después del descuento. El carrito dice «Envío: gratis», pero al pagar se le cobran 4,90 € al cliente. El carrito cuenta el umbral antes del descuento, y el pago después.
El envío tiene pruebas. El código promocional tiene pruebas. Pero ninguna prueba ejecuta las dos reglas juntas. Y cuando QA pregunta qué respuesta es la correcta, resulta que nadie lo ha decidido: ¿el umbral de 50 € se cuenta antes del descuento o después?
La idea
Qué cuenta el número
La cobertura de requisitos cuenta los requisitos que tienen al menos una prueba. Cuatro de cuatro: 100 %. Nada más.
El número no dice:
- Si la prueba caza el error. Una prueba con 120,00 € cubre «gratis desde 50,00 €», pero no caza «más de 50 €». La marca es real, la prueba es débil.
- Si comprueba todo el requisito. «El código da un 10 % de descuento y no se aplica a los productos rebajados» son dos reglas en una frase. Una prueba del 10 %, y la fila está cubierta.
- Qué pasa entre requisitos. La matriz tiene una fila por regla, no por encuentro de dos reglas. El carrito de 52,00 € con un código no está en ninguna fila.
- Lo que no se ha escrito. Hay filas solo para los requisitos de la lista. Un requisito que nadie escribió no hace una fila vacía. Simplemente falta.
Estos son los límites de la cobertura. La cobertura es útil. El cero es una alarma, y una fila vacía es un hueco real. Pero el 100 % solo dice que no hay filas vacías.
Más precisamente, para curiosos
La cobertura se mide siempre contra algo: requisitos, clases de entrada, límites, transiciones, ramas del código. Los verás en el módulo «Técnicas de diseño de pruebas». El 100 % según un criterio significa que todos sus elementos se han ejercitado al menos una vez. No significa que no haya defectos: las pruebas muestran que hay defectos, no que no los haya. Es el primero de los siete principios de ISTQB CTFL v4.0.1 (sección 1.3).
ISTQB CTFL v4.0.1 (sección 1.4.4) cita la evaluación de la cobertura como uno de los beneficios de la trazabilidad. La cobertura responde a la pregunta «¿hay una prueba para cada requisito?». Lo bien que comprueba la prueba es otra pregunta, con sus propias medidas.
Pruébalo
¿Dónde miente el número?
Pruébalo
Cien por cien en los descuentos
Marca los vínculos, después los dos pares de pruebas que comprueban lo mismo. Mira cuánta es la cobertura y qué sigue sin comprobarse.
Tests
- T-1: Un carrito de 30,00 €: el envío cuesta 4,90 €.
- T-2: Un carrito de 120,00 €: el envío es gratis.
- T-3: Un carrito de 25,00 €: el envío cuesta 4,90 €.
- T-4: Una camiseta de 20,00 € con OTONO10: 18,00 €.
- T-5: Un cliente fiel, unos vaqueros rebajados de 40,00 €: 38,00 €.
- T-6: Un cliente fiel con OTONO10, una camiseta de 20,00 €: 18,00 €, no 17,00 €.
- T-7: Una camiseta de 30,00 € con OTONO10: 27,00 €.
Pulsa la celda donde el test comprueba el requisito; otra vez para quitar la relación. Las flechas se mueven entre las celdas, Espacio o Enter marca.
| Requisitos | T-1: Un carrito de 30,00 €: el envío cuesta 4,90 €. | T-2: Un carrito de 120,00 €: el envío es gratis. | T-3: Un carrito de 25,00 €: el envío cuesta 4,90 €. | T-4: Una camiseta de 20,00 € con OTONO10: 18,00 €. | T-5: Un cliente fiel, unos vaqueros rebajados de 40,00 €: 38,00 €. | T-6: Un cliente fiel con OTONO10, una camiseta de 20,00 €: 18,00 €, no 17,00 €. | T-7: Una camiseta de 30,00 € con OTONO10: 27,00 €. | Cubierto por |
|---|---|---|---|---|---|---|---|---|
| R-1 El envío es gratis desde 50,00 € inclusive, y en otro caso cuesta 4,90 €. | 0 | |||||||
| R-2 Un código promocional da un 10 % de descuento y no se aplica a los productos rebajados. | 0 | |||||||
| R-3 Un cliente fiel recibe un 5 % de descuento, también en productos rebajados. | 0 | |||||||
| R-4 Los descuentos no se suman: se aplica el mayor. | 0 | |||||||
| Comprueba | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
La matriz de referencia
- R-1: T-1, T-2, T-3
- R-2: T-4, T-6, T-7
- R-3: T-5
- R-4: T-6
Redundantes: T-1 / T-3 (30 € y 25 € están en el mismo grupo: menos de 50 €.); T-4 / T-7 (una camiseta de 20 € y una de 30 € con el código son el mismo caso: un producto sin rebaja, con un 10 % de descuento.)
Cada requisito está cubierto, cada prueba pertenece a un requisito. Y aun así:
- Ninguna prueba está en 50,00 €. Si el umbral pasa a ser «más de 50 €», todo sigue en verde.
- R-2 está cubierto por tres pruebas, pero todas tratan del 10 %. No se ha comprobado el código en un producto rebajado.
- T-6 no está enlazado con R-3: sale 18,00 € aunque la fidelidad no funcione en absoluto. Si lo enlazas, la cobertura no cambia, pero la matriz empieza a mentir.
- El carrito de 52,00 € con un código no está en ninguna parte, porque la regla para él todavía no se ha decidido.
Dos de las siete pruebas repiten a otras. Sin ellas la cobertura sigue siendo del 100 %, y los huecos son los mismos.
La idea
El error está entre ellas
La mayoría de las reglas de la tienda son sencillas por sí solas. El envío es una comparación. El código promocional es un 10 %. Se complica cuando se encuentran:
- el umbral del envío y el descuento: ¿antes o después?
- el código y una devolución: si se devuelve el pedido pagado con el código, ¿se puede volver a usar el código?
- el código y la fidelidad en un producto rebajado: el código no se aplica, la fidelidad sí, así que 5 %. La respuesta se deduce de las reglas, pero no hay prueba para ella.
Las dos primeras preguntas no tienen fila en la matriz, porque no tienen requisito. La tercera tiene respuesta, pero está entre dos filas. Esto es también lo más valioso que puedes hacer con la matriz: mirar pares de filas y preguntar «¿y cuando se aplican las dos?». A veces la respuesta es una prueba nueva. Más a menudo es una pregunta abierta para el dueño, y después un requisito nuevo.
Así que el lugar vacío de la matriz no es solo una fila vacía. A veces está entre dos llenas.
La idea
Cuando el número se convierte en objetivo
Si la dirección pide «100 % de cobertura para el viernes» y mira solo eso, lo conseguirá. Las marcas se pondrán con prisa, algunas donde la prueba solo pasa cerca del requisito. El número crece, y la comprobación no.
Por eso en el informe junto a la cobertura están otras preguntas:
- ¿Qué no está cubierto, y por qué? Una lista, no un porcentaje.
- ¿Qué importancia tiene la parte sin cubrir? El color de un botón, o el pago.
- ¿Las pruebas están en los límites? 49,99 y 50,00 €, el día 14 y el día 15.
- ¿Qué dicen los defectos? Si después del lanzamiento los errores vienen de un solo sitio, las pruebas de ahí son débiles, diga lo que diga el número.
La calidad de las pruebas se mide de otra manera: se ejecutan las pruebas contra una versión del sistema con un error real, y se ve si fallan. Más adelante en el curso lo harás con cada tabla y cada escenario tuyo.
Más precisamente, para curiosos
La observación de que una medida que se convierte en objetivo deja de ser una buena medida se conoce como ley de Goodhart (por el economista Charles Goodhart). La formulación en esta forma vino después, de la antropóloga Marilyn Strathern.
Ejercicio
La prueba que falta
1. Qué añadir. Las matrices están completas. ¿Qué prueba aporta algo nuevo?
Test
Ponte a prueba
Lecciones relacionadas
Sección «Lecciones relacionadas»- Se basa en: El buen requisito · Criterios de aceptación · La matriz de trazabilidad · Cuando un requisito cambia
- Ejercicios sobre el tema: Trazabilidad