1.2. Detección de defectos
VERIFICAR consiste en evaluar (de forma estática) que el producto se está construyendo de acuerdo con el diseño y que en su interior se está haciendo de la forma correcta. VALIDAR consiste en evaluar que el producto (ejecutable) cumple con las expectaticas del usuario y los requerimientos. Por eso es que al usar el término testing se habla de validación, y cuando se realiza análisis estático lo que se está haciendo es verificación.
Momento, según esto las inspecciones son para verificación. Pero ¿se puede considerar a las inspecciones como una técnica de detección? SI. Por eso es que las inspecciones son poderosas !! Con inspecciones también se pueden detectar errores de codificación, mala implementación de lógica de negocio, etc.
Adicionalmente al "testing" como técnica de análisis dinámico, contamos con depuración (debugging), monitoreo (monitoring) y perfilamiento (profiling). Mientras que el testing tradicional (es decir de caja negra) se enfoca en validar las salidas del sistema para unas entradas dadas, las DMP (debugging, monitoring, profiling) son más de corte caja blanca, es decir, buscan analizar el comportamiento interno del sistema mientras este se ejecuta.
Monitoreo vs Perfilamiento. Ambas miden consumo de recursos de un sistema bajo análisis, pero el monitoreo hace medición de datos crudos a nivel de componentes de hardware (ejemplo consumo de memoria), y el perfilamiento detecta hot spots, es decir, componentes de software con alto consumo (o inusual) de recursos.