SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

Más contenido relacionado

La actualidad más candente

Métrica de punto de función y lineas de codigo
Métrica de punto de función y lineas de codigoMétrica de punto de función y lineas de codigo
Métrica de punto de función y lineas de codigoJesús E. CuRias
 
Tipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia ArtificialTipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia ArtificialJuank Grifin
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosnenyta08
 
Taller casos de prueba
Taller casos de pruebaTaller casos de prueba
Taller casos de pruebaAndrés Grosso
 
IEEE 1016 1998: Software design description
IEEE 1016 1998: Software design descriptionIEEE 1016 1998: Software design description
IEEE 1016 1998: Software design descriptionJesús Navarro
 
Herramientas case
Herramientas case Herramientas case
Herramientas case 00menni
 
Pruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacionPruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacionAbner Gerardo
 
Análisis de riesgos de un proyecto de software
Análisis de riesgos de un proyecto de softwareAnálisis de riesgos de un proyecto de software
Análisis de riesgos de un proyecto de softwareAngel Reyes
 
Glosario de ing. de software
Glosario de ing. de softwareGlosario de ing. de software
Glosario de ing. de softwareGeorge Corona
 
Gestión de riesgos de software
Gestión de riesgos de softwareGestión de riesgos de software
Gestión de riesgos de softwareOmar S. Gomez
 
Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.LuiS YmAY
 
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidorAcceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidorJomicast
 
Metodologías, metricas y modelo cocomo para el costo de un proyecto software
Metodologías, metricas y modelo cocomo para el costo de un proyecto softwareMetodologías, metricas y modelo cocomo para el costo de un proyecto software
Metodologías, metricas y modelo cocomo para el costo de un proyecto softwareAndres Hoyos Mosquera
 
Presentacion de lenguajes de programacion grado 9.2
Presentacion de lenguajes de programacion grado 9.2Presentacion de lenguajes de programacion grado 9.2
Presentacion de lenguajes de programacion grado 9.2danny7206
 

La actualidad más candente (20)

Busqueda por profundidad iterativa
Busqueda por profundidad iterativaBusqueda por profundidad iterativa
Busqueda por profundidad iterativa
 
Métrica de punto de función y lineas de codigo
Métrica de punto de función y lineas de codigoMétrica de punto de función y lineas de codigo
Métrica de punto de función y lineas de codigo
 
Tipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia ArtificialTipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia Artificial
 
Tabla de símbolos
Tabla de símbolosTabla de símbolos
Tabla de símbolos
 
8.realizacion de pruebas
8.realizacion de pruebas8.realizacion de pruebas
8.realizacion de pruebas
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientos
 
Proyecto final de software
Proyecto final de softwareProyecto final de software
Proyecto final de software
 
Taller casos de prueba
Taller casos de pruebaTaller casos de prueba
Taller casos de prueba
 
IEEE 1016 1998: Software design description
IEEE 1016 1998: Software design descriptionIEEE 1016 1998: Software design description
IEEE 1016 1998: Software design description
 
Herramientas case
Herramientas case Herramientas case
Herramientas case
 
Pruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacionPruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacion
 
Análisis de riesgos de un proyecto de software
Análisis de riesgos de un proyecto de softwareAnálisis de riesgos de un proyecto de software
Análisis de riesgos de un proyecto de software
 
Metodologia msf
Metodologia msfMetodologia msf
Metodologia msf
 
Glosario de ing. de software
Glosario de ing. de softwareGlosario de ing. de software
Glosario de ing. de software
 
Calidad de software
Calidad de softwareCalidad de software
Calidad de software
 
Gestión de riesgos de software
Gestión de riesgos de softwareGestión de riesgos de software
Gestión de riesgos de software
 
Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.
 
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidorAcceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
 
Metodologías, metricas y modelo cocomo para el costo de un proyecto software
Metodologías, metricas y modelo cocomo para el costo de un proyecto softwareMetodologías, metricas y modelo cocomo para el costo de un proyecto software
Metodologías, metricas y modelo cocomo para el costo de un proyecto software
 
Presentacion de lenguajes de programacion grado 9.2
Presentacion de lenguajes de programacion grado 9.2Presentacion de lenguajes de programacion grado 9.2
Presentacion de lenguajes de programacion grado 9.2
 

Destacado (17)

pruebas de cajas blanca
 pruebas de cajas blanca pruebas de cajas blanca
pruebas de cajas blanca
 
EstructurasDatos - Complejidad Ciclomática
EstructurasDatos - Complejidad CiclomáticaEstructurasDatos - Complejidad Ciclomática
EstructurasDatos - Complejidad Ciclomática
 
Pruebas de caja blanca y negra
Pruebas  de caja blanca y negraPruebas  de caja blanca y negra
Pruebas de caja blanca y negra
 
Software caja negra y caja blanca
Software caja negra y caja blancaSoftware caja negra y caja blanca
Software caja negra y caja blanca
 
Triggers
TriggersTriggers
Triggers
 
Tecnicas de Agrupamiento
Tecnicas de AgrupamientoTecnicas de Agrupamiento
Tecnicas de Agrupamiento
 
tipos de prueba
tipos de pruebatipos de prueba
tipos de prueba
 
Programación dinámica
Programación dinámica Programación dinámica
Programación dinámica
 
cobertura de bucles
cobertura de buclescobertura de bucles
cobertura de bucles
 
Pruebas de penetración nmap
Pruebas de penetración nmapPruebas de penetración nmap
Pruebas de penetración nmap
 
Bases de datos para la toma de decisiones
Bases de datos para la toma de decisionesBases de datos para la toma de decisiones
Bases de datos para la toma de decisiones
 
