Ir al contenido
wannacode

Defectos y el informe de defecto

En resumen: Un informe de defecto es una carta a alguien que no vio el error. Tiene que poder repetirlo a la primera: pasos cortos, el resultado esperado de la regla y el resultado real del sistema. La gravedad dice cuánto daño hace el defecto, la prioridad cuándo corregirlo; las dos son una valoración y a menudo difieren.

Problema

«El envío no funciona»

El tester escribe en el gestor de defectos: «El envío no funciona. ¡Urgente!». El programador prueba un carrito de 30 € y ve 4,90 €. Prueba con 70 € y ve 0,00 €. Todo bien. Cierra el informe como «no se puede reproducir».

Una semana después un cliente se queja de que pagó envío en un pedido de exactamente 50,00 €. El tester lo vio primero. Pero su informe no daba ni el importe, ni lo que esperaba, ni lo que obtuvo.

La idea

Un informe es una carta a alguien que no estaba allí

Un informe de defecto tiene una sola tarea: que otra persona repita el error a la primera y entienda por qué es un error. Por eso un buen informe tiene:

  • un título que dice el error: «El envío es de 4,90 € para un pedido de exactamente 50,00 €», no «El envío no funciona»;
  • pasos: el camino más corto hasta el error, con los datos exactos. Ni un paso de más;
  • esperado: lo que dice la regla. Envío gratis;
  • real: lo que hizo el sistema. 4,90 €;
  • entorno: versión, navegador, dispositivo, cuando importan;
  • gravedad y prioridad (las siguientes tarjetas);
  • un enlace al requisito y al caso de prueba que lo atrapó.

Hay algo que un informe no contiene: quién tiene la culpa. El defecto está en el producto, no en la persona.

Más precisamente, para curiosos

CTFL v4.0.1, sección 5.5, da el contenido típico de un informe: un identificador único, un título con un resumen breve, la fecha, el autor y la organización, el objeto de prueba y el entorno, el contexto (caso de prueba, actividad, técnica), una descripción del fallo que permita reproducirlo y resolverlo, con pasos, registros y capturas, los resultados esperado y real, gravedad, prioridad, estado y referencias. El plan de estudios da también sus objetivos: información para la corrección, una manera de seguir la calidad del producto e ideas para mejorar el proceso.

La idea

La vida de un defecto

Un informe no termina cuando se escribe. Pasa por varios estados:

  1. Nuevo: lo escribe el tester.
  2. Abierto: en la clasificación inicial (triage) el equipo lo acepta como defecto y le da una prioridad.
  3. En curso: el programador encuentra la causa y lo corrige.
  4. Corregido: la corrección está en la versión para probar.
  5. Verificado: la prueba de confirmación pasa, y también las pruebas de regresión a su alrededor.
  6. Cerrado.

Los desvíos importan igual. Rechazado: no es un defecto, el sistema hace lo que dice la regla (entonces quizá la regla está mal, y es una pregunta para el analista). Duplicado: ya está informado. Aplazado: es un defecto, pero no se corregirá ahora. Reabierto: la prueba de confirmación vuelve a fallar.

Más precisamente, para curiosos

Los nombres de los estados difieren entre equipos y herramientas (Jira, Azure DevOps, GitHub Issues). CTFL no prescribe nombres concretos: lo que importa es que el proceso de defectos esté acordado, y que todos sepan qué significa cada estado y quién lo cambia.

Pruébalo

Ordena el camino

Ordena los estados del defecto desde el informe hasta el cierre.

  1. Verificado: la prueba de confirmación pasa, y también las pruebas de regresión
  2. En curso: el programador encuentra la causa y lo corrige
  3. Nuevo: el tester escribe el informe
  4. Cerrado
  5. Abierto: la clasificación inicial lo acepta como defecto y le da una prioridad
  6. Corregido: la corrección está en la versión para probar

La idea

Gravedad y prioridad no son lo mismo

Las dos se mezclan todo el tiempo:

  • La gravedad es cuánto daño hace el defecto: al cliente, al dinero, a los datos. Normalmente la propone el tester, porque vio el daño. Escala: crítica, alta, media, baja.
  • La prioridad es lo pronto que hay que corregirlo. La decide el negocio o el dueño del producto, porque depende del plan, de los clientes, de la publicidad. Escala: alta, media, baja.

A menudo difieren. Una falta de ortografía en el nombre de la tienda hace poco daño pero se corrige hoy. Un informe anual equivocado hace mucho daño pero faltan 10 meses para la próxima ejecución.

Las dos son una valoración, no un hecho. Dos buenos testers pueden dar una gravedad distinta, y es normal. Lo que importa es que puedas decir por qué.

Pruébalo

¿Gravedad o prioridad?

1. Hay una falta de ortografía en el nombre de la tienda en la página de inicio.
2. El informe anual de contabilidad da un total de descuentos equivocado. Se ejecuta una vez al año, la próxima en 10 meses.
3. Nadie puede pagar con tarjeta.
4. La ayuda del campo de teléfono en la página en español sigue en inglés.

Pruébalo

El primer informe

