Ir al contenido
wannacode

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

1. La fila de «R-4: Un código tiene fecha de caducidad» está vacía: ni una marca. ¿Qué significa?
2. La columna de «T-9: Pagar con tarjeta: el pedido pasa a pagado» está vacía. ¿Cuál es el mejor paso siguiente?
3. La prueba «Una camiseta de 20,00 € y unos vaqueros rebajados de 40,00 € con OTONO10: el descuento es de 2,00 €» tiene una marca en dos filas. ¿Es un error?
4. La prueba «Un carrito de 120,00 €: el envío es gratis» falla. Según la matriz, ¿qué requisito se ve afectado?

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.

RequisitosT-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
Comprueba00000

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.

RequisitosT-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
Comprueba0000000
¿Qué tests son redundantes (repiten otro test)?

Test

Ponte a prueba

1. ¿Qué es la trazabilidad?
2. Seis requisitos, cinco de ellos tienen al menos una prueba. ¿Cuál es la cobertura de requisitos?
3. Dos pruebas tienen marcas exactamente en las mismas filas. ¿Qué es lo más probable?
4. ¿Cuál de estas cosas NO puede mostrar la matriz?
5. El defecto «El envío es de 4,90 € para un pedido de exactamente 50,00 €» está enlazado con la prueba que lo cazó y con el requisito. ¿Por qué?

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