cobertura de caminos

16
Cobertura de Caminos Pasos Ejemplos Cobertura de Caminos Andr ´ es Felipe Cano Cadavid [email protected] Tecnol´ ogico de Antioquia 23 de Octubre del 2013 Andr ´ es Felipe Cano Cadavid [email protected] Cobertura de Caminos

Upload: juan-esteban-puerta-cano

Post on 24-Jun-2015

1.092 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: cobertura de caminos

Cobertura de CaminosPasos

Ejemplos

Cobertura de Caminos

Andres Felipe Cano Cadavid [email protected]

Tecnologico de Antioquia

23 de Octubre del 2013

Andres Felipe Cano Cadavid [email protected] Cobertura de Caminos

Page 2: cobertura de caminos

Cobertura de CaminosPasos

Ejemplos

Cobertura de Caminos

Asegura que los casos de prueba disenados ejecuten al menos unavez cada sentencia y que las condiciones sean aprobadas tantopara su valor verdadero como falso.

Utiliza la complejidad ciclomatica de McCabe para determinara elnumero maximo de casos de prueba que aseguren la ejecucion decada 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 [email protected] Cobertura de Caminos

Page 3: cobertura de caminos

Cobertura de CaminosPasos

Ejemplos

Representar el programa en un grafo de flujoCalcular Complejidad CiclomaticaDeterminar el conjunto basico de caminos independientesDerivar 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 unprograma. 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 masoperadores logicos se crea un nodo disitido por cada una de lascondiciones 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 secontabiliza como una region.

Andres Felipe Cano Cadavid [email protected] Cobertura de Caminos

Page 4: cobertura de caminos

Cobertura de CaminosPasos

Ejemplos

Representar el programa en un grafo de flujoCalcular Complejidad CiclomaticaDeterminar el conjunto basico de caminos independientesDerivar los casos de prueba

Representar el programa en un grafo de flujo

El grafo debe cumplir las siguientes condiciones:1 Existe un solo nodo inicial2 Existe un solo nodo final3 Un nodo puede tener uno o dos sucesores4 Un nodo puede tener uno o mas antecesores5 Un nodo tendra dos sucesores si existen dos caminos posibles,

dependiendo de una condicion.

Andres Felipe Cano Cadavid [email protected] Cobertura de Caminos

Page 5: cobertura de caminos

Cobertura de CaminosPasos

Ejemplos

Representar el programa en un grafo de flujoCalcular Complejidad CiclomaticaDeterminar el conjunto basico de caminos independientesDerivar los casos de prueba

Notacion

Secuencia Si Mientras Repetir

Andres Felipe Cano Cadavid [email protected] Cobertura de Caminos

Page 6: cobertura de caminos

Cobertura de CaminosPasos

Ejemplos

Representar el programa en un grafo de flujoCalcular Complejidad CiclomaticaDeterminar el conjunto basico de caminos independientesDerivar los casos de prueba

Calcular Complejidad Ciclomatica

La complejidad ciclomatica es una metrica de software queproporciona una medida cuantitativa de la complejidad de unprograma.

En el contexto de pruebas define el numero caminosindependientes, y por tanto el numero´de casos de prueba a realizarA partir del grafo de flujo se puede calcular de alguna de lassiguientes formas:

1 V(G) = El numero de regiones del grafo2 V(G) = Arcos - Nodos + 23 V(G) = Nodos predicado + 1

Andres Felipe Cano Cadavid [email protected] Cobertura de Caminos

Page 7: cobertura de caminos

Cobertura de CaminosPasos

Ejemplos

Representar el programa en un grafo de flujoCalcular Complejidad CiclomaticaDeterminar el conjunto basico de caminos independientesDerivar los casos de prueba

Determinar el conjunto basico de caminosindependientes

Camino Independiente: es cualquier camino del programa queintroduce, por lo menos, un nuevo conjunto de sentencias o unacondicion, respecto a los existentes. En terminos del grafo, un caminoindependiente esta constituido por lo menos por un arco que no ha sidorecorrido anteriormente.

Andres Felipe Cano Cadavid [email protected] Cobertura de Caminos

Page 8: cobertura de caminos

Cobertura de CaminosPasos

Ejemplos

Representar el programa en un grafo de flujoCalcular Complejidad CiclomaticaDeterminar el conjunto basico de caminos independientesDerivar los casos de prueba

