Pruebas de caja blanca

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Pruebas de caja blanca"

Transcripción

1 Pruebas de caja blanca Prueba y Mantenimiento del Software Alicia Bárbara Expósito Santana 23/04/2012

2 INDICE 1.- Introducción Pruebas Prueba del camino básico 4 Gráfico de flujo 4 Complejidad ciclomática 7 Descripción de los caminos 9 o 1er camino 10 o 2º camino 11 o 3er camino 12 o 4º camino 13 o 5º camino 14 o 6º camino Prueba de condición 18 o 1era expresión 19 o 2ª expresión Tabla 1 20 Tabla 2 21 Tabla 3 22 Tabla 4 23 o 3er expresión Prueba de bucles Conclusiones 27 2

3 1.- Introducción Las pruebas de caja blanca, que sería mejor llamarlas de caja transparente, se establecen por medio del diseño de casos que usan como base las estructuras de control del flujo. Estas pruebas se pueden clasificar en tres tipos según sus objetivos: 1. Que se ejecute por lo menos una vez cada instrucción del programa. 2. Garantizar que todas las condiciones se comprueban como verdaderas y falsas. 3. Que se ejecuten los bucles, probando el caso general y los casos extremos. Para comprobar la ausencia de errores en el software haremos tres pruebas. La primera es la prueba del camino básico, que se basa en la complejidad del flujo de ejecución desglosado en un conjunto básico de caminos. Los casos en los que se divide la prueba, obtenidos en función del conjunto básico, garantizan que se ejecuta por lo menos una vez cada sentencia del programa. La prueba de condiciones tiene como objetivo ejercitar adecuadamente todas las condiciones del módulo para buscar errores que puedan estar en variables lógicas, paréntesis, operadores relacionales o expresiones lógicas. Por último la prueba de bucles tiene como objetivo reducir la posibilidad de que se pase por alto un error no encontrado en otro tipo de prueba. 3

4 2.- Pruebas Prueba del camino básico Gráfico de flujo Generar el gráfico de flujo indicando a qué zona del código corresponde cada nodo. El grafo del flujo representa los caminos de ejecución que se pueden seguir en un procedimiento, módulo, etc. Es un grafo orientado en el que los vértices representan instrucciones o conjuntos de instrucciones que se ejecutan como una unidad, como por ejemplo, la asignación de valores a variables, sentencias de control de iteración en bucles y sentencias de comprobación de la iteración en estructuras de control, y las aristas representan bifurcaciones en el flujo. Cada arista representa la posibilidad de que una vez terminada la ejecución de un vértice se pase a ejecutar otro. El gráfico de flujo de ejecución del programa es el siguiente: 4

5 El gráfico de flujo se obtiene a partir de observar el código y asignarle a cada sentencia el número del nodo que le corresponde, como se observa en la siguiente tabla: PARÁMETROS DE LA INTERFAZ DE LA FUNCIÓN Interface returns media, total.entrada, total.valido; Interface acepts valor, mínimo, máximo; DECLARACIÓN DE TIPOS Type valor[1:100] is SCALAR array; Type media, total.entrada, total.valido, minimo, máximo, suma is SCALAR; Type i is INTEGER; INICIALIZACIÓN DE VARIABLES i=1; total.entrada=total.valido=0; suma=0; Nodo 1 CÓDIGO DE LA FUNCIÓN do while valor[i]<>-999 and Nodo 2 total.entrada<100 Nodo 3 { total.entrada++; Nodo 4 If valor[i] >=minimo and Nodo 5 valor <=máximo Nodo 6 Then {total.valido++; Suma+=valor[i];} Nodo 7 Else null; End if; i++; Nodo 8 end do} if total.valido>0 Nodo 9 Then media = suma/total.valido; Nodo 10 Else media = -999; Nodo 11 End if; End media; Nodo 12 5

6 Como podemos ver, la declaración de tipos no supone una acción a contemplar en el grafo, pero sí lo es la inicialización, ya que es una asignación de valores. También contemplamos las sentencias de control y por último, el final de la función, ya que el programa no debería acabar en dos nodos, que serían los 10 y 11, sino en un doceavo nodo, que suponga el retorno de la función. Para poder apreciarlo claramente, podemos observar la siguiente imagen, donde se muestra el grafo con la instrucción correspondiente a cada nodo: 6

7 Complejidad ciclomática La complejidad ciclomática es un parámetro de los grafos de flujo y representa la complejidad lógica de ejecución del programa. En el contexto de las pruebas, la cuantía de la complejidad ciclomática representa el número de caminos independientes que forman un conjunto de caminos básicos y por ello nos da el número mínimo de pruebas que garantiza la ejecución de cada instrucción al menos una vez. La complejidad ciclomática se representa por CC(G) y se puede calcular de varias formas: 1. CC(G) = Número de regiones en que se subdivide el plano que representa el grafo, considerando la que queda fuera del grafo como una región más. En este caso, la complejidad ciclomática de nuestro grafo quedaría como CC(G) = 6, ya que: CC(G) = 6, porque existen las regiones R1, R2, R3, R4, R5 y R6. Es necesario tener en cuenta que la región 3 es la misma que la región exterior, por lo que sólo se cuenta una vez. 7

8 2. CC(G) = Aristas Vértices + 2. En este caso tenemos 16 aristas, que son las líneas que unen los nodos, y 12 vértices, que son los distintos nodos. Haciendo el cálculo obtenemos que la complejidad ciclomática de nuestro grafo quedaría como: CC(G) = = 6, debido a que A = 16 y V = CC(G) = P + 1, donde P es el número de vértices desde donde parte más de una arista, aunque esta definición no se puede aplicar con la estructura de selección de múltiples alternativas, ya que desde un vértice parten más de dos aristas. En nuestro caso el número de vértices desde donde sale más de una arista es cinco, ya que los nodos número 2, 3, 5, 6 y 9 tienen más de una alternativa. Por ello, la complejidad ciclomática de nuestro grafo sería la siguiente: CC(G) = = 6, ya que de los vértices 2, 3, 5, 6 y 9 sale más de una arista. Dado que con las tres formas de calcular la complejidad ciclomática obtenemos el mismo resultado, no cabe lugar a la duda de que el cálculo esté mal realizado. El resultado de la complejidad ciclomática nos indica el número de caminos básicos posibles, es decir, de caminos independientes que se pueden generar. 8

9 Descripción de los distintos caminos básicos La generación de los casos en los que se divide la prueba se puede realizar siguiendo unos sencillos pasos que se enumeran a continuación: 1. Partiendo del código fuente se representa el grafo de flujo. 2. Se determina la complejidad ciclomática. 3. Se genera un conjunto básico de caminos. O sea, tantos caminos independientes como indica la complejidad ciclomática. 4. Se establecen los datos que forzarán la ejecución de cada camino del conjunto básico. Por tanto, pueden obtenerse seis posibles caminos básicos que se muestran a continuación y que ordenamos de más corto a más largo: 1. Nodos: 1, 2, 9, 10, Nodos: 1, 2, 9, 11, Nodos: 1, 2, 3, 9, 10, Nodos: 1, 2, 3, 4, 5, 8, 2, Nodos: 1, 2, 3, 4, 5, 6, 8, 2, 6. Nodos: 1, 2, 3, 4, 5, 6, 7, 8, 2, A continuación se muestran los valores necesarios de los parámetros de entrada para cada uno de los caminos y los valores de los parámetros de salida esperados y su correspondiente explicación: 9

