Sei sulla pagina 1di 16

03

ANALISIS ESTATICO POR MEDIO


DE HERRAMIENTAS

03 ANALISIS ESTATICO POR MEDIO DE HERRAMIENTAS


Terminologa y definiciones

Anlisis Esttico
Es aquella actividad que consiste en el anlisis de un objeto de prueba, por ejemplo el
cdigo fuente, requisito llevado a cabo sin ejecutar el producto software (si esto fuera
posible)
Posibles aspectos a ser comprobados con anlisis estticos :
Reglas de estndares de programacin.
Diseo de un programa (anlisis del flujo de control)
Uso de datos (anlisis del flujo de datos)
Complejidad de la estructura de un programa.

Ing. Alejandro Bartra

23

03 ANALISIS ESTATICO POR MEDIO DE HERRAMIENTAS

Aspectos generales
Todos los objetos de prueba deben tener una estructura formal.
Esto es especialmente importante cuando se utilizan herramientas de pruebas.
Con mucha frecuencia no se generan documentos formalmente.
En la prctica, lenguajes de modelado, programacin y de guin (scripting )
cumplen con la regla, de la misma forma que algunos diagramas.
El anlisis esttico de un programa mediante el uso de herramientas se desarrolla con
un esfuerzo menor que el necesario en una inspeccin.

Ing. Alejandro Bartra

24

03 ANALISIS ESTATICO POR MEDIO DE HERRAMIENTAS

Aspectos generales
Herramientas a utilizar: Compiladores y herramientas de anlisis (analizadores)
Compilador .
Detecta errores sintcticos en el cdigo fuente de un programa.
Crea datos de referencia del programa (por ejemplo lista de referencia cruzada,
llamada jerrquica, tabla de smbolos)
Comprueba la consistencia entre los tipos de variables.
Detecta variables no declaradas y cdigo inaccesible (cdigo muerto)
Analizador: trata de aspectos adicionales tales como:
Convenciones y estndares.
Mtricas de complejidad.
Etc.

Ing. Alejandro Bartra

25

03 ANALISIS ESTATICO POR MEDIO DE HERRAMIENTAS


Anlisis del flujo de control

Propsito
Detectar defectos causados por un desarrollo anmalo del cdigo (ramas muertas,
cdigo muerto, etc.)

Mtodo

La estructura del cdigo se representa como un diagrama de control de flujo.


Es un grafo dirigido.
Los nodos representan sentencias o secuencias de sentencias.
Las aristas representan las transferencias del flujo de control como decisiones y bucles.

Resultados
Visin de conjunto del cdigo del programa.
Las anomalas pueden ser fcilmente detectadas, los defectos se hacen evidentes.
Bucles abandonados por saltos.
Ramas muertas.
Retornos mltiples.

Ing. Alejandro Bartra

26

03 ANALISIS ESTATICO POR MEDIO DE HERRAMIENTAS


Anlisis del flujo de datos

Propsito
Deteccin de anomalas en el flujo de datos con la asistencia de los diagramas de flujo de control
respecto a las secuencias del flujo de datos.

Beneficios
Deteccin de anomalas en el flujo de datos.
Se puede detectar fcilmente la localizacin exacta de defectos.
Es un buen complemento para otros mtodos de pruebas.

Desventajas
Limitado a un rango reducido de tipos de defectos.

Mtodo
Una variable X puede tener los siguientes estados a lo largo de la ejecucin de un programa.
X se encuentra definida (d): un valor ha sido asignado a la variable X, por ejemplo X=1
X se encuentra indefinida (u): no ha sido asignado valor alguno a la variable X
X est referenciada (r): ha sido tomada una referencia, el valor de X no cambia (Ej. x>0))
X no ha sido utilizada (e): X no ha sido referenciada ni en lectura ni en escritura.
El flujo de datos de una variable puede ser expresado como una secuencia de estados : d, u, r y e
Si una de estas secuencias contiene una sub-secuencia que no tiene sentido, entonces ha tenido
lugar una anomala en el flujo de datos.

Ing. Alejandro Bartra

27

03 ANALISIS ESTATICO POR MEDIO DE HERRAMIENTAS


Anlisis del flujo de datos

Estudio de las variables del programa


variable definida* donde se almacena un valor en ella.
variable utilizada en donde el valor almacenado se accede.
variable no definida antes de que sea utilizada o cuando se encuentra fuera de alcance.

x=y+z

x se define, y, z se utilizan

IF a > b THEN read(S)


a y b se utilizan, S se define
* definido no debe confundirse con declarado

Ing. Alejandro Bartra

28

03 ANALISIS ESTATICO POR MEDIO DE HERRAMIENTAS


Fallas en el anlisis de flujo de datos

n := 0

read (x)
n := 1
while x > y do

begin

Anomalas de flujo de datos: n es


redefinido sin ser utilizado
Fallo de flujo de datos: y se utiliza
antes de que se haya definido
(primera vez alrededor del bucle)

read (y)
write( n*y)
x := x - n
end

Ing. Alejandro Bartra

29

03 ANALISIS ESTATICO POR MEDIO DE HERRAMIENTAS


Anomalas en el flujo de datos
Ejemplo:

Para este ejemplo los


