Análisis Estático con Herramientas Flashcards

(28 cards)

1
Q

¿Qué es el análisis estático?

A

Aquella tarea que consiste en analizar un objeto de prueba sin ejecutarlo. Por ejemplo:

  • Código fuente
  • Script
  • Requisito
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Qué 5 aspectos se pueden comprobar con el análisis estático?

A
  1. Reglas y estándares de programación
  2. Diseño de un programa (análisis del flujo de control)
  3. Uso de datos (análisis de flujo de datos)
  4. **Complejidad **de la estructura de un programa
  5. Metricas (por ejemplo número ciclomático)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Qué característica deben cumplir los objetos analizados estaticamente?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Cuándo es común que se lleve acabo el análisis estático de un programa?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Cuál es el valor del análisis estático?

A

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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Qué herramientas pueden ser utilizadas en las pruebas estáticas?

A
  • Compiladores
  • Analizadores
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Cómo ayuda un compilador en una prueba estática? (4)

A
  • 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).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Cómo ayudan los analizadores en las pruebas estáticas? (4)

A
  • Convenciones y estándares
  • Métricas de complejidad
  • Acoplamiento de objetos
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Cuál es el propósito del análisis del flujo de control?

A

Detectar defectos causados por el desarrollo anómalo del código (ramas de código muerto, etc).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Método usado en el análisis de control de flujo.

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Resultados del análisis del flujo de control

(* 7)

A
  • Visión del conjunto del código del programa comprensibe.
  • Las anomalías se detectan fácilmente, los defectos se hacen evidentes.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

3 ejemplos de defectos o anomalías que se pueden detectar con el análisis de control de flujo

A
  • Bucles abandonados por saltos.
  • Ramas muertas
  • Retornos múltiples
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Qué es un grafo de un flujo de control?

A

Una versión simplificada de un diagrama de flujo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Propósito del análisis del flujo de datos.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Beneficios del análisis del flujo de datos (3)

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Desventaja del análisis de flujo de datos

A

Está limitado a un rango reducido de tipo de defectos.

17
Q

Análisis de flujo de datos:

¿Qué estados puede tener una variable x a lo largo de la ejecución de un programa?

A
  • Indefinida (i)
  • Definida (d)
  • Referenciada (r)
18
Q

¿Cómo se puede representar el flujo de datos de una variable?

A

Mediante una secuencia de estados **u, d **o r. Por ejemplo: udrdrru

19
Q

Subsecuencias que prueban una anomalía en el flujo de datos

20
Q

¿Con qué se pueden medir ciertos aspectos de la calidad de un programa?

A

Con **metricas **que sólo tienen relevancia para el aspecto medido.

21
Q

¿Puede medirse la complejidad estática de un programa?

A

Si, actualmente hay aproximadamente 100 métricas disponibles.

22
Q

Métrica que mide el tamaño de un programa

A

Líneas de código (“lines of code - LOC”)

23
Q

Métrica que mide las estructuras de control del programa

A

Número ciclomático

24
Q

Métrica que mide estrucuras de control de datos

A

Métrica de Halstead (“Halstead Metric”)

25
¿Qué tan fácil es comparar métricas?
Es **difífil**, incluso cuando estas abordan el mismo atributo del programa.
26
¿Qué es el número ciclomático?
Métrica que mide la complejidad estática de un programa basada en su grafo de control. Mide los caminos linealmente independientes como indice de testabilidad y mantenibilidad. * Número de aristas (**e**) * Número de nodos (**n**) * Número de partes del programa independientes inspeccionadas (**p**).
27
¿Cuál es el valor máximo aceptable del número ciclomático?
v(G) = 10. Si es mayor el código debe de ser reconstruido.
28