10 1. Primer camino: El primer camino nunca se podrá ejecutar porque, para que no se cumpla la condición del nodo número 2, se debe estar observando en la primera iteración una posición que no pertenece al array, por lo que en la condición del nodo 9, el total.válido será 0, y no mayor que 0, por lo que dicha condición no se acepta y es imposible acceder al nodo 10. i=1; total.entrada=total.valido=0; suma=0; Nodo 1 do while valor[i]<>-999 and Nodo 2 if total.valido>0 Nodo 9 Then media = suma/total.valido; Nodo End media; Nodo 12 Camino Parámetros de Entrada Parámetros de Salida Nodos: 1, 2, 9, 10, 12 Valor[1] = no válido No se observa el array. IMPOSIBLE, NUNCA SE EJECUTARÁ ESTE CAMINO. 10

11 2. Segundo camino: El segundo camino se puede reproducir, ya que, para que no se cumpla la condición del nodo número 2, se debe estar observando un valor no perteneciente al array, y el total.válido es 0, ya que se inicializó en el nodo número 1, con lo que no se accede al bucle sino que se comprueba la condición del nodo 9. Dado que el valor de la variable total.válido no se ha modificado y es 0, se accede al nodo número 11, asignando a la variable media el valor i=1; total.entrada=total.valido=0; suma=0; Nodo 1 do while valor[i]<>-999 and Nodo 2 if total.valido>0 Nodo 9... Else media = -999; Nodo 11 End media; Nodo 12 Camino Parámetros de Entrada Parámetros de Salida Nodos: 1, 2, 9, 11, 12 Valor[1] = no válido No se observa el array. Media = -999 Total.entrada = 0 Total.válido = 0 11

12 3. Tercer camino: El tercer camino no se ejecutará nunca, ya que, para que se cumpla la condición del nodo número 2, se debe estar observando el primer valor del array, y el número total de datos de entrada para la primera iteración es 0, ya que la variable total.entrada se inicializó a 0 en el nodo número 1, con lo que debería entrar al bucle, es decir, al nodo 4, pero salta al nodo número 10, lo que es imposible para ser la primera iteración. i=1; total.entrada=total.valido=0; suma=0; Nodo 1 do while valor[i]<>-999 and Nodo 2 total.entrada<100 Nodo 3 if total.valido>0 Nodo 9... Else media = -999; Nodo 11 End media; Nodo 12 Camino Parámetros de Entrada Parámetros de Salida Nodos: 1, 2, 3, 9, 10, 12 Valor[1] = válido IMPOSIBLE, NUNCA SE EJECUTARÁ ESTE CAMINO 12

