Unidad 8 / 11

Análisis de cobertura de pruebas y pruebas basadas en riesgos: apuntar correctamente con IA

Ganancias:

  • Capacidad para leer métricas como líneas, sucursales y cobertura de condiciones como un mapa, no como una confianza, y comprender que una alta cobertura puede generar pseudoconfianza.
  • Capacidad para colocar el alcance de los requisitos junto al alcance del código y hacer visibles las brechas de trazabilidad con inteligencia artificial.
  • Capacidad para calificar características con la fórmula riesgo = probabilidad × impacto, dirigir el esfuerzo de prueba limitado al riesgo más alto y documentar las situaciones que están fuera de alcance de manera deliberada.

No se pueden probar todos los programas para siempre; El tiempo y los recursos son limitados. Entonces, la verdadera pregunta es: ¿dónde poner el esfuerzo limitado de prueba? Dos conceptos responden a esta pregunta. La cobertura de la prueba, una métrica que mide qué parte del código o los requisitos se ven afectados por las pruebas, representa lo que se está probando. Las pruebas basadas en riesgos (el enfoque de determinar la prioridad de las pruebas según la probabilidad de deterioro de un área y el daño que causará cuando se deteriore) dirigen el esfuerzo hacia el mayor riesgo. La inteligencia artificial (IA) es un poderoso socio de análisis en ambos: hace visibles las brechas de cobertura y sugiere áreas de riesgo. Pero la advertencia central permanece: la cantidad de alcances que ve la IA puede ser engañosa; Incluso se puede lograr una cobertura de hilera del 100% con pruebas que no verifican nada. Su trabajo es leer el alcance como un mapa, no como un fideicomiso.

Leer correctamente las métricas de cobertura

Existen varios tipos de alcance y no todos son igualmente significativos:

  • Cobertura de línea: cuántas líneas de código se ejecutaron al menos una vez. El criterio más común pero más débil; El hecho de que una línea funcione no es prueba de que se comporte correctamente.
  • Cobertura de sucursales: si se han probado todas las sucursales (tanto verdaderas como falsas). Más significativo que una línea.
  • Cobertura de condiciones: probar cada subcondición en condiciones complejas por separado.
  • Cobertura de ruta: combinaciones de rutas lógicas dentro del código. Es el más completo pero difícil de alcanzar plenamente en la práctica.
Precaución: El porcentaje de cobertura no es un "nivel de calidad". La cobertura de filas del 100 % le indica que las filas están funcionando; no es que produzca el resultado correcto (el pseudo-pase en la unidad 1). Utilice el alcance como respuesta a la pregunta "¿dónde nunca he mirado?", no como una garantía de que "todo ha sido probado".

Puntos ciegos del alcance

Las métricas de cobertura solo miden la cantidad de código que se ha ejecutado; no puedo ver: (1) requisitos no probados (el código existe pero la regla comercial es incorrecta), (2) código faltante (no hay alcance para un control que nunca se escribió), (3) combinaciones de datos/estado, (4) usabilidad, rendimiento, seguridad. Por lo tanto, la cobertura de requisitos (cada criterio de aceptación debe cumplirse mediante al menos una prueba) debe colocarse junto a la cobertura del código. La IA es muy útil para producir el mapeo de pruebas de requisitos (matriz de trazabilidad).

Pruebas basadas en riesgos: ¿dónde ponemos el esfuerzo?

Riesgo = probabilidad (posibilidad de rotura) × impacto (daño en caso de rotura). Con la IA, puedes puntuar una lista de funciones en estos dos ejes y crear un mapa de calor. Los dominios de alta probabilidad × altos (pago, autenticación, integridad de datos) merecen las pruebas más intensas; Las pruebas de luz en áreas bajas × bajas (una pantalla de preferencia que se usa raramente) son suficientes.

zona

probabilidad

Impacto

Riesgo

Densidad de prueba

Flujo de pago

medio

muy alto

alto

Automatización profunda +

autenticación

medio

muy alto

alto

Profunda + seguridad

