La matriz de trazabilidad
En resumen: La trazabilidad es el vínculo entre requisito, prueba y defecto, en los dos sentidos. La matriz es una tabla: los requisitos son filas, las pruebas son columnas, y una marca dice «esta prueba comprueba este requisito». Una fila vacía es un requisito sin cubrir, una columna vacía es una prueba sin requisito, y dos pruebas con las mismas marcas suelen comprobar lo mismo.
Problema
¿Quién prueba la caducidad del código?
Dos semanas antes de la campaña de otoño, marketing pregunta: «El código OTONO10 caduca el 31 de octubre. ¿Alguien ha comprobado que no funciona el 1 de noviembre?».
QA tiene 40 pruebas de los códigos promocionales. ¿Cuál comprueba la caducidad? Alguien abre la carpeta y empieza a leer. Una hora después la respuesta es «probablemente ninguna». Cinco pruebas comprueban el 10 %, tres los productos rebajados, y no hay ni una de la caducidad.
Las pruebas estaban, pero nadie sabía decir qué cubren.
La idea
Trazabilidad
Cada requisito debería tener al menos una prueba que lo compruebe. Cada prueba debería tener una razón, es decir, un requisito. Y cada defecto es un fallo de alguna prueba contra algún requisito.
El vínculo entre estas tres cosas se llama trazabilidad. Se sigue en los dos sentidos:
- Hacia delante: del requisito a las pruebas. Pregunta «¿se ha comprobado esto?». Así marketing habría tenido una respuesta en un minuto.
- Hacia atrás: de la prueba o del defecto al requisito. Pregunta «¿por qué existe esta prueba?» y «¿qué regla rompe este defecto, y qué importancia tiene?».
El requisito «Un código tiene fecha de caducidad» tiene un número, R-4. La prueba tiene un número, T-12. El defecto tiene un número, D-31. La trazabilidad es el registro de qué número está enlazado con cuál.
Más precisamente, para curiosos
ISTQB CTFL v4.0.1 (sección 1.4.4) llama a esto trazabilidad entre la base de pruebas (los requisitos, historias, criterios) y el producto de pruebas (testware: las pruebas, los resultados, los defectos). Según el temario, una buena trazabilidad permite evaluar la cobertura, apoya el análisis de impacto cuando las cosas cambian, hace más comprensibles los informes y facilita las auditorías.
En el BABOK v3 de IIBA, el rastreo es una tarea del área de conocimiento Requirements Life Cycle Management: Trace Requirements. Allí los vínculos están también entre los propios requisitos: cuál se derivó de cuál (derive), cuál depende de cuál (depends), qué solución satisface qué requisito (satisfy) y qué prueba lo confirma (validate). Aquí miramos sobre todo el último.
IREB CPRE también trata la trazabilidad en su capítulo sobre la gestión de requisitos: hacia atrás hasta la fuente (quién lo pidió y por qué) y hacia delante hasta lo que se sigue de él (diseño, código, pruebas).
La idea
La matriz
El registro más sencillo es una tabla. Los requisitos son filas, las pruebas son columnas, y una marca significa «esta prueba comprueba este requisito». Esta es la matriz de trazabilidad.
| T-1 | T-2 | T-3 | T-4 | |
|---|---|---|---|---|
| R-1 10 % de descuento | ✓ | ✓ | ||
| R-2 no para productos rebajados | ✓ | |||
| R-3 un pedido pagado | ✓ | |||
| R-4 caducidad |
- T-1: una camiseta de 20,00 € con OTONO10, 18,00 €.
- T-2: una camiseta de 20,00 € y unos vaqueros rebajados de 40,00 € con OTONO10, el descuento es de 2,00 €.
- T-3: un segundo intento con el mismo código, «El código ya se ha usado».
- T-4: un cliente fiel, una camiseta de 20,00 €, 19,00 €.
La tabla se lee en segundos. T-2 comprueba dos requisitos: es normal. La fila de R-4 está vacía. La columna de T-4 también. Estos son los dos huecos que la matriz muestra enseguida.
Los defectos se enlazan con los mismos números: «D-31: se acepta un código caducado, R-4». En el trabajo esta tabla vive en la herramienta de gestión de pruebas o en una hoja de cálculo normal. La idea es la misma.
La idea
Qué muestra la matriz
Tres cosas se ven de un vistazo:
- Un requisito sin cubrir: una fila vacía. Nada comprueba la regla. Si la rompes, no falla ninguna prueba.
- Una prueba sin requisito: una columna vacía. O falta el requisito en la lista (la tienda tiene fidelidad, pero esta lista no), o la prueba comprueba algo que nadie pidió. En cualquier caso, alguien tiene que decidir.
- Cobertura duplicada: dos pruebas con las mismas marcas que comprueban lo mismo. «Un carrito de 35,00 €» y «Un carrito de 20,00 €» siguen la misma regla y dan la misma respuesta. Una de ellas no aporta nada nuevo, y aun así se mantiene como la otra.
Cuidado con los duplicados: las marcas idénticas son solo una pista. «Un carrito de 49,99 €» está en la misma fila que «Un carrito de 20,00 €», pero no es un duplicado. 49,99 € está justo por debajo del límite, y ahí viven los errores.
La proporción de requisitos con al menos una prueba es la cobertura de requisitos. Cuatro requisitos, tres con prueba: 75 %. En la tercera lección del módulo verás por qué el 100 % no significa «bien comprobado».
Pruébalo
Lee la matriz
Pruébalo
La matriz del código promocional
Marca qué prueba comprueba qué requisito. Después mira qué ha quedado sin vínculo.
Tests
- T-1: Una camiseta de 20,00 € con OTONO10: 18,00 €.
- T-2: Una camiseta de 20,00 € y unos vaqueros rebajados de 40,00 € con OTONO10: el descuento es de 2,00 €.
- T-3: María ha pagado un pedido con OTONO10. En un pedido nuevo introduce OTONO10: «El código ya se ha usado».
- T-4: Un cliente fiel, una camiseta de 20,00 €: 19,00 €.
- T-5: María ha introducido OTONO10 pero no ha pagado. En un pedido nuevo el código funciona.
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: Una camiseta de 20,00 € con OTONO10: 18,00 €. | T-2: Una camiseta de 20,00 € y unos vaqueros rebajados de 40,00 € con OTONO10: el descuento es de 2,00 €. | T-3: María ha pagado un pedido con OTONO10. En un pedido nuevo introduce OTONO10: «El código ya se ha usado». | T-4: Un cliente fiel, una camiseta de 20,00 €: 19,00 €. | T-5: María ha introducido OTONO10 pero no ha pagado. En un pedido nuevo el código funciona. | Cubierto por |
|---|---|---|---|---|---|---|
| R-1 Un código promocional da un 10 % de descuento. | 0 | |||||
| R-2 Un código promocional no se aplica a los productos rebajados. | 0 | |||||
| R-3 Un código se puede usar en un pedido pagado. Un segundo intento: «El código ya se ha usado». | 0 | |||||
| R-4 Un código tiene fecha de caducidad. Después de ella: «El código ha caducado». | 0 | |||||
| Comprueba | 0 | 0 | 0 | 0 | 0 |
La matriz de referencia
- R-1: T-1, T-2
- R-2: T-2
- R-3: T-3, T-5
- R-4: sin cubrir
- T-4: sin requisito
T-2 comprueba dos requisitos: el 10 % de la camiseta y que los vaqueros rebajados no reciben el descuento del código. La caducidad (R-4) no tiene prueba: ese es el hueco por el que pregunta marketing. Y T-4 trata de la fidelidad, que no está en esta lista. Alguien tiene que decidir: ¿se añade un requisito, o la prueba está en la carpeta equivocada?
La idea
Quién mantiene la matriz
La matriz vale algo solo si es correcta. Por eso se escribe junto con las pruebas, no al final:
- Un requisito recibe un número cuando entra en la lista.
- Una prueba recibe un número y una marca para su requisito cuando se escribe. Una prueba sin marca es una señal, no un trabajo terminado.
- Un defecto recibe el número de la prueba y del requisito cuando se registra.
Los números tienen que ser estables. Si R-4 pasa a ser R-7 mañana, todos los vínculos se mezclan. Por eso un número no se reutiliza nunca, ni siquiera cuando se quita su requisito.
El analista es responsable de los requisitos y sus números, QA de las pruebas y sus vínculos. Pero la matriz es compartida: el dueño también puede ver en ella qué se ha comprobado.
Ejercicio
La matriz del envío
1. El envío y el carrito. Cinco requisitos, siete pruebas.
Marca los vínculos. Después encuentra las dos pruebas que comprueban lo mismo y marca una de ellas como redundante.
Tests
- T-1: Un carrito de 49,99 €: el envío cuesta 4,90 €.
- T-2: Un carrito de 50,00 €: el envío es gratis.
- T-3: El carrito tiene 9 camisetas. Añadir 2 más se rechaza, se quedan 9.
- T-4: Un carrito de 35,00 €: el envío cuesta 4,90 €.
- T-5: Un carrito sin productos: el pedido se rechaza.
- T-6: Un carrito de 20,00 €: el envío cuesta 4,90 €.
- T-7: Pagar con tarjeta: el pedido pasa a pagado.
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 49,99 €: el envío cuesta 4,90 €. | T-2: Un carrito de 50,00 €: el envío es gratis. | T-3: El carrito tiene 9 camisetas. Añadir 2 más se rechaza, se quedan 9. | T-4: Un carrito de 35,00 €: el envío cuesta 4,90 €. | T-5: Un carrito sin productos: el pedido se rechaza. | T-6: Un carrito de 20,00 €: el envío cuesta 4,90 €. | T-7: Pagar con tarjeta: el pedido pasa a pagado. | Cubierto por |
|---|---|---|---|---|---|---|---|---|
| R-1 El envío es gratis para un pedido desde 50,00 € inclusive. | 0 | |||||||
| R-2 Por debajo de 50,00 € el envío cuesta 4,90 €. | 0 | |||||||
| R-3 Un carrito vacío no se puede pedir. | 0 | |||||||
| R-4 En el carrito hay como mucho 10 unidades de un producto. | 0 | |||||||
| R-5 El cliente ve el coste del envío en el carrito antes de pagar. | 0 | |||||||
| Comprueba | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
La matriz de referencia
- R-1: T-2
- R-2: T-1, T-4, T-6
- R-3: T-5
- R-4: T-3
- R-5: sin cubrir
- T-7: sin requisito
Redundantes: T-4 / T-6 (35 € y 20 € están en el mismo grupo: menos de 50 €, lejos del límite. «T-1» se queda, porque 49,99 € está justo en el límite.)
R-5 (el coste del envío antes de que el cliente pague) no tiene prueba, y T-7 (el pago) no tiene requisito. T-4 y T-6 están en el mismo grupo: menos de 50 €, lejos del límite. T-1 está en la misma fila, pero no es un duplicado, porque 49,99 € está justo en el límite. Si el umbral hubiera pasado a ser «más de 50 €» en lugar de «desde 50 €», T-2 lo cazaría. Si hubiera pasado a ser «desde 49 €», lo cazaría T-1. T-4 y T-6 no cazarían ninguno de los dos.
Test
Ponte a prueba
Lecciones relacionadas
Sección «Lecciones relacionadas»- Se basa en: Tipos de requisitos · El buen requisito · Qué es una historia de usuario · Criterios de aceptación
- Continúa en: Cuando un requisito cambia · Lo que la cobertura no dice · Códigos promocionales: de la solicitud al lanzamiento
- Ejercicios sobre el tema: Trazabilidad