13 4. Cuarto camino: El cuarto camino se puede ejecutar, ya que, para que se cumpla la condición del nodo número 2, se debe estar observando el primer valor del array, y la condición del nodo número 3 también se cumple, ya que la variable total.entrada se inicializó en el nodo número 1 y no ha cambiado su valor, con lo que se entra en el bucle y se incrementa el valor de la variable total.entrada en el nodo número 4, con lo que se quedaría con valor numérico total.entrada = 1. El siguiente paso para que se siguiese el flujo esperado es que el valor observado del array fuera menor que el mínimo estipulado, lo cual no se puede permitir, como expresa la condición del nodo número 5, con lo que el programa decidiría ignorarlo, incrementando en el nodo número 8 el valor de la variable i, que hace de iterador, y continuando con el bucle. i=1; total.entrada=total.valido=0; suma=0; Nodo 1 do while valor[i]<>-999 and Nodo 2 total.entrada<100 Nodo 3 { total.entrada++; Nodo 4 If valor[i] >=minimo and Nodo 5 i++; Nodo 8 Camino Parámetros de Entrada Parámetros de Salida Nodos: 1, 2, 3, 4, 5, 8, 2,... Valor[1] = válido Valor[1] < mínimo Total.entrada = 1 Total.válido = 0 Suma = 0 13

14 5. Quinto camino: El quinto camino se puede ejecutar, ya que para que se cumpla la condición del nodo número 2, se debe estar observando el primer valor del array, y la condición del nodo número 3 también se cumple, ya que la variable total.entrada se inicializó en el nodo número 1 y no ha cambiado su valor, con lo que se entra en el bucle y se incrementa el valor de la variable total.entrada en el nodo número 4, con lo que se quedaría con valor numérico total.entrada = 1. El siguiente paso para que se siguiese el flujo esperado es que el valor observado del array fuera mayor que el mínimo estipulado, lo cual es lo deseable, como expresa la condición del nodo número 5, pero también mayor que el valor máximo, lo cual no se debe permitir, como expresa claramente el nodo número 6, con lo que el programa decidiría ignorarlo, incrementando en el nodo número 8 el valor de la variable i, que hace de iterador y continuando con el bucle. i=1; total.entrada=total.valido=0; suma=0; Nodo 1 do while valor[i]<>-999 and Nodo 2 total.entrada<100 Nodo 3 { total.entrada++; Nodo 4 If valor[i] >=minimo and Nodo 5 valor <=máximo Nodo 6... i++; Nodo 8 Camino Parámetros de Entrada Parámetros de Salida Nodos: 1, 2, 3, 4, 5, 6, 8, 2, Valor[1] = válido Valor[1] >= mínimo y Valor[1] > máximo Total.entrada = 1 Total.válido = 0 Suma = 0 14

15 6. Sexto camino: Por último, el sexto camino se puede ejecutar, ya que, para que se cumpla la condición del nodo número 2, se debe estar observando el primer valor del array, y la condición del nodo número 3 también se cumple, ya que la variable total.entrada se inicializó en el nodo número 1 y no ha cambiado su valor, con lo que se entra en el bucle y se incrementa el valor de la variable total.entrada en el nodo número 4, con lo que se quedaría con valor numérico total.entrada = 1. El siguiente paso para que se siguiese el flujo esperado es que el valor observado del array estuviera entre los valores mínimos y máximos permitidos, lo cual es deseable, como expresan los nodos números 5 y 6. A continuación se accedería al nodo número 7, donde se actualizarían algunas variables, y a continuación al 8, incrementando el valor de la variable i, que hace de iterador, y continuando con el bucle. i=1; total.entrada=total.valido=0; suma=0; Nodo 1 do while valor[i]<>-999 and Nodo 2 total.entrada<100 Nodo 3 { total.entrada++; Nodo 4 If valor[i] >=minimo and Nodo 5 valor <=máximo Nodo 6 Then {total.valido++; Suma+=valor[i];} Nodo 7 i++; Nodo 8 Camino Parámetros de Entrada Parámetros de Salida Nodos: 1, 2, 3, 4, 5, 6, 7, 8, 2, Valor[1] = válido Valor[1] >= mínimo y Valor[1] <= máximo Total.entrada = 1 Total.válido = 1 Suma = Valor[1] 15

16 Por tanto concluimos con la siguiente tabla, donde se muestra el resumen de lo que se ha dicho hasta ahora: los caminos, los parámetros de entrada necesarios para su ejecución y sus correspondientes grafos. Camino Número Parámetros de Entrada Parámetros de Salida Color Nodos: 1, 2, 9, 10, 12 1 Valor[1] = no válido No se observa el array. IMPOSIBLE, NUNCA SE EJECUTARÁ ESTE CAMINO Rojo Nodos: 1, 2, 9, 11, 12 2 Valor[1] = no válido No se observa el array. Media = -999 Total.entrada = 0 Total.válido = 0 Naranja Nodos: 1, 2, 3, 9, 10, 12 3 Valor[1] = válido IMPOSIBLE, NUNCA SE EJECUTARÁ ESTE CAMINO Amarillo Nodos: 1, 2, 3, 4, 5, 8, 2,... 4 Valor[1] = válido Valor[1] < mínimo Total.entrada = 1 Total.válido = 0 Verde Suma = 0 Nodos: 1, 2, 3, 4, 5, 6, 8, 2, 5 Valor[1] = válido Valor[1] >= mínimo y Valor[1] > máximo Total.entrada = 1 Total.válido = 0 Suma = 0 Azul Nodos: 1, 2, 3, 4, 5, 6, 7, 8, 2, 6 Valor[1] = válido Valor[1] >= mínimo y Valor[1] <= máximo Total.entrada = 1 Total.válido = 1 Suma = Valor[1] Violeta 16

17 Camino 1 Camino 2 Camino 3 Camino 4 Camino 5 Camino 6 17

18 2.2.- Prueba de condición Indicar para cada una de las posibilidades de cada una de las condiciones los valores de entrada y de salida Es más frecuente encontrar errores en las instrucciones condicionales que en las secuenciales. Las condiciones están formadas por variables lógicas, expresiones lógicas y expresiones relacionales. El objetivo de las pruebas de condiciones es ejercitar adecuadamente todas las condiciones del módulo para buscar errores que puedan estar en variables lógicas, paréntesis, operadores relacionales o expresiones lógicas. Para ejercitar una condición se deben comprobar todos los casos posibles de ésta, teniendo en cuenta que para una expresión lógica con n operandos se necesitarán pruebas. Las condiciones son las siguientes: 1. VALOR[i] <>999 and total.entrada< VALOR[i]>=mínimo and valor<=máximo 3. total.válido>0 Como podemos ver, las condiciones que encontramos en el código son la expresión VALOR[i] <>999 and total.entrada<100, que tiene dos operandos, por lo que necesitará tablas; la expresión VALOR[i]>=mínimo and valor<=máximo, que tiene cuatro operandos, por lo que necesitará tablas; y la expresión total.válido>0, que tiene un operando, por lo que necesitará tablas. A continuación se muestran en tablas las tres condiciones, indicando las posibles opciones de valores verdadero-falso que podrían tomar, el valor de sus variables y el resultado que daría cada una de las posibles opciones. 18

19 1. Para la expresión VALOR[i] <>999 and total.entrada<100, hay una única posible tabla: VALOR[i] <>-999 and total.entrada<100 VALOR [i] Total.entrada Resultado VV Type Integer <100 Continuar VF Type Integer >100 IMPOSIBLE FV Fuera del array <100 No continuar FF Fuera del array >100 No continuar Para esta expresión se dan cuatro posibles opciones de valores verdadero-falso. VV, tendría que estar observándose un valor del array y el total de la entrada ser menor que cien, con lo que se continuaría la ejecución normal del programa. VF, tendría que estar observándose un valor del array y el total de entrada ser mayor que cien, lo cual es imposible ya que el array tiene como máximo cien nodos, así que el total de entrada será como máximo cien. FV, tendría que darse el caso de que se estuviera observando un valor no perteneciente al array y que el total de la entrada fuera menor que cien, lo cual es posible y nada extraño, con lo que la condición no se aceptaría y el programa decidiría no aceptarla y no continuar. FF, tendría que darse el caso de que no se estuviera observando una posición del array y el total de la entrada fuera mayor que cien, lo cual no podrá ocurrir nunca, porque el total de entrada llegará como máximo a cien, que es el número de nodos que tendrá el array como máximo. 19

20 2. Para la expresión VALOR[i]>=mínimo and valor<=máximo, hay cuatro posibles opciones reflejadas en las cuatro siguientes tablas. Para ello hemos supuesto un valor mínimo y máximo de prueba. Tabla 1: VALOR[i]>mínimo and valor<máximo VALOR [i] mínimo máximo Resultado VV >0 y < Continuar VF >0 y >= No continuar FV <=0 y < No continuar FF <=0 y >= IMPOSIBLE Para esta expresión se dan cuatro posibles opciones de valores verdadero-falso. VV, tendría que estar observándose un valor del array que estuviera entre el mínimo y el máximo, ambos no incluídos, con lo que se aceptaría y se continuaría con la ejecución normal del programa. Ejemplo: 50. VF, tendría que estar observándose un valor del array que fuera igual o mayor al máximo permitido (obviamente es mayor que el mínimo permitido), lo cual no se acepta y el programa decide no continuar. Ejemplo: 100. FV, tendría que estar observándose un valor del array que fuera menor o igual que el mínimo permitido (obviamente menor que el máximo permitido), lo cual no se acepta y el programa decide no continuar. Ejemplo: 0. FF, tendría que darse el caso de que el valor observado del array fuera menor o igual que el mínimo y mayor o igual que el máximo, lo cual es imposible y nunca sucederá. Ejemplo: inexistente. 20

21 Tabla 2: VALOR[i]=mínimo and valor=máximo VALOR [i] mínimo máximo Resultado VV =0 y = Continuar VF =0 y!= No continuar FV!=0 y = No continuar FF!=0 y!= No continuar Para esta expresión se dan cuatro posibles opciones de valores verdadero-falso. VV, tendría que estar observándose un valor del array que fuera el mínimo y el máximo, lo cual se aceptaría si el mínimo y el máximo tuvieran el mismo valor numérico. Ejemplo: 0. VF, tendría que estar observándose un valor del array que fuera igual al mínimo permitido pero distinto al máximo, lo cual no se acepta y el programa decide no continuar. Ejemplo: 0. FV, tendría que estar observándose un valor del array que distinto que el mínimo permitido pero igual que el máximo, lo cual no se acepta y el programa decide no continuar. Ejemplo: 100. FF, tendría que darse el caso de que el valor observado del array fuera distinto que el mínimo y que el máximo, lo cual es posible, pero no se permite, con lo que se decide no continuar. Ejemplo:

22 Tabla 3: VALOR[i]>mínimo and valor=máximo VALOR [i] mínimo máximo Resultado VV >0 y = Continuar VF >0 y!= No continuar FV <=0 y = IMPOSIBLE FF <=0 y!= No continuar Para esta expresión se dan cuatro posibles opciones de valores verdadero-falso. VV, tendría que estar observándose un valor mayor que el mínimo e igual al máximo, lo cual se acepta y se decide continuar. Ejemplo: 100. VF, tendría que estar observándose un valor mayor que el mínimo pero distinto al máximo, lo cual no se aceptaría y se decidiría no continuar. Ejemplo: 50. FV, tendría que darse el caso de que se estuviera observando un valor menor o igual que el mínimo e igual al máximo, lo cual es imposible. Ejemplo: inexistente. FF, tendría que darse el caso de que se estuviera observando un valor menor o igual que el mínimo y distinto al máximo, con lo que se decidiría no continuar. Ejemplo: 0. 22

23 Tabla 4: VALOR[i]=mínimo and valor <máximo VALOR [i] mínimo máximo Resultado VV =0 y < Continuar VF =0 Y >= IMPOSIBLE FV!=0 y < No continuar FF!=0 y >= No continuar Para esta expresión se dan cuatro posibles opciones de valores verdadero-falso. VV, tendría que estar observándose un valor igual al mínimo y que sea menor que el máximo. Esto sucedería si el mínimo y el máximo no tienen el mismo valor numérico. Ejemplo: 0. VF, tendría que estar observándose un valor igual al mínimo pero mayor o igual que el máximo. En este caso no se aceptaría, pero si el mínimo y el máximo tuvieran el mismo valor numérico, como por ejemplo el 0, se aceptaría. Para este caso es imposible. FV, tendría que darse el caso de que se estuviera observando un valor distinto al mínimo pero menor que el máximo, lo cual es posible, pero decide no aceptarse. Ejemplo: 50. FF, tendría que darse el caso de que se estuviera observando un valor del array distinto al mínimo y menor o igual que el máximo, lo cual es posible, pero decide no aceptarse. Ejemplo:

24 3. Para la expresión total.válido>0, hay una única posible tabla: Total.válido>0 Total.válido Media Resultado V >0 Suma/total.válido Continuar F <=0-999 No continuar Para esta expresión se dan dos posibles opciones de valores verdadero-falso. V, tendría que haberse observado algún valor permitido entre los límites mínimos y máximos permitidos. Con ello la media resultante sería el valor numérico de la suma entre el valor numérico del total.válido. F, tendría que no haberse observado ningún valor permitido entre los límites mínimos y máximo permitidos. Si el total.válido fuera cero, estaría no permitido y la media resultante sería el valor numérico -999, mientras que la otra opción sería que el total.válido fuera menor que cero, lo cual es imposible. 24

25 2.3.- Prueba de bucles Aplicar el bucle a todas las pruebas simples de bucles Los bucles son elementos comunes en los que se fundamentan muchos algoritmos, por ello y teniendo en cuenta que es un lugar frecuénteme de aparición de errores es válido dedicarles una atención especial. El diseño de las pruebas para probar los bucles tienen como objetivo reducir la posibilidad de que pase por alto un error no encontrado en otro tipo de prueba. Para un bucle en el que se permiten hasta n pasos de plantearían las siguientes pruebas: 1. No pasar por el bucle, es decir, iterar cero veces. 2. Iterar una sola vez. 3. Iterar dos veces. 4. Iterar k veces, siendo k un número menor que n. 5. Iterar n-1 veces. 6. Iterar n veces Los resultados de esta prueba los observamos en la siguiente tabla donde se recogen los datos obtenidos en las pruebas mencionadas variando el número de iteraciones. En la primera columna se muestra el número de iteraciones que deseamos que ocurran; en la columna de Valor[i] vemos lo que sería necesario que sucediera con esa posición del array para que se ejecutara el bucle el número de veces deseado; en la columna donde se indica el total.entrada se observa el valor necesario que tendría que tener dicho valor para que se ejecutara el bucle de la forma deseada en la primera columna; por último, podemos ver el resultado que dará el programa. 25

26 Iteraciones Valor[i] Total.entrada Resultado 0 veces Array no existente 1 vez Array(*) con 1 valor mínimo 2 veces Array(*) con 2 valores mínimo Total.entrada < 100 Total.entrada < 100 Total.entrada < 100 Media = -999 Media = valor observado del array Media = suma de los valores observados del array / 2. k veces (k = 25 < n) Array(*) con 25 valores mínimo Total.entrada < 100 Media = suma de los valores observados del array / 25. n 1 veces (n 1 = 99) Array(*) con 98 valores mínimo Total.entrada < 100 Media = suma de los valores observados del array / 98. n veces (n = 100) Array(*) con 99 valores mínimo Total.entrada < 100 Media = suma de los valores observados del array / 99. * = si existiera. 26

27 3.- Conclusiones El desarrollo de programas implica una serie de actividades humanas en las que la posibilidad de que se produzcan fallos es enorme. Encontrar estos fallos es una tarea primordial para un programador. A veces, no es posible hacer una verificación formal por la existencia de límites temporales, problemas de mercado, etc., en cuyo caso cabe realizar una serie de pruebas de tipo práctico a modo de test para acortar en lo posible los errores. Debido a la imposibilidad de hacer pruebas exhaustivas, la no existencia de fallos en un programa nunca estará garantizada si no se realiza una verificación formal. Existen varias técnicas de pruebas que utilizan dos enfoques distintos, por un lado se trata de aprovechar el conocimiento de las especificaciones del programa y por otro lado las estructuras básicas globales, porque no es posible su diseño, sino de pruebas puntuales incidiendo en las dos líneas anteriores. En concreto, en esta práctica hemos abordado las pruebas del tipo llamado de caja blanca, aplicadas a programas sencillos, habiendo realizado pruebas de caminos básicos, pruebas de condiciones y pruebas de bucles. 27

TU SOFTWARE ES CORRECTO? PRUEBALO

TU SOFTWARE ES CORRECTO? PRUEBALO TU SOTWARE ES CORRECTO? PRUEBALO Resumen AUTORIA INMACULADA VILLÉN ALTAMIRANO TEMÁTICA TU SOTWARE ES CORRECTO? PRUEBALO ETAPA ESO, BACHILLERATO, CICLO DE GRADO MEDIO Y SUPERIOR En un proyecto software

Más detalles

Elemento crítico para la garantía de calidad del software y representa una revisión final de las especificaciones, del diseño y de la codificación.

Elemento crítico para la garantía de calidad del software y representa una revisión final de las especificaciones, del diseño y de la codificación. Prueba del Software Elemento crítico para la garantía de calidad del software y representa una revisión final de las especificaciones, del diseño y de la codificación. Curso 2005/2006 Ingeniería del Software

Más detalles

Calidad del Software. Ejercicios Tema 4 Conceptos de pruebas

Calidad del Software. Ejercicios Tema 4 Conceptos de pruebas Tema 4 Conceptos de Pruebas Calidad del Software Ejercicios Tema 4 Conceptos de pruebas Calidad del Software Enfoque de Caja Blanca: Prueba del camino básico FUNCIÓN PASCAL Especificar un conjunto de pruebas

Más detalles

TEMA 2.1 TIPOS DE PRUEBAS DEL SOFTWARE

TEMA 2.1 TIPOS DE PRUEBAS DEL SOFTWARE TEMA 2.1 TIPOS DE PRUEBAS DEL SOFTWARE INTRODUCCIÓN La prueba del software es un elemento crítico para la garantía de la calidad del software y representa una revisión final de las especificaciones, del

Más detalles

TÉCNICAS DE CAJA BLANCA

TÉCNICAS DE CAJA BLANCA TÉCNICAS DE CAJA BLANCA UNIVERSIDAD DEL VALLE DOCENTE BEATRIZ FLORIAN GAVIRIA Basado Parcialmente en Material de la Empresa Green-SQA de ParqueSoft AGENDA Introducción Técnica de cobertura de caminos Técnicas

Más detalles

Fundamentos de Pruebas de Software

Fundamentos de Pruebas de Software Fundamentos de Pruebas de Software Referencias básicas Ingeniería de software. Un enfoque práctico. Pressman, R. Quinta edición. Mc. Graw Hill 2002 Ingeniería de software. Sommerville, I. Séptima edición.

Más detalles

Tema 20: La importancia de realizar pruebas

Tema 20: La importancia de realizar pruebas Departamento de Ciencias e Ingeniería de la Computación Academia de Ciencias de la Computación Tema 20: La importancia de realizar pruebas M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com

Más detalles

PRUEBAS DE CAJA BLANCA

PRUEBAS DE CAJA BLANCA PRUEBAS DE CAJA BLANCA PARTE. DESCRIPCIÓN DE TÉCNICAS Se examinan los caminos lógicos del sistema haciendo diversos recorridos. Sus objetivos son: Ejecutar por lo menos una vez todos los caminos independientes

Más detalles

Universidad de Cantabria. Facultad de Ciencias Ingeniería en Informática. Ingeniería del Software II

Universidad de Cantabria. Facultad de Ciencias Ingeniería en Informática. Ingeniería del Software II Universidad de Cantabria. Facultad de Ciencias Ingeniería en Informática. Ingeniería del Software II Ejercicios del Tema 1: Construcción y Pruebas del Software Ejercicio 1 Se desean realizar pruebas de

Más detalles

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid. ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid. Indíce Algoritmo Elementos de un algoritmo: Variables, Constantes, Expresiones Datos: Definición y

Más detalles

Estructuras de control Agosto de Facultad de Ingeniería. Universidad del Valle

Estructuras de control Agosto de Facultad de Ingeniería. Universidad del Valle Estructuras de control carlos.andres.delgado@correounivalle.edu.co Facultad de Ingeniería. Universidad del Valle Agosto de 2016 Contenido 1 2 3 Definición Estas sentencias son asociados a dos posibles

Más detalles

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main. LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan

Más detalles

Tema I Testing Estructurado

Tema I Testing Estructurado Tema I Testing Estructurado 4ta Parte Verificación y Validación de Software UNS Contenido Testing de Unidad: Caja Negra Grafos Causa Efecto Clases de Equivalencia Valores Límite Verificación y Validación

Más detalles

Java para no Programadores

Java para no Programadores Java para no Programadores Programa de Estudio Java para no Programadores Aprende a programar con una de las tecnologías más utilizadas en el mercado de IT y comienza tu camino como desarrollador Java.

Más detalles

Conceptos. Generales ALGORITMOS

Conceptos. Generales ALGORITMOS Conceptos 1 Generales ALGORITMOS Que es un Algoritmo? 2 Es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos

Más detalles

Java para no Programadores

Java para no Programadores Java para no Programadores Programa de Estudio Java para no Programadores Aprende a programar con una de las tecnologías más utilizadas en el mercado de IT. Este curso está orientado a quienes no tienen

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java II... 6 Estructuras de control... 7 Estructuras de selección... 8 Sentencia if... 9 Sentencia if - else... 12 Operador condicional...

Más detalles

Programación Web Tema 3.2 Java Script Estructura del Lenguaje. Ramón Alcarria ETSI en Topografía, Geodesia y Cartografía - UPM

Programación Web Tema 3.2 Java Script Estructura del Lenguaje. Ramón Alcarria ETSI en Topografía, Geodesia y Cartografía - UPM Programación Web Tema 3.2 Java Script Estructura del Lenguaje Miguel Ángel Manso Emerson Castañeda Ramón Alcarria ETSI en Topografía, Geodesia y Cartografía - UPM Contenido Variables Operadores Estructuras

Más detalles

Tema 2. El lenguaje JAVA

Tema 2. El lenguaje JAVA Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias

Más detalles

Guía práctica de estudio 04: Diagramas de flujo

Guía práctica de estudio 04: Diagramas de flujo Página 63/214 Guía práctica de estudio 04: Diagramas de flujo 63 Página 64/214 Guía práctica de estudio 04: Diagramas de flujo Objetivo: Elaborar diagramas de flujo que representen soluciones algorítmicas

Más detalles

Ciclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL

Ciclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL Ciclos Fundamentos de Programación Recordando Estructuras de Control Básicas: Una secuencia es una serie de estatutos que se ejecutan uno después de otro. Selección (condición) ejecuta diferentes estatutos

Más detalles

Tema 4: Pruebas - Conceptos. Departamento de Lenguajes y Sistemas Informáticos II

Tema 4: Pruebas - Conceptos. Departamento de Lenguajes y Sistemas Informáticos II Tema 4: Pruebas - Departamento de Lenguajes y Sistemas Informáticos II Índice....... Verificaci y Validaci Qué significa verificar el? Determinar si los productos de una fase dada satisfacen las condiciones

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión III La Sintaxis de Java II... 6 Estructuras de Control... 7 Estructuras de Selección... 8 Sentencia

Más detalles

a. Integración Top Down b. Integración Buttom Up c. Ninguna de las anteriores d. Módulo de integración.

a. Integración Top Down b. Integración Buttom Up c. Ninguna de las anteriores d. Módulo de integración. Nombre: Puntaje: 1. Defectos Típicos que son más fáciles de encontrar en las revisiones que en las pruebas dinámicas son los siguientes: A. Desviaciones de las normas. B. Defectos en los requerimientos.

Más detalles

Objetivos de la práctica: - Trabajar las estructuras de control repetitivas en la realización de programas.

Objetivos de la práctica: - Trabajar las estructuras de control repetitivas en la realización de programas. Objetivos de la práctica: - Trabajar las estructuras de control repetitivas en la realización de programas. Sentencias de Control repetitivas (o bucles) Al igual que las estructuras selectivas, el bucle

Más detalles

Estructuras de Control

Estructuras de Control Algorítmica y Lenguajes de Programación Estructuras de Control Estructuras de Control. Introducción Hasta ahora algoritmos han consistido en simples secuencias de instrucciones Existen tareas más complejas

Más detalles

Tema 3. Estructuras de control

Tema 3. Estructuras de control Tema 3. Estructuras de control 3.1. Secuencial 3.2. Selección 3.3. Repetición 2 Objetivos Objetivos del tema: Conocer y saber la utilidad de las tres estructuras de control (secuencial, alternativa y repetitiva)

Más detalles

Laboratorio de Arquitectura de Redes. Sentencias de control en lenguaje C

Laboratorio de Arquitectura de Redes. Sentencias de control en lenguaje C Laboratorio de Arquitectura de Redes Sentencias de control en lenguaje C Sentencias de control en lenguaje C Introducción Sentencia if-else Sentencia switch Sentencia while Sentencia do-while Sentencia

Más detalles

Informática Ingeniería en Electrónica y Automática Industrial

Informática Ingeniería en Electrónica y Automática Industrial Informática Ingeniería en Electrónica y Automática Industrial Sentencias de control en lenguaje Sentencias de control en lenguaje Introducción Sentencia if-else Sentencia switch Sentencia while Sentencia

Más detalles

Guía práctica de estudio 05: Diagramas de flujo

Guía práctica de estudio 05: Diagramas de flujo Guía práctica de estudio 05: Diagramas de flujo Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 05: Diagramas de

Más detalles

GENERACIÓN DE CÓDIGO ORIENTADO A OBJETOS

GENERACIÓN DE CÓDIGO ORIENTADO A OBJETOS GENERACIÓN DE CÓDIGO ORIENTADO A OBJETOS A.- ASPECTOS FUNDAMENTALES DEL CÓDIGO ORIENTADO A OBJETOS MÓDULOS DE CÓDIGO: El código en Visual Basic se almacena en módulos. Hay tres tipos de módulos: de formulario,

Más detalles

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten

Más detalles

Tipos de Datos de python (2ª parte):

Tipos de Datos de python (2ª parte): Tipos de Datos de python (2ª parte): Enteriormente hemos visto algunos de los tipos de datos que maneja python. Vimos: int, float, chr, str, bool También vimos como convertir datos a cada uno de estos

Más detalles

Guía de Ejercicios de Cálculo de Subredes

Guía de Ejercicios de Cálculo de Subredes Guía de Ejercicios de Cálculo de Subredes EJEMPLO 1.- Para la red 192.168.10.0 con mascara 255.255.255.0, obtener 8 subredes. Solución: 1. Comprobar si se pueden tener esas subredes con la configuración

Más detalles

Operadores. Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++.

Operadores. Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++. Operadores Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++. Operadores aritméticos Son operadores binarios (requieren siempre dos operandos) que realizan las operaciones aritméticas

Más detalles

Sentencias de control de flujo

Sentencias de control de flujo Bucles Sentencias de control de flujo Departamento de Electrónica Fundación San Valero Bucles Hasta ahora los programas que hemos visto eran lineales. Comenzaban por la primera instrucción y acababan por

Más detalles

FUNDAMENTOS DE INFORMÁTICA

FUNDAMENTOS DE INFORMÁTICA FUNDAMENTOS DE INFORMÁTICA Tema 2 Expresiones, operadores y estructuras de control Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo Fundamentos de Informática. Departamento de Ingeniería

Más detalles

TEMA 4. ESTRUCTURAS DE CONTROL

TEMA 4. ESTRUCTURAS DE CONTROL M.P. Sesmero, P. de Toledo, F.J. Ordoñez, J. Gómez-Romero, J.A. Iglesias, J.L. Mira Programación TEMA 4. ESTRUCTURAS DE CONTROL Grado en Ingeniería en Tecnologías Industriales Programación CONTENIDOS 4.1.

Más detalles

Tema 6 Control de Flujo

Tema 6 Control de Flujo Tema 6 Control de Flujo Contenidos 1. Secuencia de Instrucciones. 2. Sentencias Condicionales. if switch 3. Estructuras de Repetición. while for do while ( break / continue ) 2 1. Secuencia de Instrucciones

Más detalles

Estructuras Repetitivas

Estructuras Repetitivas Estructuras Repetitivas Se solicita al operador que ingrese tres números enteros cualesquiera. En base a estos números, mostrar por pantalla cual es el mayor de todos. Diag. De Flujos Pseudocódigo Matlab

Más detalles

TEMA 5. ESTRUCTURAS DE CONTROL: BUCLES.

TEMA 5. ESTRUCTURAS DE CONTROL: BUCLES. TEMA 5. ESTRUCTURAS DE CONTROL: BUCLES. Una de las características de las computadoras que aumenta considerablemente su potencia es su capacidad para ejecutar una tarea muchas (repetidas) veces con gran

Más detalles

ESTRUCTURA SECUENCIAL ESTRUCTURA SELECTIVA

ESTRUCTURA SECUENCIAL ESTRUCTURA SELECTIVA ESTRUCTURA SECUENCIAL Es aquélla en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta

Más detalles

Casos de Prueba. Caja Blanca y Caja Negra

Casos de Prueba. Caja Blanca y Caja Negra Casos de Prueba Caja Blanca y Caja Negra CAJA BLANCA Tipos de Prueba: Prueba de la Ruta Básica Pruebas de la estructura de control Prueba de condición Prueba del flujo de datos Prueba de ciclos PRUEBA

Más detalles

ESTRUCTURAS DE CONTROL

ESTRUCTURAS DE CONTROL ESTRUCTURAS DE CONTROL En lenguajes de programación, las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa. Con las estructuras de control se puede: De

Más detalles

PHP: Lenguaje de programación

PHP: Lenguaje de programación Francisco J. Martín Mateos Carmen Graciani Diaz Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Tipos de datos Enteros Con base decimal: 45, -43 Con base octal: 043, -054

Más detalles

Estructuras de Control Selección o Decisión

Estructuras de Control Selección o Decisión Estructuras de Control Selección o Decisión Corina Flores Villarroel UMSS 1 Introducción Al ser un algoritmo una secuencia de pasos ordenados, estos deben seguir una trayectoria para su ejecución desde

Más detalles

DATOS PROGRAMA PROCESADOR

DATOS PROGRAMA PROCESADOR ORDENADOR Maquina capaz de aceptar datos por una entrada, los almacena en una memoria donde previamente se a almacenado un programa o programas y con ellos ejecutar un proceso. DATOS DATOS ENTRADA PROGRAMA

Más detalles

Sentencias iterativas

Sentencias iterativas Sentencias iterativas 1. Objetivos Al finalizar esta actividad, serás capaz de: 1. Utilizar adecuadamente la sentencia while para generar la repetición en la ejecución de grupos de sentencias 2. Motivación

Más detalles

Arreglos y Subrangos

Arreglos y Subrangos Arreglos y Subrangos Programación 1 InCo - FING Programación 1 Arreglos y Subrangos InCo - FING 1 / 27 Tipos de datos definidos por el programador Programación 1 Arreglos y Subrangos InCo - FING 2 / 27

Más detalles

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC. Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC. Variables Conceptos de Memoria Una variable es un espacio en la memoria del PC Cada variable tiene un nombre, un tipo, un tamaño y un valor

Más detalles

PRUEBAS DE SISTEMAS. Hungría Berbesí UNEFA Ingeniería de Sistemas

PRUEBAS DE SISTEMAS. Hungría Berbesí UNEFA Ingeniería de Sistemas PRUEBAS DE SISTEMAS Hungría Berbesí UNEFA Ingeniería de Sistemas Técnicas de prueba El desarrollo de Sistemas de software implica la realización de una serie de actividades predispuestas a incorporar

Más detalles

Programación: Estructuras de Control

Programación: Estructuras de Control Programación: 2 Estructuras de Control Contenido 2.1.- Introducción 2.2.- Estructuras de Selección 2.2.1.- Sentencia if 2.2.2.- Sentencia switch 2.3.- Estructuras de Iteración 2.3.1.- Sentencia while 2.3.2.-

Más detalles

Modelos de calidad. Técnicas de prueba del software Estrategias de prueba del software. Calidad del software. Factores de Calidad. producto.

Modelos de calidad. Técnicas de prueba del software Estrategias de prueba del software. Calidad del software. Factores de Calidad. producto. Técnicas de prueba del software Estrategias de prueba del software 1 Modelos de calidad Calidad del software Factores de Calidad Criterios de calidad del proceso producto Métricas del proceso producto

Más detalles

JavaScript: Estructuras de control de flujo

JavaScript: Estructuras de control de flujo Las estructuras if y if...else no son muy eficientes cuando se desea ejecutar de forma repetitiva una instrucción. Por ejemplo, si se quiere mostrar un mensaje cinco veces, se podría pensar en utilizar

Más detalles

JavaScript Básico. Elementos Básicos: Comentarios: Literales: Valores que puede tomar una variable o una constante.

JavaScript Básico. Elementos Básicos: Comentarios: Literales: Valores que puede tomar una variable o una constante. Javascript (II) 1 Elementos Básicos: Comentarios: Para una línea // Esto es un Comentario Para un bloque /*......... */ Literales: Valores que puede tomar una variable o una constante. Ejemplos: "Soy una

Más detalles

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice

Más detalles

Sentencia for : Ejemplo de Uso

Sentencia for : Ejemplo de Uso ESTRUCTURAS REPETITIVAS: for Anteriormente se discutió a la sentencias while y do-while que se utilizan en C++ para programar la ejecución de ciclos; existe sin embargo otra forma de representar sentencias

Más detalles

Objetivos de la prueba

Objetivos de la prueba Introducción. El desarrollo de sistemas de software implica una serie de actividades de producción en las que las posibilidades de que aparezca el fallo humano son enormes. Los errores pueden empezar a

Más detalles

Sentencia1 Sentencia2 Cuerpo del bucle

Sentencia1 Sentencia2 Cuerpo del bucle PROGRAMACIÓN 10 Prof. Dolores Cuiñas H. Recuerde que estos son apuntes muy simplificados que deberá completar con la bibliografía recomendada APUNTES Nº 6 ESTRUCTURAS DE CONTROL REPETITIVAS: son aquellas

Más detalles

Programación Estructurada

Programación Estructurada Programación Estructurada Técnica de programación que consiste en construir programas de fácil comprensión. Es mucho más sencillo entender la codificación del programa, que se habrá hecho en diferentes

Más detalles

fundamentos de programación (unidad 4) programación estructurada en Java

fundamentos de programación (unidad 4) programación estructurada en Java fundamentos de programación (unidad 4) programación estructurada en Java Para ver una copia completa de la licencia, acudir a la dirección http://creativecommons.org/licenses/by-nc-sa/2.5/es/legalcode.es

Más detalles

Tema 5. Soporte lógico de computadoras.

Tema 5. Soporte lógico de computadoras. Tema 5. Soporte lógico de computadoras. 5.1 Conceptos generales Como se ha visto previamente, un ordenador consta de dos partes, una la parte física, conocida como "Hardware" y otra, la parte lógica denominada

Más detalles

Estructuras Repe,,vas

Estructuras Repe,,vas Estructuras Repe,,vas Se solicita al operador que ingrese tres números enteros cualesquiera. En base a estos números, mostrar por pantalla cual es el mayor de todos. Diag. De Flujos Pseudocódigo Matlab

Más detalles

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática Programación de Computadores 4 Iteraciones y Decisiones Prof. Javier Cañas Universidad Técnica Federico Santa María Departamento de Informática Contenido 1 Introducción 2 Operadores Relacionales y Lógicos

Más detalles

Guía práctica de estudio 05: Pseudocódigo

Guía práctica de estudio 05: Pseudocódigo Guía práctica de estudio 05: Pseudocódigo Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Autorizado por: M.C. Alejandro Velázquez Mena Guía

Más detalles

Palabras reservadas de C++ y C. Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones.

Palabras reservadas de C++ y C. Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones. Palabras reservadas de C++ y C Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones. A continuación se muestra el link del listado de palabras

Más detalles

Fase de Pruebas Introducción.

Fase de Pruebas Introducción. Fase de Pruebas Introducción. El desarrollo de sistemas de software implica una serie de actividades de producción en las que las posibilidades de que aparezca el fallo humano son enormes. Los errores

Más detalles

Esquemas repetitivos en Fortran 90. Esquemas repetitivos en Fortran 90. Esquemas repetitivos en Fortran 90. Tipos de Esquema

Esquemas repetitivos en Fortran 90. Esquemas repetitivos en Fortran 90. Esquemas repetitivos en Fortran 90. Tipos de Esquema Los esquemas repetitivos permiten implementar iteraciones del lenguaje algorítmico (mientras, repetir, para, hasta). Podemos dividir los esquemas según: - Se conozcan el número de iteraciones a priori,

Más detalles

Estructuras de control

Estructuras de control Estructuras de control Introducción Los algoritmos vistos hasta el momento han consistido en simples secuencias de instrucciones; sin embargo, existen tareas más complejas que no pueden ser resueltas empleando

Más detalles

Estructuras en LabVIEW.

Estructuras en LabVIEW. Estructuras en LabVIEW. Sumario: 1. Ejecución según el flujo de datos. 2. Estructuras básicas disponibles en LabVIEW. a) Estructura Sequence. b) Estructura Case. c) Estructura For Loop. d) Estructura While