valores de dos variables son
intercambiados a travs de
una variable auxiliar , si no
estn ordenados por valor
Void MinMax (Int Min, Int Max)

El anlisis de flujo de datos muestra:

Este ejemplo puede ser

La variable Help se encuentra

fcilmente corregido

Indefinida (undefined) cuando


es Referenciada (referenced)

Void MinMax (Int Min, Int Max)

Anomala u-r

{
Int Help:
if (Min > Max)
{
Max = Help
Max = Min
Help = Min;
}

La variable Max se define


(defined) dos veces sin
ninguna referencia entre ambas
definiciones

Int Help:
if (Min > Max)
{
Help = Max

Anomala d-d.

El valor definido (defined)


para la variable Help se vuelve
indefinido (undefined) al final
del programa sin referencia

Max = Min
Min = Help;
}
End MinMax;

Anomala d-u

End MinMax;

Ing. Alejandro Bartra

30

03 ANALISIS ESTATICO POR MEDIO DE HERRAMIENTAS


Anomalas en el flujo de datos
EJEMPLO DE CDIGO NO ALCANZABLE

Definicin de macros
Buffsize: 1000
Mailboxmax: 1000
IF Buffsize < Mailboxmax THEN
Error-Exit
ENDIF

Ing. Alejandro Bartra

31

03 ANALISIS ESTATICO POR MEDIO DE HERRAMIENTAS


Las mtricas y su clculo

Ciertos aspectos de la calidad de un programa pueden ser medidos


utilizando mtricas
La mtrica slo tiene relevancia para el aspecto medido (considerado)

La complejidad esttica de un programa puede ser medida


Actualmente hay aproximadamente 100 mtricas diferentes disponibles.

Mtricas diferentes tratan aspectos diferentes de la complejidad del


programa
Tamao del programa (por ejemplo : lneas de cdigo (Lines of code - LOC)
Estructuras de control de programa (por ejemplo Nmero ciclomtico)

Ing. Alejandro Bartra

32

03 ANALISIS ESTATICO POR MEDIO DE HERRAMIENTAS

Las mtricas y su implicacin


Nmero Ciclomtico

V(G) = e n + 2p

Mtrica que mide la complejidad esttica de


un programa basado en su grado de flujo
de control. Est basada en el nmero de
decisiones en un programa.
Mide los caminos linealmente
independientes, como ndice de la
testeabilidad y mantenibilidad.
El nmero ciclomtico se define de la
siguiente forma:
Nmero de aristas
e
Nmero de nodos
n
Nmero de partes de programas
independientes inspeccionados: p
(normalmente 1)
Valores hasta 10 son aceptables. Para
valores superiores el cdigo debe ser
revoked / mejorado.
Provee una indicacin de la cantidad de
pruebas necesarias para evitar defectos.

Ing. Alejandro Bartra

33

03 ANALISIS ESTATICO POR MEDIO DE HERRAMIENTAS

V(G) = e n + 2p

Aristas (e)= 8
Nodos (n) = 7
P=1
V(G) = 3

Ing. Alejandro Bartra

34

03 ANALISIS ESTATICO POR MEDIO DE HERRAMIENTAS

Las mtricas y su implicacin


Nmero ciclomtico (por Mc Cabe) - Implicacin
El nmero ciclomtico puede ser utilizado como un valor objetivo para una revisin de
cdigo.
El nmero ciclomtico puede ser calculado como el nmero de decisiones
independientes ms uno. Si las dos formas de clculo aportan resultados diferentes se
puede deber a:
Ramas superfluas
Ramas faltantes
El nmero ciclomtico tambin aporta un ndice del nmero de casos de prueba
necesarios (para alcanzar cobertura de decisin)

Resultado del anlisis:


El diagrama de flujo de control presenta el flujo del programa y permite la deteccin de
ramas muertas y cdigo inalcanzable.
Las anomalas en los datos se detectan utilizando el anlisis del flujo de datos.
Las mtricas pueden ser utilizadas par evaluar la complejidad estructural conduciendo a
una estimacin del esfuerzo en pruebas a esperar.

Ing. Alejandro Bartra

35

03 ANALISIS ESTATICO POR MEDIO DE HERRAMIENTAS

Pruebas estticas de cdigo algunas herramientas

PMD
CPD
Checkstyle
FindBugs
RATS
YASCA
Sonar

Ing. Alejandro Bartra

36

03 ANALISIS ESTATICO POR MEDIO DE HERRAMIENTAS

Resumen
Anlisis esttico
Con el uso de las herramientas para la realizacin de anlisis esttico (compiladores,
analizadores) el cdigo del programa puede ser objeto de inspeccin sin ser ejecutado.
Con el uso de las herramientas se puede realizar el anlisis esttico de un programa
con un esfuerzo menor que el necesario para una inspeccin.

Resultado del anlisis:


El diagrama de flujo de control presenta el flujo del programa y permite la deteccin
de ramas muertas y cdigo inalcanzable.
Las anomalas en el flujo de datos se detectan utilizando el anlisis del flujo de datos.
Las mtricas pueden ser utilizadas para evaluar la complejidad estructural (Nmero
Ciclomtico) conduciendo a una estimacin del esfuerzo en pruebas a esperar.

Ing. Alejandro Bartra

37

Potrebbero piacerti anche