Prueba de Generación Automática
Actividad de prueba en la que herramientas generan de forma automática casos de prueba (y, opcionalmente, datos de prueba y oráculos) a partir de artefactos como requisitos, modelos, código o interfaces, siguiendo criterios de cobertura o propiedades. También llamada generación automática de pruebas o generación automática de casos de prueba (test generation).
No debe confundirse con la automatización de la ejecución de pruebas: aquí el foco es crear las pruebas de manera automática, no solo ejecutarlas.
Entradas típicas: especificaciones formales/naturales, modelos (p. ej., de estados), código fuente, contratos, esquemas de datos o APIs, y criterios (p. ej., cobertura de decisiones, alcance de transiciones, propiedades). Salidas típicas: conjuntos de casos de prueba priorizados, scripts ejecutables, datos de prueba y, cuando es posible, oráculos esperados.
Técnicas habituales:
- Pruebas basadas en modelos (MBT) para derivar casos de prueba desde modelos de comportamiento.
- Análisis estático/simbólico y búsqueda guiada por cobertura sobre el código.
- Fuzzing y pruebas basadas en propiedades (p. ej., generadores tipo QuickCheck).
- Heurísticas/metaheurísticas (p. ej., algoritmos genéticos) y minería de software.
Beneficios: aumento de cobertura y consistencia, escalabilidad, rapidez para adaptar pruebas ante cambios del modelo/código. Riesgos/limitaciones: dependencia de la calidad de los artefactos de origen, oráculos incompletos, mantenimiento de modelos, generación de casos redundantes o poco relevantes.
Se aplica tanto a pruebas funcionales como estructurales y es un complemento natural de la ejecución automatizada dentro de un proceso de pruebas continuo.