Más detalles

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO Control de Flujo Estructuras de Control Experiencia Educativa de Algorítmica 1 Introducción El estilo de como escribimos y analizamos un algoritmo se convierte en una de las principales características

Más detalles

TESTS EXAMEN ISG ACTUALIZADO SEP TEMA 6 PRUEBAS DEL SOFTWARE

TESTS EXAMEN ISG ACTUALIZADO SEP TEMA 6 PRUEBAS DEL SOFTWARE 01 [Sep. 2006] Según Boehm, validar es: TEMA 6 PRUEBAS DEL SOFTWARE a) Estamos construyendo el producto correcto?. (pág. 420) b) Estamos construyendo correctamente el producto?. c) El producto funciona?.

Más detalles

1. Detalle de los Comandos:

1. Detalle de los Comandos: 1. Detalle de los Comandos: Este es un resumen puede servir como guía rápida para consultas, para mas detalles remitirse a la Ayuda de PSeInt. Observar que cada línea que termina una sentencia debe tener

Más detalles

1.9. SENTENCIAS DE CONTROL DE PROGRAMA

1.9. SENTENCIAS DE CONTROL DE PROGRAMA 1.9. SENTENCIAS DE CONTROL DE PROGRAMA En C todas las instrucciones o sentencias terminan en punto y coma (;) Un bloque se compone de varias instrucciones o sentencias encerradas entre llaves. Las estructuras