Búsqueda de productos

alto

medio

Medio-alto

Automatización + descubrimiento

Foto de perfil

bajo

bajo

bajo

control de luz

pagina de ayuda

bajo

demasiado bajo

demasiado bajo

revisar

La trampa de perseguir el alcance

Hacer del porcentaje de cobertura un objetivo (por ejemplo, la regla de “el equipo debe pasar el 90% de cobertura”) tiene un efecto secundario peligroso: los desarrolladores y evaluadores se centran en aumentar el porcentaje en lugar de abordar el riesgo real. El resultado suele ser un alcance inflado sin afirmaciones ni pruebas triviales: el número parece bueno pero no hay protección. Éste es el fenómeno del criterio que se corrompe cuando él mismo se convierte en meta: "cuando una medida se convierte en meta, deja de ser una buena medida". Utilice el alcance como una herramienta de diagnóstico, no como un boletín de calificaciones de desempeño.

Un enfoque más saludable es leer el alcance direccionalmente: "¿Por qué la cobertura de sucursales está estancada en el 40% en el módulo de pago crítico?" La pregunta es "¿la cobertura general es del 90%?" Es mucho más valioso que la pregunta. Haga que AI desglose el informe de alcance por módulo y nivel de riesgo; Resalte las áreas de alto riesgo con baja cobertura. Así, el alcance se convierte en una brújula que dirige el trabajo en lugar de un porcentaje ciego.

Precaución: El eslogan "100% de cobertura" es una trampa. Probar algún código (accesores simples, partes generadas automáticamente) es de poco valor; el esfuerzo invertido allí se roba de reglas comerciales de alto riesgo. El objetivo es probar cada comportamiento y riesgo importante, no cada línea.

Aviso débil / Aviso fuerte

Débil: "Aumentar la cobertura de mis pruebas".
Fuerte: "Dada esta lista de criterios de aceptación y estos casos de prueba existentes. (1) Tabular qué criterios de aceptación no han sido cumplidos por ninguna prueba (brecha de cobertura de requisitos). (2) Califique cada característica del 1 al 5 en los ejes de probabilidad e impacto; clasificación por riesgo = probabilidad × impacto. (3) Por mi tiempo limitado, sugiera qué 5 brechas debo cerrar primero, comenzando con el riesgo más alto. No tome la cobertura de la línea de código como único criterio; priorice el riesgo comercial. Criterios: [...] Pruebas: [...]"

Aviso potente; combina el alcance con el riesgo empresarial y prioriza la mano de obra limitada.

Cuatro plantillas copiables

1) Brecha en el alcance de los requisitos:

Dados los siguientes criterios de aceptación y estos casos de prueba. Elaborar una tabla de trazabilidad: cada criterio -> prueba(s) que lo cumplen. Los criterios que no tienen ninguna prueba se denominan "BRECHA DE COBERTURA" y las pruebas que no se conectan con ningún criterio se denominan "¿NECESARIOS?" Nota: Criterios: [...] / Pruebas: [...]

2) Puntuación de riesgo:

Califique esta lista de características/módulos del 1 al 5 según los ejes de probabilidad (probabilidad de romperse) e impacto (daño si se rompe). Riesgo = probabilidad × impacto. Ordene en una tabla y especifique el tipo de prueba recomendado (unidad/API/UI/reconocimiento/seguridad) para cada área de alto riesgo. Lista: [...]

3) Interpretación del alcance:

Se entregó el siguiente informe de cobertura (% de línea, % de sucursal). Dígame esto:- ¿Qué NO prueban estos números?- ¿Cuáles son las áreas que podrían estar en riesgo a pesar de la alta cobertura de filas?- ¿Qué pruebas adicionales recomendaría para las brechas que la cobertura no detecta (requisitos, combinación de datos, seguridad)?Informe: [pegar]

4) Plan de tiempo limitado:

Faltan [X horas] para la transmisión. Se dan las siguientes clasificaciones de riesgo y brechas de cobertura. Durante este período se elabora por orden de prioridad el plan de pruebas que reducirá el máximo riesgo. Indique claramente qué NO probar conscientemente y el riesgo aceptado de hacerlo. Datos: [...]

tres mini casos

Caso 1: cobertura del 100%, confianza cero. Un equipo contaba con una cobertura de línea del 94%. El análisis de "interpretación del alcance" mostró que la mayoría de las pruebas no eran afirmativas, lo que significa que ejecutaron líneas pero no verificaron nada. La cobertura protectora real fue mucho menor. El equipo no se centró en los números sino en las pruebas de mutaciones (unidad 10); la tasa real de captura de errores se duplicó.

Caso 2: Prioridad corregida del mapa de riesgos. Un equipo dedicaba el 40% de su esfuerzo de prueba a una pantalla de informes que rara vez se usaba, omitiendo el flujo de pago porque "simplemente funciona". La puntuación de riesgo de la IA mostró este desequilibrio. Se redistribuyó el trabajo; Dos semanas después, se encontró un error de alto impacto en el flujo de pagos y se cerró antes de su lanzamiento.

Caso 3: Consciente fuera de alcance. 4 horas después del lanzamiento, el equipo decidió qué probar y qué omitir conscientemente con la plantilla de "horario limitado". Se probaron en profundidad dos corrientes de alto riesgo; una evaluación de preferencia de bajo riesgo se documentó como “riesgo aceptado” y se omitió. La decisión fue transparente y razonada; La versión salió sana y salva.

Errores comunes

  • Confundir porcentaje de cobertura con calidad. Leer la cobertura de filas altas como garantía "probada".
  • Solo mirando la cobertura del código. Saltar cobertura de requisitos (prueba de cada criterio de aceptación).
  • Probar por igual sin tener en cuenta el riesgo. Asignar mano de obra a áreas de bajo riesgo y descuidar los flujos críticos.
  • Esconderse fuera del alcance. No documentar lo que no se probó cuando no hubo suficiente tiempo; Sorpresas posteriores al lanzamiento.
  • Aceptar la puntuación de riesgo de la IA sin lugar a dudas. La IA no conoce completamente el contexto del producto; Ajusta las puntuaciones con ojo experto.

En resumen

La cobertura de las pruebas y las pruebas basadas en riesgos son dos herramientas para dirigir esfuerzos limitados al lugar correcto. Las métricas de cobertura (línea, rama, condición, ruta) muestran lo que se tocó pero no prueban que se comportó correctamente; El alcance es un mapa, la confianza no lo es. Coloque la cobertura de requisitos junto a la cobertura de código. Califique las características con la fórmula riesgo = probabilidad × impacto y dirija el esfuerzo hacia el mayor riesgo. La IA hace visibles las brechas, califica el riesgo, planifica en un tiempo limitado; pero la prioridad final y la decisión de “exclusión consciente” recae en el experto que conoce el contexto empresarial.

Tarea de aplicación

Elija un módulo de su propio proyecto. Ejecute la plantilla "brecha en el alcance de los requisitos" con IA y descubra qué criterios de aceptación no se prueban. Luego clasifique las subcaracterísticas del módulo en los ejes de probabilidad × impacto con “calificación de riesgo”. Distribuya las (hipotéticas) 3 horas de tiempo de prueba que tiene con el "horario limitado"; Anota lo que conscientemente no probarás y el riesgo aceptado. Agregue una prueba concreta que cerrará la brecha de cobertura de mayor riesgo que encuentre.

lista de verificación

  • [] Leo el porcentaje de cobertura como mapa, no como calidad.
  • [] Además de la cobertura del código, también eliminé la cobertura de requisitos.
  • [] Califiqué las características por probabilidad × impacto y las clasifiqué por riesgo.
  • [] Redirigí el esfuerzo de prueba al mayor riesgo.
  • [ ] He documentado áreas que no se han probado conscientemente ni se han reconocido riesgos.
  • [] Revisé las puntuaciones de riesgo de la IA según el contexto de mi producto.