En las tareas de abajo la tienda no está del todo bien. Cada una tiene un error escondido, puesto a propósito en un sistema por lo demás correcto. En el módulo de Gherkin una versión así, con un error, se llama mutante: tus escenarios lo atraparon si fallaron con ella. Aquí el error ya está atrapado. Sabes más o menos dónde está. Tu tarea es el informe.

Cómo funciona la tarea:

  • armas los pasos con el vocabulario de pasos de la funcionalidad y escribes los valores;
  • Probar ejecuta tus pasos en el sistema con el error y muestra lo que da;
  • eliges esperado (lo que dice la regla) y real (lo que viste);
  • das una gravedad y una prioridad.

La comprobación ejecuta tus pasos en el sistema con el error (el error tiene que verse ahí) y en el correcto (ahí no debe verse). El título se comprueba solo en parte: no puede estar vacío ni ser «no funciona». La gravedad y la prioridad se comparan con el informe modelo, que ves después de tu intento.

Encuentra un importe con el que se vea el error, y escribe el informe.

El error que has atrapado: Envío gratis

con pedidos muy por debajo de 50 €

La regla: El envío es gratis en un pedido desde 50 € (incluidos), si no, cuesta 4,90 €. Un carrito vacío no se puede pedir.

Pasos para reproducirlo

  1. Todavía no hay pasos. Añádelos desde el vocabulario de abajo.

Los pasos vienen del vocabulario de la funcionalidad, como en los escenarios. Los valores se escriben en el propio paso: el importe como 50,00.

Esperado (qué tiene que pasar según la regla)
Obtenido (qué pasa en el sistema con el error)
Gravedad (cuánto daño hace el defecto)
Prioridad (con qué urgencia hay que corregirlo)

La idea

Cómo encontrar los pasos más cortos

Viste el error después de 12 pasos: añadir, quitar, cambiar la cantidad, introducir un código, quitar el código. El programador no debería tener que pasar por todos. Antes de escribir, acótalo:

  • quita un paso y prueba de nuevo. ¿Sigue el error? Entonces el paso no hace falta;
  • cambia un valor cada vez. Con 30 € el error está, con 3 € no: así que está en el total, y sabes más o menos dónde está el límite;
  • anota los datos exactos. No «algún importe» sino 30,00 €. No «unas cuantas unidades» sino 8 y luego 3.

Esa es también la diferencia entre «en mi máquina funciona» y «corregido a la primera».

Ejercicio

Informes de defecto

1. La tarifa del envío. El error está en el precio del envío de pago.

Escribe un informe con el que el error se corrija a la primera.

El error que has atrapado: Envío gratis

en el precio del envío de pago

La regla: El envío es gratis en un pedido desde 50 € (incluidos), si no, cuesta 4,90 €. Un carrito vacío no se puede pedir.

Pasos para reproducirlo

  1. Todavía no hay pasos. Añádelos desde el vocabulario de abajo.

Los pasos vienen del vocabulario de la funcionalidad, como en los escenarios. Los valores se escriben en el propio paso: el importe como 50,00.

Esperado (qué tiene que pasar según la regla)
Obtenido (qué pasa en el sistema con el error)
Gravedad (cuánto daño hace el defecto)
Prioridad (con qué urgencia hay que corregirlo)

2. La unidad número once. El error está en torno al límite superior del carrito.

Escribe un informe con el que el error se corrija a la primera.

El error que has atrapado: Como mucho 10 unidades de un producto

cuando el carrito pasa del límite superior

La regla: En el carrito puede haber como mucho 10 unidades de un producto. Añadir por encima de 10 se rechaza con un mensaje, y el carrito queda igual. Se añade al menos 1 unidad.

Pasos para reproducirlo

  1. Todavía no hay pasos. Añádelos desde el vocabulario de abajo.

Los pasos vienen del vocabulario de la funcionalidad, como en los escenarios. Los valores se escriben en el propio paso: el importe como 50,00.

Esperado (qué tiene que pasar según la regla)
Obtenido (qué pasa en el sistema con el error)
Gravedad (cuánto daño hace el defecto)
Prioridad (con qué urgencia hay que corregirlo)

3. El rechazo que vacía. El error está en lo que queda en el carrito después de un rechazo.

Escribe un informe con el que el error se corrija a la primera.

El error que has atrapado: Como mucho 10 unidades de un producto

en lo que queda en el carrito después de un rechazo

La regla: En el carrito puede haber como mucho 10 unidades de un producto. Añadir por encima de 10 se rechaza con un mensaje, y el carrito queda igual. Se añade al menos 1 unidad.

Pasos para reproducirlo

  1. Todavía no hay pasos. Añádelos desde el vocabulario de abajo.

Los pasos vienen del vocabulario de la funcionalidad, como en los escenarios. Los valores se escriben en el propio paso: el importe como 50,00.

Esperado (qué tiene que pasar según la regla)
Obtenido (qué pasa en el sistema con el error)
Gravedad (cuánto daño hace el defecto)
Prioridad (con qué urgencia hay que corregirlo)

Test

Ponte a prueba

1. ¿Qué tiene que poder hacer la persona que lee el informe?
2. ¿Quién fija la prioridad?
3. «Esperado» en el informe sale de…
4. El programador rechaza el informe con «en mi máquina funciona». ¿Qué faltaba con más probabilidad?
5. ¿Por qué importa la causa raíz de un defecto una vez corregido?

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