Más detalles

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC. Programación n Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño o Vargas MsC. Variables y expresiones aritméticas Variables Conceptos de Memoria Una variable es un espacio en la memoria

Más detalles

EXAMENES RESUELTOS DE PROGRAMACION I

EXAMENES RESUELTOS DE PROGRAMACION I EXAMENES RESUELTOS DE PROGRAMACION I Comentarios por Jose Antonio Vaqué EXAMEN DE Febrero 2005-1ª Semana - Tipo C Soluciones no oficiales 1.- Las variables de tipo puntero utilizan: a) El procedimiento

Más detalles

Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González.

Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González. Programación Básica Arturo Vega González a.vega@ugto.mx Division de Ciencias e Ingenierías Universidad de Guanajuato Campus León Sesión 5 Universidad de Guanajuato, DCI, Campus León 1 / 31 Universidad

Más detalles

Verificación. Taller de Programación

Verificación. Taller de Programación Verificación Taller de Programación Error, Defecto y Falla puede generar Un defecto un error humano (interna) que puede generar?! una falla (externa) El software falla cuando No hace lo requerido o Hace

Más detalles

Esquemas repetitivos en Fortran 90

Esquemas repetitivos en Fortran 90 Los esquemas repetitivos permiten implementar iteraciones del lenguaje algorítmico (mientras, repetir, para, hasta). Podemos dividir los esquemas según: - Se conozcan el número de iteraciones a priori,

