Testing estático: revisiones, inspecciones y análisis de código
El capítulo 3 del syllabus CTFL explicado con detalle: tipos de revisión, roles y beneficios del testing sin ejecución.
Qué es el testing estático
El testing estático es el conjunto de actividades de testing que se realizan sin ejecutar el software. En lugar de correr el código, se examinan los productos de trabajo (documentos de requisitos, casos de uso, código fuente, diseños, planes de prueba) buscando defectos, inconsistencias y áreas de mejora.
Contrasta con el testing dinámico, que requiere ejecutar el software con datos de prueba. Ambos tipos son complementarios y el syllabus CTFL v4.0 los considera igualmente importantes.
Beneficios del testing estático
El testing estático tiene una relación coste-beneficio excelente, especialmente en las fases tempranas del proyecto:
- Detección temprana: los defectos encontrados en requisitos cuestan hasta 100 veces menos que los encontrados en producción.
- Sin necesidad de entorno de prueba: se puede aplicar desde el primer día del proyecto.
- Mejora de la calidad de la documentación y la comunicación del equipo.
- Transferencia de conocimiento: las revisiones facilitan que el equipo comprenda el sistema.
- Cumplimiento regulatorio: en muchos sectores (aeronáutico, médico, financiero) las revisiones formales son obligatorias.
Tipos de revisión
El syllabus CTFL v4.0 define cuatro tipos de revisión, ordenados de menor a mayor formalidad:
| Tipo | Formalidad | Uso típico |
|---|---|---|
| Revisión informal | Baja | Feedback rápido entre compañeros, sin proceso definido |
| Walkthrough | Media-baja | El autor guía a los revisores por el producto, detectar defectos y mejorar la comprensión |
| Revisión técnica | Media | Revisores técnicos evalúan la conformidad con especificaciones y estándares |
| Inspección | Alta | Proceso formal con roles definidos, métricas y seguimiento de defectos |
Roles en una inspección formal
La inspección es el tipo de revisión más formal y estructurado. Define roles específicos para cada participante:
- Autor: el creador del producto de trabajo que se está inspeccionando. Aclara dudas pero no defiende su trabajo.
- Moderador (líder de inspección): gestiona el proceso, asegura que se sigue el procedimiento y facilita la reunión.
- Revisores: examinan el producto buscando defectos, aplican sus perspectivas y conocimientos específicos.
- Escriba (registrador): documenta los defectos y decisiones tomadas durante la reunión.
- Líder de revisión: planifica la revisión, selecciona a los revisores y asegura los recursos necesarios.
Análisis estático con herramientas
El análisis estático automatizado complementa las revisiones manuales, examinando el código fuente sin ejecutarlo mediante herramientas especializadas:
- Linters y analizadores de código: detectan errores de sintaxis, código muerto, variables no inicializadas.
- Comprobadores de estilo: aseguran que el código cumple los estándares de codificación del equipo.
- Analizadores de complejidad: detectan código demasiado complejo que es propenso a defectos.
- Herramientas de seguridad (SAST): identifican vulnerabilidades de seguridad potenciales en el código.
- Integración en CI/CD: el análisis estático se puede ejecutar automáticamente en cada commit.