Análisis Estático con Herramientas Flashcards

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

A
  • ur
  • dd
  • du
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
Q

¿Qué tan fácil es comparar métricas?

A

Es difífil, incluso cuando estas abordan el mismo atributo del programa.

26
Q

¿Qué es el número ciclomático?

A

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
Q

¿Cuál es el valor máximo aceptable del número ciclomático?

A

v(G) = 10. Si es mayor el código debe de ser reconstruido.

28
Q
A