Más detalles

Fundamentos de los Computadores Grado en Ingeniería Informática

Fundamentos de los Computadores Grado en Ingeniería Informática 7. Camino de datos y unidad de control o Fundamentos de los Computadores Grado en Ingeniería Informática Introducción La versatilidad es una característica deseable de los sistemas digitales Un sistema

Más detalles

Capítulo 4. Control de flujo. Continuar

Capítulo 4. Control de flujo. Continuar Capítulo 4 Control de flujo Continuar Introducción El control de flujo permite encausar a la computadora sobre la ruta que debe seguir al momento de la ejecución de un programa, para ello se apoya en las

Más detalles

Lección 3 Sentencias de control

Lección 3 Sentencias de control 3.1. INTRODUCCIÓN - Hasta aquí: ejecución secuencial de los programas. - Aquí vamos a ver: Lección 3 Sentencias de control Sentencias de control Sentencias condicionales: if- y switch-case Sirven para

Más detalles

Unidad 1. Análisis de Algoritmos. Ing. Leonardo R. L. Estructura de datos - Generalidades Unidad I Pág 1

Unidad 1. Análisis de Algoritmos. Ing. Leonardo R. L. Estructura de datos - Generalidades Unidad I Pág 1 Unidad 1 Análisis de Algoritmos Ing. Leonardo R. L. Estructura de datos - Generalidades Unidad I Pág 1 GENERALIDADES Qué se necesita para escribir un programa eficiente? Para diseñar programas eficientes

