Análisis Estático con Herramientas Flashcards
¿Qué es el análisis estático?
Aquella tarea que consiste en analizar un objeto de prueba sin ejecutarlo. Por ejemplo:
- Código fuente
- Script
- Requisito
¿Qué 5 aspectos se pueden comprobar con el análisis estático?
- Reglas y estándares de programación
- Diseño de un programa (análisis del flujo de control)
- Uso de datos (análisis de flujo de datos)
- **Complejidad **de la estructura de un programa
- Metricas (por ejemplo número ciclomático)
¿Qué característica deben cumplir los objetos analizados estaticamente?
Deben de tener una estructura formal; especialmente cuando se utilizan herramientas de pruebas.
Con mucha frecuencia no se generan docuentos formalmente.
En la práctica, lenguajes de modelado, programación y de creación de scripts cumplen con la regla, de la misma forma que algunos diagramas.
¿Cuándo es común que se lleve acabo el análisis estático de un programa?
- Antes de una revisión (menos esfuerzo que en una revisión).
- Para detectar lógica ausente o errónea
- Para detectar construcciones excesivamente complicadas, vulnerabilidades en el ámbito de la seguridad, interfaces inconsistentes, etc.
¿Cuál es el valor del análisis estático?
La previsión de defectos:
- Para encontrar defectos tan pronto como sea posible antes de la ejecución de pruebas.
- Para advertir sobre aspectos sospechosos del código.
- Para detectar discrepancias en el diseño a través del cálculo de métricas como la medida de alta complejidad.
- Estos defectos pueden no ser encontrados fácilmente con pruebas dinámicas.
- Detectando inconsistencias y dependencias.
- Para comprobar la mantenibilidad del código o diseño.
¿Qué herramientas pueden ser utilizadas en las pruebas estáticas?
- Compiladores
- Analizadores
¿Cómo ayuda un compilador en una prueba estática? (4)
- Detecta errores sintácticos en el código fuente del programa.
- Crea datos de referencia del programa.
- Comprueba la consistencia entre los tipos de variables.
- Detecta variables con declaradas y código inaccesible (código muerto).
¿Cómo ayudan los analizadores en las pruebas estáticas? (4)
- Convenciones y estándares
- Métricas de complejidad
- Acoplamiento de objetos
¿Cuál es el propósito del análisis del flujo de control?
Detectar defectos causados por el desarrollo anómalo del código (ramas de código muerto, etc).
Método usado en el análisis de control de flujo.
- La estructura del código se representa como un diagrama de control de flujo.
- Grafo dirijido:
- Los nodos representan sentencias o secuencias de sentencias
- Las aristas representan la transferencia del flujo de control, como en decisiones y bucles.
- Construcción mediante herramientas.
Resultados del análisis del flujo de control
(* 7)
- Visión del conjunto del código del programa comprensibe.
- Las anomalías se detectan fácilmente, los defectos se hacen evidentes.
3 ejemplos de defectos o anomalías que se pueden detectar con el análisis de control de flujo
- Bucles abandonados por saltos.
- Ramas muertas
- Retornos múltiples
¿Qué es un grafo de un flujo de control?
Una versión simplificada de un diagrama de flujo
Propósito del análisis del flujo de datos.
Detección de anomalías en el flujo de datos con la asistencia de diagramas de control de flujo y conjeturas racionales respecto a las secuencias del flujo de datos.
Beneficios del análisis del flujo de datos (3)
- Detección fiable de anomalías en el flujo de datos.
- Se puede detectar fácilmente la localización exacta de defectos
- Es un buen complemento para otros métodos de pruebas.