Cobertura de BuclesBucles Simples
Bucles AnidadosBucles Concatenados
Bucles No EstructuradosEjercicios
Cobertura de Bucles
Andres Felipe Cano Cadavid [email protected]
Tecnologico de Antioquia
23 de Septiembre del 2013
Andres Felipe Cano Cadavid [email protected] Cobertura de Bucles
Cobertura de BuclesBucles Simples
Bucles AnidadosBucles Concatenados
Bucles No EstructuradosEjercicios
Cobertura de Bucles
Se centra exclusivamente en la validez de las construcciones de bucles:
Simples
Anidados
Concatenados
No Estructurados
Andres Felipe Cano Cadavid [email protected] Cobertura de Bucles
Cobertura de BuclesBucles Simples
Bucles AnidadosBucles Concatenados
Bucles No EstructuradosEjercicios
Ejemplos
Bucles Simples
Se les aplica el siguiente conjunto de pruebas:
Pasar por alto totalmente el bucle.
Pasar una sola vez por el bucle.
Pasar dos veces por el bucle.
Hacer m pasos por el bucle con m < n (donde n es el numeromaximo de pasos permitidos por el bucle).
Hacer n − 1, n y n + 1 pasos por el bucle.
Andres Felipe Cano Cadavid [email protected] Cobertura de Bucles
Cobertura de BuclesBucles Simples
Bucles AnidadosBucles Concatenados
Bucles No EstructuradosEjercicios
Ejemplos
Ejemplo
Algorithm 1 ejemplo1(x, y)1: while (x < 100 and x > 0) 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 Bucles
Cobertura de BuclesBucles Simples
Bucles AnidadosBucles Concatenados
Bucles No EstructuradosEjercicios
Ejemplos
Ejemplo
Algorithm 2 divisores(n)1: nro = 12: while (nro <= n/2) do3: if (n%nro == 0) then4: Escribir nro5: end if6: nro = nro + 17: end while
Andres Felipe Cano Cadavid [email protected] Cobertura de Bucles
Cobertura de BuclesBucles Simples
Bucles AnidadosBucles Concatenados
Bucles No EstructuradosEjercicios
Ejemplos
Bucles Anidados
Si se empleara el mismo enfoque de prueba de bucles simples a losbucles anidados, el numero de pruebas aumentarıa considerablementepor lo cual se sugiere emplear el siguiente enfoque:
Comenzar por el bucle mas interior. Establecer o configurar losdemas bucles con sus valores mınimos.
Llevar a cabo las pruebas de bucles simples para el bucle masinterior, mientras se mantienen los parametros de iteracion de losbucles externos en sus valores mınimos. Anadir otras pruebas paravalores fuera de rango o excluidos.
Progresar hacia fuera, llevando a cabo pruebas para el siguientebucle, pero manteniendo todos los bucles externos en sus valoresmınimos y los demas bucles anidados en sus valores tıpicos.
Continuar hasta que se hayan probado todos los bucles.
Andres Felipe Cano Cadavid [email protected] Cobertura de Bucles
Cobertura de BuclesBucles Simples
Bucles AnidadosBucles Concatenados
Bucles No EstructuradosEjercicios
Ejemplos
Ejemplo
Algorithm 3 ejemplo2(A , n, m)1: if (n < 10 and m < 20) then2: suma = 03: i = 14: while (i ≤ n) do5: j = 16: while j ≤ m do7: suma = suma + A [i][j]8: j = j + 19: end while
10: i = i + 111: end while12: return suma/(n ∗m)13: end if
Andres Felipe Cano Cadavid [email protected] Cobertura de Bucles
Cobertura de BuclesBucles Simples
Bucles AnidadosBucles Concatenados
Bucles No EstructuradosEjercicios
Ejemplos
Bucles Concatenados
Estos bucles se pueden probar utilizando el enfoque de bucles simples,siempre y cuando cada uno de los bucles sea independiente del resto delo contrario se debe emplear el enfoque de bucles anidados.
Andres Felipe Cano Cadavid [email protected] Cobertura de Bucles
Cobertura de BuclesBucles Simples
Bucles AnidadosBucles Concatenados
Bucles No EstructuradosEjercicios
Ejemplos
Ejemplo
Algorithm 4 ejemplo(A , n)1: menor = A [n]2: distancia = 03: i = n − 14: while (i > 0) do5: if menor > A [i] then6: menor = A [i]7: end if8: i = i − 19: end while
10: i = n11: while (i > 0) do12: distancia = A [i] −menor13: i = i − 114: end while15: return distanciaAndres Felipe Cano Cadavid [email protected] Cobertura de Bucles
Cobertura de BuclesBucles Simples
Bucles AnidadosBucles Concatenados
Bucles No EstructuradosEjercicios
Bucles No Estructurados
Siempre que sea posible estos bucles deben redisenarse.
Andres Felipe Cano Cadavid [email protected] Cobertura de Bucles
Cobertura de BuclesBucles Simples
Bucles AnidadosBucles Concatenados
Bucles No EstructuradosEjercicios
Pares
Algorithm 5 pares(x)1: i = 22: while (i <= x) do3: Escribir i4: i = i + 25: end while
Andres Felipe Cano Cadavid [email protected] Cobertura de Bucles
Cobertura de BuclesBucles Simples
Bucles AnidadosBucles Concatenados
Bucles No EstructuradosEjercicios
Palindromo
Algorithm 6 palindromo(palabra)1: n = length(palabra)2: if (n > 20) then3: Escribir ’Palabra muy larga’4: else5: if (n == 0) then6: Escribir ’No es una palabra’7: else8: i = 19: palabra2 =′′
10: while (i <= n) do11: palabra2 = palabra[i]12: i = i + 113: end while14: if (palabra = palabra2) then15: Escribir ’Es palindromo’16: end if17: end if18: end if
Andres Felipe Cano Cadavid [email protected] Cobertura de Bucles
Cobertura de BuclesBucles Simples
Bucles AnidadosBucles Concatenados
Bucles No EstructuradosEjercicios
Levenshtein
Algorithm 7 levenshtein(palabra1, palabra2)1: n1 = length(palabra1)
2: n2 = length(palabra2)
3: if (n1 > 50 or n1 == 0 or n2 > 50 or n2 == 0) then
4: Escribir ’Palabras no validas’5: else6: i = 17: while (i <= n1) do
8: distancia[i][1] = i
9: i = i + 110: end while11: j = 112: while (i <= n2) do
13: distancia[1][j] = j
14: j = j + 115: end while16: i = 217: while (i <= n1) do
18: j = 219: while (j <= n2) do
20: distancia[i][j] = min(distancia[i−1][j]+1, distancia[i][j−1]+1, distancia[i−1][j−1]+((palabra1[i−1] == palabra2[j−1])?0 :1))
21: end while22: end while23: end if24: return distancia
Andres Felipe Cano Cadavid [email protected] Cobertura de Bucles
Top Related