Más detalles

Unidad II: Análisis semántico

Unidad II: Análisis semántico Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico

Más detalles

Resistencias eléctricas

Resistencias eléctricas esistencias eléctricas Las resistencias son elementos pasivos que consumen energía debido a su oposición al paso de la corriente eléctrica. Dicha oposición cumple la ley de Ohm (VI ). Las resistencias

Más detalles

Índice general 7. Presentación 15

Índice general 7. Presentación 15 ÍNDICE GENERAL Índice general 7 Presentación 15 1. Introducción 19 1.1. Antecedentes históricos de la computación................... 19 1.2. Definiciones previas............................... 24 1.3.

Más detalles

3.2. Programación estructurada. Principal. Modulo 1 Modulo 2 Modulo 3 Modulo 4. Modulo Modulo Modulo 3 1 Modulo 4 1 Modulo 4 2. Pág.

3.2. Programación estructurada. Principal. Modulo 1 Modulo 2 Modulo 3 Modulo 4. Modulo Modulo Modulo 3 1 Modulo 4 1 Modulo 4 2. Pág. CAP. 3. PROGRAMACION ESTRUCTURADA 3.1. Técnicas de programación Las herramientas de programación fundamentalmente los diagramas de flujo, son las representaciones gráficas utilizada para el diseño de algoritmos

