1. Cobertura de Caminos
Pasos
Ejemplos
Cobertura de Caminos
´
Andres Felipe Cano Cadavid acanocad@gmail.com
´
Tecnologico de Antioquia
23 de Octubre del 2013
´
Andres Felipe Cano Cadavid acanocad@gmail.com
Cobertura de Caminos
2. Cobertura de Caminos
Pasos
Ejemplos
Cobertura de Caminos
˜
Asegura que los casos de prueba disenados ejecuten al menos una
vez cada sentencia y que las condiciones sean aprobadas tanto
para su valor verdadero como falso.
´
Utiliza la complejidad ciclomatica de McCabe para determinara el
´
´
´
numero maximo de casos de prueba que aseguren la ejecucion de
cada camino del programa.
´
Los pasos a realizar para aplicar esta tecnica son:
Representar el programa en un grafo de flujo.
´
Calcular la complejidad ciclomatica.
´
Determinar el conjunto basico de caminos independientes.
´
Derivar los casos de prueba que fuerzan la ejecucion de cada camino.
´
Andres Felipe Cano Cadavid acanocad@gmail.com
Cobertura de Caminos
3. Cobertura de Caminos
Pasos
Ejemplos
Representar el programa en un grafo de flujo
´
Calcular Complejidad Ciclomatica
´
Determinar el conjunto basico de caminos independientes
Derivar los casos de prueba
Representar el programa en un grafo de flujo
´
El grafo de flujo se usa para representar flujo de control logico de un
programa. Para ello se utilizan los siguientes elementos:
Nodo: representa cero, una o varias sentencias en secuencia.
´
´
Nodo predicado: cuando en una condicion aparecen uno o mas
´
operadores logicos se crea un nodo disitido por cada una de las
condiciones simples. Este nodo se denomina nodo de predicado.
Arco: l´nea que une dos nodos.
ı
´ ´
´
Region: area delimitada por arcos y nodos. El area externa se
´
contabiliza como una region.
´
Andres Felipe Cano Cadavid acanocad@gmail.com
Cobertura de Caminos
4. Cobertura de Caminos
Pasos
Ejemplos
Representar el programa en un grafo de flujo
´
Calcular Complejidad Ciclomatica
´
Determinar el conjunto basico de caminos independientes
Derivar los casos de prueba
Representar el programa en un grafo de flujo
El grafo debe cumplir las siguientes condiciones:
1
Existe un solo nodo inicial
2
Existe un solo nodo final
3
Un nodo puede tener uno o dos sucesores
4
´
Un nodo puede tener uno o mas antecesores
5
´
Un nodo tendra dos sucesores si existen dos caminos posibles,
´
dependiendo de una condicion.
´
Andres Felipe Cano Cadavid acanocad@gmail.com
Cobertura de Caminos
5. Cobertura de Caminos
Pasos
Ejemplos
Representar el programa en un grafo de flujo
´
Calcular Complejidad Ciclomatica
´
Determinar el conjunto basico de caminos independientes
Derivar los casos de prueba
´
Notacion
Secuencia
Si
´
Andres Felipe Cano Cadavid acanocad@gmail.com
Mientras
Cobertura de Caminos
Repetir
6. Cobertura de Caminos
Pasos
Ejemplos
Representar el programa en un grafo de flujo
´
Calcular Complejidad Ciclomatica
´
Determinar el conjunto basico de caminos independientes
Derivar los casos de prueba
´
Calcular Complejidad Ciclomatica
´
´
La complejidad ciclomatica es una metrica de software que
proporciona una medida cuantitativa de la complejidad de un
programa.
´
En el contexto de pruebas define el numero caminos
´
independientes, y por tanto el numero´de casos de prueba a realizar
A partir del grafo de flujo se puede calcular de alguna de las
siguientes formas:
1
2
3
´
V(G) = El numero de regiones del grafo
V(G) = Arcos - Nodos + 2
V(G) = Nodos predicado + 1
´
Andres Felipe Cano Cadavid acanocad@gmail.com
Cobertura de Caminos
7. Cobertura de Caminos
Pasos
Ejemplos
Representar el programa en un grafo de flujo
´
Calcular Complejidad Ciclomatica
´
Determinar el conjunto basico de caminos independientes
Derivar los casos de prueba
´
Determinar el conjunto basico de caminos
independientes
Camino Independiente: es cualquier camino del programa que
introduce, por lo menos, un nuevo conjunto de sentencias o una
´
´
condicion, respecto a los existentes. En terminos del grafo, un camino
independiente esta constituido por lo menos por un arco que no ha sido
recorrido anteriormente.
´
Andres Felipe Cano Cadavid acanocad@gmail.com
Cobertura de Caminos
8. Cobertura de Caminos
Pasos
Ejemplos
Representar el programa en un grafo de flujo
´
Calcular Complejidad Ciclomatica
´
Determinar el conjunto basico de caminos independientes
Derivar los casos de prueba
´
Determinar el conjunto basico de caminos
independientes
Los pasos para identificar los caminos independientes es:
´
Elegir un camino principal que represente una funcion valida que no
sea un tratamiento de error. Debe intentar elegirse el camino que
´
´
atraviese el maximo de numero de decisiones en el grafo.
´
Identificar el segundo camino mediante la localizacion de la primera
´
´
decision en el camino de l´nea basica alternando sus resultados
ı
´
´
mientras se mantiene el maximo de numero de decisiones
originales del camino inicial.
´
Andres Felipe Cano Cadavid acanocad@gmail.com
Cobertura de Caminos
9. Cobertura de Caminos
Pasos
Ejemplos
Representar el programa en un grafo de flujo
´
Calcular Complejidad Ciclomatica
´
Determinar el conjunto basico de caminos independientes
Derivar los casos de prueba
´
Determinar el conjunto basico de caminos
independientes
´
Identificar un tercer camino, poniendo la primera decision en su
´
valor original a la vez que se altera la segunda decision del camino
´
basico, mientras se intenta mantener el resto de decisiones
originales.
Continuar el proceso hasta haber conseguido tratar todas las
decisiones, intentando mantener el resto de decisiones originales.
´
Este metodo permite obtener V (G ) caminos independientes.
´
Andres Felipe Cano Cadavid acanocad@gmail.com
Cobertura de Caminos
10. Cobertura de Caminos
Pasos
Ejemplos
Representar el programa en un grafo de flujo
´
Calcular Complejidad Ciclomatica
´
Determinar el conjunto basico de caminos independientes
Derivar los casos de prueba
Derivar los casos de prueba
Se deben dar valores a las variables de entrada, de tal manera que se
´
fuerce la ejecucion de cada camino.
´
Andres Felipe Cano Cadavid acanocad@gmail.com
Cobertura de Caminos
11. Cobertura de Caminos
Pasos
Ejemplos
Ejemplo
Algorithm 1 ejemplo1(a, b, c, d)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
while a > 0 do
if b > 1 then
if c > 0 then
c =c+1
else
d =d+1
end if
b =b +1
else
b =b +1
end if
a =a−1
end while
return b
´
Andres Felipe Cano Cadavid acanocad@gmail.com
Cobertura de Caminos
12. Cobertura de Caminos
Pasos
Ejemplos
Ejemplo
Algorithm 2 ejemplo2(a, b, x)
1:
2:
3:
4:
5:
6:
7:
if (a > 0 and b == 0) then
x = x /a
end if
if (a == 2 or x > 1) then
x =x +1
end if
return x
´
Andres Felipe Cano Cadavid acanocad@gmail.com
Cobertura de Caminos
13. Cobertura de Caminos
Pasos
Ejemplos
Ejemplo
Algorithm 3 ejemplo3(x, y)
1: while (x > 10) do
2:
x = x − 10
3: end while
4: if (y < 20 and x %2 = 0) then
5:
y = y + 20
6: else
7:
y = y − 20
8: end if
9: return 2 ∗ x + y
´
Andres Felipe Cano Cadavid acanocad@gmail.com
Cobertura de Caminos
14. Cobertura de Caminos
Pasos
Ejemplos
Ejemplo
Algorithm 4 factorial(n)
1: if n < 0 then
2:
factorial = −1
3: else
4:
i=2
5:
factorial = 1
6:
while i ≤ n do
7:
factorial = factorial ∗ i
8:
i =i+1
9:
end while
10: end if
11: return factorial
´
Andres Felipe Cano Cadavid acanocad@gmail.com
Cobertura de Caminos
15. Cobertura de Caminos
Pasos
Ejemplos
Ejemplo
Algorithm 5 ejercicio(a, b, c, d)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
while (a > 0) do
if (b > 1 or a %2 == 1) then
if (c > 0 and d > 10) then
c =c+1
else
d =d+1
end if
b =b +1
else
b =b +1
end if
a =a−1
end while
return b
´
Andres Felipe Cano Cadavid acanocad@gmail.com
Cobertura de Caminos
16. Cobertura de Caminos
Pasos
Ejemplos
Ejemplo
Algorithm 6 esPerfecto(n)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
i=1
suma = 0
perfecto =false
while (i < n) do
if (n %i == 0) then
suma = suma + i
end if
i =i+1
end while
if (suma == n) then
perfecto =true
else
perfecto =false
end if
return perfecto
´
Andres Felipe Cano Cadavid acanocad@gmail.com
Cobertura de Caminos