Métodos de switching
Métodos de switching Métodos de switching
Métodos de switching
 
Prueba De La Estructura De Control
Prueba De La Estructura De ControlPrueba De La Estructura De Control
Prueba De La Estructura De Control
 
Unidad2 Bases De Datos Para L Toma De Desiciones
Unidad2 Bases De Datos Para L Toma De DesicionesUnidad2 Bases De Datos Para L Toma De Desiciones
Unidad2 Bases De Datos Para L Toma De Desiciones
 
Especificación de Requerimientos del Sistema - Actividad final trimestre II -...
Especificación de Requerimientos del Sistema - Actividad final trimestre II -...Especificación de Requerimientos del Sistema - Actividad final trimestre II -...
Especificación de Requerimientos del Sistema - Actividad final trimestre II -...
 
Toma de decisiones
Toma de decisionesToma de decisiones
Toma de decisiones
 
Diagramas De Flujo
Diagramas De FlujoDiagramas De Flujo
Diagramas De Flujo
 

Similar a cobertura de caminos

Similar a cobertura de caminos (20)

Metodo de costos_minimos
Metodo de costos_minimosMetodo de costos_minimos
Metodo de costos_minimos
 
Practica 3
Practica 3Practica 3
Practica 3
 
Practica 3 (1)
Practica 3 (1)Practica 3 (1)
Practica 3 (1)
 
10 semana sesion 19 problema de transporte
10 semana   sesion 19 problema de transporte10 semana   sesion 19 problema de transporte
10 semana sesion 19 problema de transporte
 
Tecnias de pruebas
Tecnias de pruebas Tecnias de pruebas
Tecnias de pruebas
 
Modelo de redes
Modelo de redes Modelo de redes
Modelo de redes
 
Memmetpp
MemmetppMemmetpp
Memmetpp
 
REPRESENTACION ALGORITMOS
REPRESENTACION ALGORITMOSREPRESENTACION ALGORITMOS
REPRESENTACION ALGORITMOS
 
Modelo transporte
Modelo transporteModelo transporte
Modelo transporte
 
Qmb11ch10a problematranspoete
Qmb11ch10a problematranspoeteQmb11ch10a problematranspoete
Qmb11ch10a problematranspoete
 
Diseño de sistemas productivos y logísticos
Diseño de sistemas productivos y logísticosDiseño de sistemas productivos y logísticos
Diseño de sistemas productivos y logísticos
 
Practica 2 problemas de programacion
Practica 2 problemas de programacionPractica 2 problemas de programacion
Practica 2 problemas de programacion
 
Opt redes logistica2
Opt redes logistica2Opt redes logistica2
Opt redes logistica2
 
pruebas caja negra y blanca.pdf
pruebas caja negra y blanca.pdfpruebas caja negra y blanca.pdf
pruebas caja negra y blanca.pdf
 
Caja negra
Caja negraCaja negra
Caja negra
 
Ruteo
RuteoRuteo
Ruteo
 
Riesgo en el Schedule del Proyecto
Riesgo en el Schedule del ProyectoRiesgo en el Schedule del Proyecto
Riesgo en el Schedule del Proyecto
 
301401 10 practica1-informe fibra
301401 10 practica1-informe fibra301401 10 practica1-informe fibra
301401 10 practica1-informe fibra
 
Reporte de practicas
Reporte de practicasReporte de practicas
Reporte de practicas
 
Unidad 3 algoritmos especiales de programacion lineal
Unidad 3 algoritmos especiales de programacion linealUnidad 3 algoritmos especiales de programacion lineal
Unidad 3 algoritmos especiales de programacion lineal
 

Más de Juan Esteban Puerta Cano (17)

Portafolio Telematica
Portafolio TelematicaPortafolio Telematica
Portafolio Telematica
 
Formato presentacion de propuesta Bases de datos avanzadas
Formato presentacion de propuesta Bases de datos avanzadasFormato presentacion de propuesta Bases de datos avanzadas
Formato presentacion de propuesta Bases de datos avanzadas
 
Minero de Datos
Minero de DatosMinero de Datos
Minero de Datos
 
Tecnicas de Diseño de Algoritmos
Tecnicas de Diseño de AlgoritmosTecnicas de Diseño de Algoritmos
Tecnicas de Diseño de Algoritmos
 
Capa de presentacion
Capa de presentacionCapa de presentacion
Capa de presentacion
 
Bi conceptos
Bi conceptosBi conceptos
Bi conceptos
 
Migracion de datos
Migracion de datosMigracion de datos
Migracion de datos
 
Adsl 2
Adsl 2Adsl 2
Adsl 2
 
Trabajo red telematica
Trabajo red telematicaTrabajo red telematica
Trabajo red telematica
 
Programación dinámica
Programación dinámicaProgramación dinámica
Programación dinámica
 
7 técnicas estáticas
7   técnicas estáticas7   técnicas estáticas
7 técnicas estáticas
 
técnicas estáticas
técnicas estáticastécnicas estáticas
técnicas estáticas
 
Exposicion metodos de recoleccion de requerimientos final
Exposicion metodos de recoleccion de requerimientos finalExposicion metodos de recoleccion de requerimientos final
Exposicion metodos de recoleccion de requerimientos final
 
planificación de pruebas
  planificación de pruebas  planificación de pruebas
planificación de pruebas
 
niveles de prueba
niveles de pruebaniveles de prueba
niveles de prueba
 
proceso de pruebas
proceso de pruebasproceso de pruebas
proceso de pruebas
 
Introducción Pruebas Software
Introducción Pruebas SoftwareIntroducción Pruebas Software
Introducción Pruebas Software
 

cobertura de caminos

  • 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