Más detalles

TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ;

TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ; TEMA 5. CONTROL DE FLUJO DEL PROGRAMA 5.1 Sentencias Una sentencia es una expresión seguida de un punto y coma. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ; El ; es obligatorio

Más detalles

EXAMENES RESUELTOS DE PROGRAMACION I

EXAMENES RESUELTOS DE PROGRAMACION I EXAMENES RESUELTOS DE PROGRAMACION I Comentarios por Jose Antonio Vaqué EXAMEN DE septiembre 1994, Reserva Soluciones no oficiales 1.- Determinar los valores reales válidos en Modula-2: a) 56.2F-54 y 2.2

Más detalles

Apunte Laboratorio ALPI - El lenguaje de programación Pascal

Apunte Laboratorio ALPI - El lenguaje de programación Pascal Apunte Laboratorio ALPI - El lenguaje de programación Pascal 1 2 ÍNDICE GENERAL Índice 1. Estructura de un Programa en Pascal 3 2. Sintaxis de Pascal 4 2.1. Uso de mayúsculas.....................................

Más detalles

PRU Prueba de software: principios y técnicas

PRU Prueba de software: principios y técnicas PRU Prueba de software: principios y técnicas Introducción... 2 Casos de prueba... 4 Principios de la prueba del software... 5 Procesos de prueba... 7 Tipos de pruebas... 8 Técnicas de prueba de caja blanca...

Más detalles

La resolución de problemas es una tarea únicamente humana comprobable en todos los casos con los mismos resultados.

La resolución de problemas es una tarea únicamente humana comprobable en todos los casos con los mismos resultados. Pseudocódigo Introducción La importancia de sistematizar procesos y crear programas de cómputo radica esencialmente en que estos se puedan utilizar como resolución de problemas similares en muchos casos,

Más detalles

Sumador con comprobación (1)

Sumador con comprobación (1) Fundamentos de Informática 2012-2013 Laboratorio 3 Sentencias condicionales Objetivos: Diseñar diagramas de flujo de programas con sentencias condicionales Codificar programas VB con sentencias condicionales

Más detalles

Módulo. = Asignación = = Comp. de igualdad!= Com. de desigualdad <= Comp. menor o igual >= Comp. mayor o igual AND lógico OR lógica.

Módulo. = Asignación = = Comp. de igualdad!= Com. de desigualdad <= Comp. menor o igual >= Comp. mayor o igual AND lógico OR lógica. EQUIVALENCIAS BÁSICAS ENTRE PASCAL Y C A continuación se presentan algunas equivalencias básicas entre estos lenguajes de programación : Operadores en lenguaje C: Operador Descripción % Módulo = Asignación

Más detalles

Parte 4: Estructuras de Control

Parte 4: Estructuras de Control Parte 4: Estructuras de Control Las estructuras de control le permiten controlar el flujo de ejecución del programa. Tenemos dos tipos de estructuras de control: Estructuras de decisión Estructuras de

Más detalles

Algorítmica y Lenguajes de Programación. Búsqueda

Algorítmica y Lenguajes de Programación. Búsqueda Algorítmica y Lenguajes de Programación Búsqueda Búsqueda. Introducción Hace dos lecciones se dijo que había tres tratamientos básicos sobre vectores: Recorrido. Ordenación. Búsqueda. Durante las últimas

Más detalles

Java para programadores

Java para programadores Java para programadores Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) montenegro@fdi.ucm.es Contenidos Variables. Tipos

Más detalles

Introducción a Java. Introducción a Java. Programación I

Introducción a Java. Introducción a Java. Programación I Introducción a Java Introducción a Java Programación I Como Funciona Tipos de Datos TIPO TAMAÑO RANGO byte 8 bits Valores numéricos de 128 a 127 short 16 bits Valores numéricos de 32.768 a 32.767 int 32

Más detalles

Fundamentos de Programación

Fundamentos de Programación Fundamentos de Programación COMENTARIOS Microsoft Visual Basic interpreta que todo lo que está a la derecha del carácter ( ) en una línea cualquiera de programa es un comentario y no ejecuta acción alguna.

Más detalles

Francisco J. Hernández López

Francisco J. Hernández López Francisco J. Hernández López fcoj23@cimat.mx Estructura de datos no lineales donde cada componente o nodo puede tener uno o más predecesores (a diferencia de los árboles) y sucesores Un grafo esta formado

Más detalles