Determinar el conjunto basico de caminosindependientes

Los pasos para identificar los caminos independientes es:

Elegir un camino principal que represente una funcion valida que nosea un tratamiento de error. Debe intentar elegirse el camino queatraviese el maximo de numero de decisiones en el grafo.

Identificar el segundo camino mediante la localizacion de la primeradecision en el camino de lınea basica alternando sus resultadosmientras se mantiene el maximo de numero de decisionesoriginales del camino inicial.

Andres Felipe Cano Cadavid [email protected] Cobertura de Caminos

Page 9: cobertura de caminos

Cobertura de CaminosPasos

Ejemplos

Representar el programa en un grafo de flujoCalcular Complejidad CiclomaticaDeterminar el conjunto basico de caminos independientesDerivar los casos de prueba

Determinar el conjunto basico de caminosindependientes

Identificar un tercer camino, poniendo la primera decision en suvalor original a la vez que se altera la segunda decision del caminobasico, mientras se intenta mantener el resto de decisionesoriginales.

Continuar el proceso hasta haber conseguido tratar todas lasdecisiones, intentando mantener el resto de decisiones originales.

Este metodo permite obtener V(G) caminos independientes.

Andres Felipe Cano Cadavid [email protected] Cobertura de Caminos

Page 10: cobertura de caminos

Cobertura de CaminosPasos

Ejemplos

Representar el programa en un grafo de flujoCalcular Complejidad CiclomaticaDeterminar el conjunto basico de caminos independientesDerivar los casos de prueba

Derivar los casos de prueba

Se deben dar valores a las variables de entrada, de tal manera que sefuerce la ejecucion de cada camino.

Andres Felipe Cano Cadavid [email protected] Cobertura de Caminos

Page 11: cobertura de caminos

Cobertura de CaminosPasos

Ejemplos

Ejemplo

Algorithm 1 ejemplo1(a, b, c, d)

1: while a > 0 do2: if b > 1 then3: if c > 0 then4: c = c + 15: else6: d = d + 17: end if8: b = b + 19: else

10: b = b + 111: end if12: a = a − 113: end while14: return b

Andres Felipe Cano Cadavid [email protected] Cobertura de Caminos

Page 12: cobertura de caminos

Cobertura de CaminosPasos

Ejemplos

Ejemplo

Algorithm 2 ejemplo2(a, b, x)

1: if (a > 0 and b == 0) then2: x = x/a3: end if4: if (a == 2 or x > 1) then5: x = x + 16: end if7: return x

Andres Felipe Cano Cadavid [email protected] Cobertura de Caminos

Page 13: cobertura de caminos

Cobertura de CaminosPasos

Ejemplos

Ejemplo

Algorithm 3 ejemplo3(x, y)1: while (x > 10) do2: x = x − 103: end while4: if (y < 20 and x %2 = 0) then5: y = y + 206: else7: y = y − 208: end if9: return 2 ∗ x + y

Andres Felipe Cano Cadavid [email protected] Cobertura de Caminos

Page 14: cobertura de caminos

Cobertura de CaminosPasos

Ejemplos

Ejemplo

Algorithm 4 factorial(n)1: if n < 0 then2: factorial = −13: else4: i = 25: factorial = 16: while i ≤ n do7: factorial = factorial ∗ i8: i = i + 19: end while

10: end if11: return factorial

Andres Felipe Cano Cadavid [email protected] Cobertura de Caminos

Page 15: cobertura de caminos

Cobertura de CaminosPasos

Ejemplos

Ejemplo

Algorithm 5 ejercicio(a, b, c, d)

1: while (a > 0) do2: if (b > 1 or a %2 == 1) then3: if (c > 0 and d > 10) then4: c = c + 15: else6: d = d + 17: end if8: b = b + 19: else

10: b = b + 111: end if12: a = a − 113: end while14: return b

Andres Felipe Cano Cadavid [email protected] Cobertura de Caminos

Page 16: cobertura de caminos

Cobertura de CaminosPasos

Ejemplos

Ejemplo

Algorithm 6 esPerfecto(n)

1: i = 12: suma = 03: perfecto =false4: while (i < n) do5: if (n%i == 0) then6: suma = suma + i7: end if8: i = i + 19: end while

10: if (suma == n) then11: perfecto =true12: else13: perfecto =false14: end if15: return perfecto

Andres Felipe Cano Cadavid [email protected] Cobertura de Caminos