Verificación y Validación de Software

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

Download "Verificación y Validación de Software"

Transcripción

1 Verificación y Validación de Ingeniería en Sistemas de Información Departamento de Ciencias e Ingeniería de la Computación 2015

2 VyVS 2016 / DCIC / UNS

3 Tablas de Decisiones Decision Tables Aplicable a situaciones de transacciones, donde puede aplicar reglas de negocios. ENTEROS f( x : Entero )

4 Condiciones Tarjeta Real? Y Y Y Y Y Y Y Y N N N N N N N N Tarjeta Activa? Y Y Y Y N N N N Y Y Y Y N N N N Dentro de los límites? Y Y N N Y Y N N Y Y N N Y Y N N En Mercosur? Y N Y N Y N Y N Y N Y N Y N Y N Acciones Aprobar Compra? Y N N N N N N N N N N N N N N N Llamar al cliente? N Y Y Y N Y Y Y N N N N N N N N Llamar al vendedor? N N N N Y Y Y Y Y Y Y Y Y Y Y Y

5 Grafos Causa-Efecto Cause-Effect Graphs Real Aprobar Activa Vendedor Límite Mercosur Cliente

6 Casos de Uso (Uses Cases)

7 Diagrama de Transiciones de Estados State Transition Diagrams

8 Diagrama de Transiciones de Estados State Transition Diagrams Los criterios de cubrimiento se definen a partir de cómo visitamos los estados y las transiciones (o sea, cómo recorremos el grafo). Criterio 1: Suficientes test como para cubrir cada estado y transición en el diagrama de transiciones. Criterio 2: Suficientes test como para cubrir cada fila en la tabla de transición. Criterio 3: Por lo menos un test cubre cada secuencia de transiciones de longitud N o menos (N-1 switch coverage)

9 Diagrama de Transiciones de Estados State Transition Diagrams 0-switch A1 A2 A9 B10 B8 B3 C14 C11 C4 D13 D12 D5 1-switch A1A1 A1A2 A1A9 A9B10 A9B8 A9B3 B10C14 B10C11 B10C4 B9A1 B8A2 B8A9 C14C14 C14C11 C14C4 C11D13 C11D12 C11D5 D13D13 D13D12 D13D5 D12F6 D12F7 F6 F7 F7A1 F7A2 F7A9 A1A1A2 A9B8A1A9B8A2 A9B10C14C14C4 A9B10C11S12D13D5 A9B10C11D12F7A1A9B10C11S12F7A9

10 Tabla de Transición de Estados (State Transition Tables) Browsing Selecting Logging Purchasing Confirmed Left X Click link Add to cart Continue shopping Login[bad] Login[good] Purchase[bad] Purchase[good] Abandon Resume shopping Go elsewhere

11 Pairwise Testing Pairwise Testing

12 Arreglo Ortogonal Orthogonal Array

13 Testing de Caja Negra Black box Testing

14 Árboles de Clasificación Classification Trees

15 Árboles de Clasificación Classification Trees An initial value and a length define a range of values. Determine if a given value is within the defined range or not. Only integer numbers are to be considered

16 Árboles de Clasificación Classification Trees

17 Árboles de Clasificación Classification Trees

18 Árboles de Clasificación Classification Trees

19 Árboles de Clasificación Classification Trees Los casos de test se generan combinando las hojas del árbol

20 Árboles de Clasificación Classification Trees Los casos de test se generan combinando las hojas del árbol

21 Testing de Árboles de Clasificación (Classification Trees) Testeo de factores que tienen dependencia y testeo más profundo de ciertas combinaciones sobre otras.

22 Árboles de Clasificación Classification Trees

23 Árboles de Clasificación Classification Trees

24 Árboles de Clasificación Classification Trees

25 Árboles de Clasificación Classification Trees

26

27 Testing Dinámico Dynamic Testing El Testing Dinámico se puede dividir en cuatro categorías, con varias zonas grises en el medio. Caja Negra Caja Blanca Basado en Experiencia También llamada Basada en Especificación. El testing se hace en base al comportamiento del sistema, sin tomar en cuenta los detalles de implementación para generar los casos de test. Basado en Defectos Análisis Dinámico

28 Testing de Caja Blanca White box Testing

29 Testing Dinámico Dynamic Testing El Testing Dinámico se puede dividir en cuatro categorías, con varias zonas grises en el medio. Caja Negra Caja Blanca Los casos de test se diseñan en base a cómo el sistema fue construido. El código es una documentación fundamental para este tipo de test. Basado en Experiencia Basado en Defectos Análisis Dinámico

30 Testing de Caja Blanca White box Testing

31 Testing de Caja Blanca Formalismos

32 Testing de Caja Blanca Formalismos Un programa P es considerado una función del conjunto de datos D, dominio de la función, en el conjunto de datos R, el codominio. (P: D -> R )

33 Testing de Caja Blanca Formalismos Sí (P: D -> R ) entonces P(d) = r, ejecución de P con d. ok(p, d), si P(d) es correcto, satisface lo especificado. ok(p), si P es correcto para cada elemento d del dominio D. Ssi for all d en D, ok(p,d).

34 Testing de Caja Blanca Formalismos Un test T para un programa con dominio D, es un subconjunto del dominio D. Un elemento t de un test T es un dato de test. La ejecución de un test T consiste en la ejecución de P para todos los datos de test t contenidos en T

35 Testing del Flujo de Control Control-Flow Testing

36 Testing del Flujo de Control Control-Flow Testing El flujo de control de un programa, es la estructura que determina los caminos que se pueden tomar a lo largo del código. Los if, while, repeat, case, forman parte de la estructura de control.

37 Testing del Flujo de Control Control-Flow Testing Para este tipo de testing vamos a usar como modelo un grafo de control. Como criterio de cubrimiento vamos a tener múltiples opciones.

38 Testing del Flujo de Control Control-Flow Testing Para este tipo de testing vamos a usar como modelo un grafo de control. Como criterio de cubrimiento vamos a tener múltiples opciones. Ejecutar todo el código parecería ser el mejor cubrimiento, pero...

39 Testing del Flujo de Control Control-Flow Testing Qué es todo?

40 Criterios de Cubrimiento Criterio de Comandos Criterio de Decisiones Criterio de Condiciones y Decisiones Criterio de Condiciones Múltiples Criterio de Bucles Criterio de Caminos

41 Testing del Flujo de Control Control-Flow Testing Importante: Un cubrimiento del 100% no es equivalente a un testing completo. Un cubrimiento del 100% significa completitud con respecto a cierta estrategia.

42 Grafo de Flujo de Control Control-Flow Graph

43 Grafo de Flujo de Control Control-Flow Graph El Grafo de Flujo de Control es el modelo/representación que nos va a facilitar realizar/evaluar los diferentes cubrimiento.

44 Grafo de Flujo de Control Control-Flow Graph B1 B2 Dos sentencias de código en secuencia

45 Grafo de Flujo de Control Control-Flow Graph int x = 23; x++; f( x );

46 Grafo de Flujo de Control Control-Flow Graph int x = 23; x++; f( x ); Como, en este ejemplo, no se modifica el flujo de control vamos a considerarlo un único nodo.

47 Grafo de Flujo de Control Control-Flow Graph B2 B1 IF B1 THEN { B2; } B4 B4 IF-THEN

48 Grafo de Flujo de Control Control-Flow Graph B2 B1 B3 IF B1 THEN { B2; } ELSE { B3; } B4 B4 IF-THEN-ELSE

49 Grafo de Flujo de Control Control-Flow Graph B2 B1 B3 WHILE B1 { B2; } B3; CICLO

50 Grafo de Flujo de Control Control-Flow Graph PROGRAM VAR x,y:real BEGIN Read(x); Read(y); IF (x!= 0) THEN x = x + 10; y = y / 10; Write(x); Write(y); END

51 Grafo de Flujo de Control Control-Flow Graph Read(x) Read(y) 1 PROGRAM VAR x,y:real BEGIN Read(x); not( x!= 0 ) 2 x!= 0 Read(y); IF (x!= 0) THEN x = x + 10; y = y / x 4 3 x = x + 10 y = y / 10; Write(x); Write(y); END Write(x) Write(y) 5

52 Criterios de Cubrimiento Criterio de Comandos Read(x) Read(y) 1 2 not( x!= 0 ) x!= 0 3 x = x + 10 y = y / x 4 Write(x) Write(y) 5

53 Criterios de Cubrimiento Criterio de Comandos Read(x) Read(y) 1 Un test T satisface este criterio ssi cada comando (sentencia) ejecutable del programa es ejecutado al 2 menos una vez. Visito todos los nodos. not( x!= 0 ) x!= 0 3 x = x + 10 y = y / x 4 Write(x) Write(y) 5

54 Criterios de Cubrimiento Criterio de Comandos Read(x) Read(y) 1 Un test T satisface este criterio ssi cada comando (sentencia) ejecutable del programa es ejecutado al menos una vez. not( x!= 0 ) 2 x!= 0 El camino [1, 2, 3, 4, 5] visita todos los nodos del grafo. Si pudiese encontrar un par (x, y) (o más pares) tal que al usarlos como inputs se ejecutase dicho camino, entonces podríamos decir que el test T = {(x,y)} satisface el Criterio de Comandos. y = y / x 4 3 x = x + 10 Write(x) Write(y) 5

55 Criterios de Cubrimiento Criterio de Comandos Read(x) Read(y) 1 Un test T satisface este criterio ssi cada comando (sentencia) ejecutable del programa es ejecutado al menos una vez. not( x!= 0 ) 2 x!= 0 El camino [1, 2, 3, 4, 5] visita todos los nodos del grafo. Si pudiese encontrar un par (x, y) (o más pares) tal que al usarlos como inputs se ejecutase dicho camino, entonces podríamos decir que el test T = {(x,y)} satisface el Criterio de Comandos. y = y / x 4 3 x = x + 10 T CC = {(x=20, y=30)} Write(x) Write(y) 5

56 Criterios de Cubrimiento Criterio de Comandos Read(x) Read(y) 1 Un test T satisface este criterio ssi cada comando (sentencia) ejecutable del programa es ejecutado al menos una vez. not( x!= 0 ) 2 x!= 0 El camino [1, 2, 3, 4, 5] visita todos los nodos del grafo. Si pudiese encontrar un par (x, y) (o más pares) tal que al usarlos como inputs se ejecutase dicho camino, entonces podríamos decir que el test T = {(x,y)} satisface el Criterio de Comandos. y = y / x 4 3 x = x + 10 T CC = {(x=20, y=30)} Puedo llegar a necesitar más pares... Write(x) Write(y) 5

57 Criterios de Cubrimiento Criterio de Comandos Read(x) Read(y) 1 Un test T satisface este criterio ssi cada comando (sentencia) ejecutable del programa es ejecutado al menos una vez. not( x!= 0 ) 2 x!= 0 Con T CC = {(x=20, y=30)} cubro todas las líneas ejecutables del programa. Es un buen test? Si el test da bien, me puedo quedar tranquilo de que no hay errores? y = y / x 4 3 x = x + 10 Write(x) Write(y) 5

58 Criterios de Cubrimiento Criterio de Decisiones Read(x) Read(y) 1 Un test T satisface este criterio ssi cada arco del grafo de flujo de control es visitado al menos una vez. 2 Visito todos los arcos. not( x!= 0 ) x!= 0 3 x = x + 10 y = y / x 4 Write(x) Write(y) 5

59 Criterios de Cubrimiento Criterio de Decisiones Read(x) Read(y) 1 Un test T satisface este criterio ssi cada arco del grafo de flujo de control es visitado al menos una vez. 2 El camino [1, 2, 3, 4, 5] no visita todos los arcos del grafo. Por lo que T CC = {(x=20, y=30)} no satisface el Criterio de Decisiones. not( x!= 0 ) y = y / x 4 x!= 0 3 x = x + 10 Write(x) Write(y) 5

60 Criterios de Cubrimiento Criterio de Decisiones Read(x) Read(y) 1 Un test T satisface este criterio ssi cada arco del grafo de flujo de control es visitado al menos una vez. 2 El camino [1, 2, 3, 4, 5] no visita todos los arcos del grafo. Por lo que T CC = {(x=20, y=30)} no satisface el Criterio de Decisiones. El conjunto de caminos ([1, 2, 3, 4, 5], [1, 2, 4, 5]) sí visita todos los arcos. Si puedo encontrar (x 1, y 1 ) y (x 2, y 2 ) que recorren dichos caminos entonces podría decir que T = {(x 1,y 1 ), (x 2,y 2 )} satisface el Criterio de Decisiones. not( x!= 0 ) y = y / x Write(x) Write(y) 4 5 x!= 0 3 x = x + 10

61 Criterios de Cubrimiento Criterio de Decisiones Read(x) Read(y) 1 Un test T satisface este criterio ssi cada arco del grafo de flujo de control es visitado al menos una vez. 2 El conjunto de caminos ([1, 2, 3, 4, 5], [1, 2, 4, 5]) sí visita todos los arcos. Si puedo encontrar (x 1, y 1 ) y (x 2, y 2 ) que recorren dichos caminos entonces podría decir que T = {(x 1,y 1 ), (x 2,y 2 )} satisface el Criterio de Decisiones. not( x!= 0 ) y = y / x 4 x!= 0 3 x = x + 10 T CD = {(x=20, y=30), (x=0, y=30)} Write(x) Write(y) 5

62 Criterios de Cubrimiento Criterio de Condiciones y Decisiones Un test T satisface este criterio ssi cada condición simple (atómica) que aparece en cada decisión del programa es evaluada al menos una vez a TRUE y al menos una vez a FALSE para diferentes datos de test. Una condición es simple (atómica) cuando no presenta operadores lógicos como AND, OR y NOT. Puede tener sí operadores relacionales como >, >=, <, <= e =.

63 Criterios de Cubrimiento Criterio de Condiciones y Decisiones Un test T satisface este criterio ssi cada condición simple (atómica) que aparece en cada decisión del programa es evaluada al menos una vez a TRUE y al menos una vez a FALSE para diferentes datos de test. boolean boolean cond1; cond2; if( cond1 AND cond2 ) THEN { }

64 Criterios de Cubrimiento Criterio de Condiciones y Decisiones Un test T satisface este criterio ssi cada condición simple (atómica) que aparece en cada decisión del programa es evaluada al menos una vez a TRUE y al menos una vez a FALSE para diferentes datos de test. boolean boolean if( cond1 AND cond2 ) THEN { Condiciones Simples cond1; cond2; Condición cond1 cond2 cond1 AND cond2 }

65 Criterios de Cubrimiento Criterio de Condiciones y Decisiones Un test T satisface este criterio ssi cada condición simple (atómica) que aparece en cada decisión del programa es evaluada al menos una vez a TRUE y al menos una vez a FALSE para diferentes datos de test. boolean boolean if( cond1 AND cond2 ) THEN { } Condiciones Simples cond1; cond2; Condición cond1 cond2 cond1 AND cond2 TRUE TRUE TRUE FALSE FALSE FALSE

66 Criterios de Cubrimiento Criterio de Condiciones Múltiples Un test T satisface este criterio ssi cada condición simple (atómica) que aparece en cada decisión del programa es evaluada a TRUE y a FALSE en todas las combinaciones de la tabla de verdad, para diferentes datos de test.

67 Criterios de Cubrimiento Criterio de Condiciones Múltiples Un test T satisface este criterio ssi cada condición simple (atómica) que aparece en cada decisión del programa es evaluada a TRUE y a FALSE en todas las combinaciones de la tabla de verdad, para diferentes datos de test. boolean boolean if( cond1 AND cond2 ) THEN { } Condiciones Simples cond1; cond2; Condición cond1 cond2 cond1 AND cond2 TRUE TRUE TRUE FALSE FALSE FALSE TRUE FALSE FALSE FALSE TRUE FALSE

68 Criterios de Cubrimiento PROGRAM VAR x,y:real BEGIN Read(x); Read(y); IF (x == 0 OR y > 0 ) THEN y = y / x; ELSE x = y + 2 / x; Write(x); Write(y); END

69 Criterios de Cubrimiento PROGRAM VAR x,y:real Read(x) Read(y) 1 BEGIN Read(x); 2 Read(y); IF (x == 0 OR y > 0 ) x == 0 OR y > 0 x!= 0 AND y <= 0 THEN y = y / x; y = y / x 3 4 x = y + 2 / x ELSE x = y + 2 / x; Write(x); Write(y); Write(x) Write(y) 5 END

70 Criterios de Cubrimiento Criterio de Condiciones y Decisiones x y x == 0 y > 0 x == 0 OR y > 0 Read(x) Read(y) 1 2 x == 0 OR y > 0 x!= 0 AND y <= 0 y = y / x 3 4 x = y + 2 / x Write(x) Write(y) 5

71 Criterios de Cubrimiento Criterio de Condiciones y Decisiones x y x == 0 y > 0 x == 0 OR y > 0 Read(x) Read(y) 1 2 x == 0 OR y > 0 x!= 0 AND y <= 0 y = y / x 3 4 x = y + 2 / x Write(x) Write(y) 5

72 Criterios de Cubrimiento Criterio de Condiciones y Decisiones x y x == 0 y > 0 x == 0 OR y > 0 Read(x) Read(y) 1 TRUE FALSE TRUE FALSE 2 x == 0 OR y > 0 x!= 0 AND y <= 0 y = y / x 3 4 x = y + 2 / x Write(x) Write(y) 5

73 Criterios de Cubrimiento Criterio de Condiciones y Decisiones x y x == 0 y > 0 x == 0 OR y > 0 Read(x) Read(y) TRUE TRUE 1 0 FALSE FALSE x == 0 OR y > 0 2 x!= 0 AND y <= 0 y = y / x 3 4 x = y + 2 / x Write(x) Write(y) 5

74 Criterios de Cubrimiento Criterio de Condiciones y Decisiones x y x == 0 y > 0 x == 0 OR y > 0 Read(x) Read(y) TRUE TRUE TRUE 1 0 FALSE FALSE FALSE x == 0 OR y > 0 2 x!= 0 AND y <= 0 y = y / x 3 4 x = y + 2 / x Write(x) Write(y) 5

75 Criterios de Cubrimiento Criterio de Condiciones y Decisiones x y x == 0 y > 0 x == 0 OR y > 0 Read(x) Read(y) TRUE TRUE TRUE 1 0 FALSE FALSE FALSE x == 0 OR y > 0 2 x!= 0 AND y <= 0 y = y / x 3 4 x = y + 2 / x T CCD = {(x=1, y=0), (x=0, y=1)} Write(x) Write(y) 5

76 Criterios de Cubrimiento Criterio de Condiciones Múltiples Read(x) Read(y) 1 2 x == 0 OR y > 0 x!= 0 AND y <= 0 y = y / x 3 4 x = y + 2 / x Write(x) Write(y) 5

77 Criterios de Cubrimiento Criterio de Condiciones Múltiples x y x == 0 y > 0 x == 0 OR y > 0 Read(x) Read(y) 1 2 x == 0 OR y > 0 x!= 0 AND y <= 0 y = y / x 3 4 x = y + 2 / x Write(x) Write(y) 5

78 Criterios de Cubrimiento Criterio de Condiciones Múltiples x y x == 0 y > 0 x == 0 OR y > 0 Read(x) Read(y) 1 TRUE TRUE TRUE FALSE FALSE TRUE 2 FALSE FALSE x == 0 OR y > 0 x!= 0 AND y <= 0 y = y / x 3 4 x = y + 2 / x Write(x) Write(y) 5

79 Criterios de Cubrimiento Criterio de Condiciones Múltiples x y x == 0 y > 0 x == 0 OR y > 0 Read(x) Read(y) x == 0 OR y > TRUE TRUE 0 0 TRUE FALSE 1 1 FALSE TRUE 1 0 FALSE FALSE x!= 0 AND y <= 0 y = y / x 3 4 x = y + 2 / x Write(x) Write(y) 5

80 Criterios de Cubrimiento Criterio de Condiciones Múltiples x y x == 0 y > 0 x == 0 OR y > 0 Read(x) Read(y) x == 0 OR y > TRUE TRUE TRUE 0 0 TRUE FALSE TRUE 1 1 FALSE TRUE TRUE 1 0 FALSE FALSE FALSE x!= 0 AND y <= 0 y = y / x 3 4 x = y + 2 / x Write(x) Write(y) 5

81 Criterios de Cubrimiento Criterio de Condiciones Múltiples x y x == 0 y > 0 x == 0 OR y > 0 Read(x) Read(y) x == 0 OR y > TRUE TRUE TRUE 0 0 TRUE FALSE TRUE 1 1 FALSE TRUE TRUE 1 0 FALSE FALSE FALSE x!= 0 AND y <= 0 y = y / x 3 4 x = y + 2 / x T CCM = {(x=1, y=0), (x=0, y=1), (x=1, y=1), (x=0, y=0)} Write(x) Write(y) 5

82 Criterios de Cubrimiento Criterio de Caminos Un test T satisface este criterio ssi todos los caminos desde el nodo inicial del grafo, al nodo final son atravesados.

83 Criterios de Cubrimiento Criterio de Caminos 1 2 Un test T satisface este criterio ssi todos los caminos desde el nodo inicial del grafo, al nodo final son atravesados

84 Criterios de Cubrimiento Criterio de Caminos 1 2 Un test T satisface este criterio ssi todos los caminos desde el nodo inicial del grafo, al nodo final son atravesados. 3 4 Todos los caminos: [1, 2, 3, 5, 6, 7, 5] [1, 2, 3, 5, 6, 8, 5] 5 6 [1, 2, 4, 5, 6, 7, 5] [1, 2, 4, 5, 6, 8, 5] 7 8 5

85 Criterios de Cubrimiento Criterio de Bucles Los bucles son casos especiales. Se deberían cubrir los siguientes casos, cuando sea posible. Ejecutar 0 veces el bucle, o el mínimo número de veces. Ejecutar el caso máximo posible de veces, si es determinable. Ejecutar un número promedio de veces, si es un valor calculable.

86 Criterios de Cubrimiento, sobre un Grafo de Flujo de Control Criterio de Comandos Criterio de Decisiones Criterio de Condiciones y Decisiones Criterio de Condiciones Múltiples Criterio de Bucles Criterio de Caminos

87 Evaluación y Ejecución Simbólica Symbolic Evaluation and Execution

88 Evaluación y Ejecución Simbólica Symbolic Evaluation and Execution La evaluación simbólica es un análisis; donde análisis se define como una inspección para entender las propiedades y capacidades del objeto en cuestión

89 Evaluación y Ejecución Simbólica Symbolic Evaluation and Execution Tomemos el siguiente código read(a); read(b); x=a+b; write(x)

90 Evaluación y Ejecución Simbólica Symbolic Evaluation and Execution Tomemos el siguiente código read(a); read(b); x=a+b; write(x) La ventaja del razonamiento sobre el cálculo computacional es que el primero es más general.

91 Evaluación y Ejecución Simbólica Symbolic Evaluation and Execution Tomemos el siguiente código read(a); read(b); x=a+1; y = x*b write(y)

92 Evaluación y Ejecución Simbólica Symbolic Evaluation and Execution Tomemos el siguiente código read(a); read(b); x=a+1; y = x*b write(y) El resultado siempre es (a + 1) *b.

93 Evaluación y Ejecución Simbólica Symbolic Evaluation and Execution Tomemos el siguiente código read(a); read(b); x=a+1; y = x+b+2 write(y) El resultado siempre es (a + b +3).

94 Evaluación y Ejecución Simbólica Symbolic Evaluation and Execution El razonamiento, al ser más general, me permite evaluar propiedades que el cálculo computación no lo permite.

95 Evaluación y Ejecución Simbólica Symbolic Evaluation and Execution Tomemos el siguiente código precondición: {true} read(a); x=a*a; x=x+1 write(x) postcondición: {output > 0}

96 Evaluación y Ejecución Simbólica Symbolic Evaluation and Execution Tomemos el siguiente código precondición: {true} read(a); x=a*a; x=x+1 write(x) postcondición: {output > 0} El análisis permite determinar que el resultado siempre es (a 2 + 1)

97 RESUMEN

98 RESUMEN Testing Dinámico Dynamic Testing El Testing Dinámico se puede dividir en cuatro categorías, con varias zonas grises en el medio. Caja Negra Caja Blanca Basado en Experiencia También llamada Basada en Especificación. El testing se hace en base al comportamiento del sistema, sin tomar en cuenta los detalles de implementación para generar los casos de test. Basado en Defectos Análisis Dinámico

99 RESUMEN Testing Dinámico Dynamic Testing El Testing Dinámico se puede dividir en cuatro categorías, con varias zonas grises en el medio. Caja Negra Caja Blanca Los casos de test se diseñan en base a cómo el sistema fue construido. El código es una documentación fundamental para este tipo de test. Basado en Experiencia Basado en Defectos Análisis Dinámico

100 RESUMEN Testing del Flujo de Control Control-Flow Testing Para este tipo de testing vamos a usar como modelo un grafo de control. Como criterio de cubrimiento vamos a tener múltiples opciones. Ejecutar todo el código parecería ser el mejor cubrimiento, pero...

101 RESUMEN Criterios de Cubrimiento Criterio de Comandos Criterio de Decisiones Criterio de Condiciones y Decisiones Criterio de Condiciones Múltiples Criterio de Bucles Criterio de Caminos

102 RESUMEN Grafo de Flujo de Control Control-Flow Graph El Grafo de Flujo de Control es el modelo/representación que nos va a facilitar realizar/evaluar los diferentes cubrimiento.

103 RESUMEN Grafo de Flujo de Control Control-Flow Graph Read(x) Read(y) 1 PROGRAM VAR x,y:real BEGIN Read(x); not( x!= 0 ) 2 x!= 0 Read(y); IF (x!= 0) THEN x = x + 10; y = y / x 4 3 x = x + 10 y = y / 10; Write(x); Write(y); END Write(x) Write(y) 5

104 RESUMEN Criterios de Cubrimiento Criterio de Decisiones Read(x) Read(y) 1 Un test T satisface este criterio ssi cada arco del grafo de flujo de control es visitado al menos una vez. 2 El camino [1, 2, 3, 4, 5] no visita todos los arcos del grafo. Por lo que T CC = {(x=20, y=30)} no satisface el Criterio de Decisiones. El conjunto de caminos ([1, 2, 3, 4, 5], [1, 2, 4, 5]) sí visita todos los arcos. Si puedo encontrar (x 1, y 1 ) y (x 2, y 2 ) que recorren dichos caminos entonces podría decir que T = {(x 1,y 1 ), (x 2,y 2 )} satisface el Criterio de Decisiones. not( x!= 0 ) y = y / x Write(x) Write(y) 4 5 x!= 0 3 x = x + 10

105 RESUMEN Criterios de Cubrimiento Criterio de Condiciones Múltiples x y x == 0 y > 0 x == 0 OR y > 0 Read(x) Read(y) x == 0 OR y > TRUE TRUE TRUE 0 0 TRUE FALSE TRUE 1 1 FALSE TRUE TRUE 1 0 FALSE FALSE FALSE x!= 0 AND y <= 0 y = y / x 3 4 x = y + 2 / x T CCM = {(x=1, y=0), (x=0, y=1), (x=1, y=1), (x=0, y=0)} Write(x) Write(y) 5

106 RESUMEN Evaluación y Ejecución Simbólica Symbolic Evaluation and Execution Tomemos el siguiente código read(a); read(b); x=a+b; write(x) La ventaja del razonamiento sobre el cálculo computacional es que el primero es más general.

107 Verificación y Validación de Ingeniería en Sistemas de Información Departamento de Ciencias e Ingeniería de la Computación 2015

108 Criterios de Cubrimiento Criterio de Comandos

Verificación y Validación de Software

Verificación y Validación de Software Verificación y Validación de Ingeniería en Sistemas de Información Departamento de Ciencias e Ingeniería de la Computación 2017 VyVS 2015 / DCIC / UNS Testing Dinámico Dynamic Testing El Testing Dinámico

Más detalles

Tema I Testing Estructurado

Tema I Testing Estructurado Tema I Testing Estructurado 1ra Parte Verificación y Validación de Software UNS 1 Contenidos Conceptos de V&V Fundamentos de Testing Testing de Unidad Testing de Unidad: Caja Blanca Verificación y Validación

Más detalles

Tema 1 Testing Estructurado

Tema 1 Testing Estructurado Tema 1 Testing Estructurado 2da Parte Verificación y Validación de Software UNS 1 Contenido Fundamentos de Análisis Ejecución Simbólica Uso de Ejecución Simbólica Verificación y Validación de Software

Más detalles

Verificación y Validación de Software

Verificación y Validación de Software Verificación y Validación de Ingeniería en Sistemas de Información Departamento de Ciencias e Ingeniería de la Computación 2017 VyVS 2015 / DCIC / UNS Evaluación y Ejecución Simbólica Symbolic Evaluation

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

Testing Unitario. Laboratorio de Testing y Aseguramiento de la Calidad del Software

Testing Unitario. Laboratorio de Testing y Aseguramiento de la Calidad del Software Testing Unitario Laboratorio de Testing y Aseguramiento de la Calidad del Software Construcción de suites Caja blanca/caja negra Cobertura basada en flujo de control Complejidad ciclomática LCov Testing

Más detalles

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN - Introducción - Sintaxis - Semántica básica - Tipos de datos - Expresiones y enunciados - Procedimientos y ambientes - Tipos abstractos de datos y módulos

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

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

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

FUNDAMENTOS DE PROGRAMACIÓN LABORATORIO SESIÓN 2

FUNDAMENTOS DE PROGRAMACIÓN LABORATORIO SESIÓN 2 FUNDAMENTOS DE PROGRAMACIÓN LABORATORIO SESIÓN 2 EJERCICIO 1 VALIDACIÓN DE DATOS DE ENTRADA Modificar el programa del cálculo del MCD de dos números enteros positivos para validar los datos de entrada

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

Compiladores: Análisis Semántico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inès Alvarez V.

Compiladores: Análisis Semántico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inès Alvarez V. Compiladores: Análisis Semántico Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inès Alvarez V. Verificaciòn de tipos Se puede hacer en forma Estàtica: en tiempo

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

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

Estructuras de Control. Secuencia y Selección

Estructuras de Control. Secuencia y Selección Estructuras de Control. Secuencia y Selección InCo - FING Programación 1 InCo - FING Estructuras de Control. Secuencia y Selección Programación 1 1 / 35 Estructuras de control InCo - FING Estructuras 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

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

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

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 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

Tipos y Estructuras de Control. Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR

Tipos y Estructuras de Control. Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Tipos y Estructuras de Control Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Datos: variables y constantes Tipos básicos: entero, real, char, lógico Estructuras de control

Más detalles

Plan de estudios ISTQB: Nivel Fundamentos

Plan de estudios ISTQB: Nivel Fundamentos Plan de estudios ISTQB: Nivel Fundamentos Temario 1. INTRODUCCIÓN 2. FUNDAMENTOS DE PRUEBAS 3. PRUEBAS A TRAVÉS DEL CICLO DE VIDA DEL SOFTWARE 4. TÉCNICAS ESTÁTICAS 5. TÉCNICAS DE DISEÑO DE PRUEBAS 6.

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

Resolución de Problemas y Algoritmos Segundo cuatrimestre 2015 Clase 11: Construcción de primitivas (Funciones)

Resolución de Problemas y Algoritmos Segundo cuatrimestre 2015 Clase 11: Construcción de primitivas (Funciones) Resolución de Problemas y Algoritmos Segundo cuatrimestre 2015 Clase 11: Construcción de primitivas (Funciones) Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la

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

Introducción a PL/SQL

Introducción a PL/SQL Introducción a PL/SQL Grupo de Ingeniería del Software y Bases de Datos Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla noviembre 2011 Objetivos de este tema Conocer PL/SQL. PL/SQL

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

Programación MATLAB: Programas y Funciones.

Programación MATLAB: Programas y Funciones. Programación MATLAB: Programas y Funciones. Curso: Métodos Numéricos en Ingeniería Profesor: Dr. José A. Otero Hernández Correo: j.a.otero@itesm.mx web: http://metodosnumericoscem.weebly.com Universidad:

Más detalles

Conocimientos previos

Conocimientos previos Tema: Estructuras de control de ciclos repetitivos Ficha de aprendizaje 15 n Logro Utiliza estructuras de control de ciclos repetitivos For Next y Loop while @ # Conocimientos previos Qué conjunto de sentencias

Más detalles

Donde Condicion es una expresión booleana, es decir, que puede tomar el valor verdadero (true) o falso (false).

Donde Condicion es una expresión booleana, es decir, que puede tomar el valor verdadero (true) o falso (false). SETECIA REPETITIVA (SETECIA WHILE) Condicion while do Sentencia Donde Condicion es una expresión booleana, es decir, que puede tomar el valor verdadero (true) o falso (false). Valores

Más detalles

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;) Tags Fundamentos PHP La Sintaxis de PHP se deriva de muchos lenguajes de programación principalmente de C pero Perl también ha tenido mucha influencia en esta sintaxis Con las últimas incorporaciones agregadas,

Más detalles

Proceso de testing. Ingeniería del Software I. Actividades del proceso de testing. Actividades del proceso de testing

Proceso de testing. Ingeniería del Software I. Actividades del proceso de testing. Actividades del proceso de testing Ingeniería del Software I Testing Martina Marré martina@dc.uba.ar Proceso de testing RECORDEMOS El testing no es sólo una etapa del proceso de desarrollo Tradicionalmente, empezaba al término de la implementación,

Más detalles

Programación MATLAB: Programas y Funciones.

Programación MATLAB: Programas y Funciones. Programación MATLAB: Programas y Funciones. Curso: Métodos Numéricos en Ingeniería Profesor: Dr. José A. Otero Hernández Correo: j.a.otero@itesm.mx web: http://metodosnumericoscem.weebly.com Universidad:

Más detalles

Introducción a la Programación

Introducción a la Programación 0,25 puntos cada pregunta 1. Observa el siguiente esquema de código. Cuándo se ejecuta Instrucción4? IF Condición1 THEN Instrucción1 ELSE IF Condición2 THEN Instrucción2 ELSE IF Condición3 THEN Instrucción3;

Más detalles

Tema: Estructuras de Selección en C#.

Tema: Estructuras de Selección en C#. 2 Programación I Tema: Estructuras de Selección en C#. Programación I. Guía 4 3 Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Objetivos Utilizar las instrucciones de

Más detalles

Modelo de Cómputo. Programación concurrente

Modelo de Cómputo. Programación concurrente Programa concurrente Programa concurrente: conjunto finito de procesos (secuenciales). Un proceso secuencial está escrito con un conjunto finito de acciones atómicas. Ejecución: una secuencia de acciones

Más detalles

CONSTRUCCIÓN AUTOMÁTICA DE REGLAS DE INVERSIÓN UTILIZANDO PROGRAMACIÓN GENÉTICA

CONSTRUCCIÓN AUTOMÁTICA DE REGLAS DE INVERSIÓN UTILIZANDO PROGRAMACIÓN GENÉTICA CONSTRUCCIÓN AUTOMÁTICA DE REGLAS DE INVERSIÓN UTILIZANDO PROGRAMACIÓN GENÉTICA Mario Alberto Llorente Lopez PFC Ingeniería en Informática 24 de Enero de 2012 CONTENIDO Introducción Objetivos Planificación

Más detalles

Rancagua, Agosto 2009

Rancagua, Agosto 2009 cvalle@inf.utfsm.cl Departamento de Informática - Universidad Técnica Federico Santa María Rancagua, Agosto 2009 1 / 28 Temario 1 2 2 / 28 Temario 1 2 3 / 28 Este capítulo introduce conceptos de programación

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

GENERACIÓN DE CÓDIGO INTERMEDIO EJEMPLOS PARA DISTINTAS ESTRUCTURAS DE DATOS

GENERACIÓN DE CÓDIGO INTERMEDIO EJEMPLOS PARA DISTINTAS ESTRUCTURAS DE DATOS Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

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

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

Introducción a la computación. Carlos Lopez Pombo

Introducción a la computación. Carlos Lopez Pombo Introducción a la computación Carlos Lopez Pombo Estado Se denomina estado en un modelo de cómputo a un punto en la ejecución de un programa en dicho modelo. En el modelo de Von Neumann esto responde al

Más detalles

Estructuras de Control. Secuencia y Selección

Estructuras de Control. Secuencia y Selección Estructuras de Control. Secuencia y Selección InCo - FING Programación 1 Contents 1 Estructuras de control 2 1.1 Clasificación.............................. 2 1.2 La secuencia..............................

Más detalles

Introducción al Testing de Estructural

Introducción al Testing de Estructural Introducción al Testing de Estructural Maximiliano Cristiá Ingeniería de Software Facultad de Ciencias Exactas, Ingeniería y Agrimensura Universidad Nacional de Rosario Noviembre de 2009 Resumen En este

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

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

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

2. Estructuras condicionales

2. Estructuras condicionales 2. Estructuras condicionales Fundamentos de Informática Dpto. Lenguajes y Sistemas Informáticos Curso 2012 / 2013 Índice Estructuras condicionales 1. Ej07: Cond. simple 2. Ej08: Cond. doble 3. Ej09: Cond.

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

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

Motivación. 4: Control de flujo Condicionales. Motivación. Condicionales

Motivación. 4: Control de flujo Condicionales. Motivación. Condicionales 4: Control de flujo Condicionales Motivación Secuencia de acciones Programas lineales Limitación en el tipo de programas que se pueden desarrollar Cómo se puede construir un programa que calcule el valor

Más detalles

FUNDAMENTOS DE OBJECT PASCAL

FUNDAMENTOS DE OBJECT PASCAL FUNDAMENTOS DE OBJECT PASCAL 1. ASPECTOS GENERALES DE LA SINTAXIS Los bloques de código quedan delimitados por y end. Se usa punto y coma como separador de sentencias de código. Comentarios: - ias líneas:

Más detalles

Tipos de datos en VHDL

Tipos de datos en VHDL Tipos de datos en VHDL Sistemas Digitales Avanzados Universidad Técnica Particular de Loja Prof: Diego Barragán Guerrero Oct. 2014 - Feb. 2015 Sistemas Digitales Avanzados (UTPL) IET Oct. 2014 - Feb. 2015

Más detalles

Iteración Diagrama de SINTAXIS: IF

Iteración Diagrama de SINTAXIS: IF VISION ESTATICA VISION DINAMICA Dra. Jessica Andrea Carballi jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Diagrama de SINTAXIS: IF Visión estática Diagrama

Más detalles

CONJUNTOS. B= {true,false} N = {0,1,2,3,4,5,...} N * Noción habitual de conjunto. Operaciones clásicas. Conjuntos más habituales:

CONJUNTOS. B= {true,false} N = {0,1,2,3,4,5,...} N * Noción habitual de conjunto. Operaciones clásicas. Conjuntos más habituales: CONJUNTOS Noción habitual de conjunto Operaciones clásicas Conjuntos más habituales: Booleanos B= {true,false} Naturales N = {0,1,2,3,4,5,...} Palabras sobre un alfabeto finito *= {,a,b,aa,ab,ba,bb,...}

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

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

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

Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa

Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa Contenido Estructura de un programa en Java... 2 Tipos de datos básicos... 2 Operadores... 3 Literales... 4 Entrada / Salida... 4 Sentencias condicionales... 5 Funciones... 5 Ejercicios... 6 Variables,

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

UML (Unified Modeling Language) Octubre de 2007

UML (Unified Modeling Language) Octubre de 2007 UML (Unified Modeling Language) Octubre de 2007 UML un modelo o pieza de información producido en el proceso de desarrollo de software Un lenguaje para especificar, visualizar y construir artefactos de

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

Computación I (CI-2125) Clase 2. Prof. Mireya Morales

Computación I (CI-2125) Clase 2. Prof. Mireya Morales Computación I (CI-2125) Clase 2 Prof. Mireya Morales Repaso de algunos tópicos Abstracción: Consiste en extraer las propiedades más importantes de un objeto, dejando los detalles para el diseño específico.

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

EJERCICIO 2 (3 PUNTOS) A) Sea el árbol binario AVL de la figura siguiente: B) Dada la estructura de la figura siguiente:

EJERCICIO 2 (3 PUNTOS) A) Sea el árbol binario AVL de la figura siguiente: B) Dada la estructura de la figura siguiente: ASIGNATURA TITULACIÓN APELLIDOS ESTRUCTURA DE DATOS Y DE LA INFORMACIÓN EJERCICIO 1 (3 PUNTOS) GRUPO CURSO CONVOCATORIA NOMBRE 23 / 24 EXTRAORDINARIA- SEPTIEMBRE CALIFICACIÓN Dado el tipo abstracto de

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

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

Fundamentos de Informática 5. Operadores, expresiones (y su aplicación)

Fundamentos de Informática 5. Operadores, expresiones (y su aplicación) Fundamentos de Informática 5. Operadores, expresiones (y su aplicación) Fundamentos de Informática Grado en Ingeniería Química 2 Contenidos Operadores De asignación Aritméticos De incremento Relacionales

Más detalles

Dra. Jessica Andrea Carballido

Dra. Jessica Andrea Carballido Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Problema Diseño de la solución Dividir y conquistar Implementación de los

Más detalles

Operadores de comparación

Operadores de comparación Operadores de comparación Los operadores de comparación en C son: Igual (==) Distinto (!=) Mayor (>) y Mayor o igual (>=) Menor (

Más detalles

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA Programación en Pascal Capítulo 27. Verificación analítica de programas.

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA Programación en Pascal Capítulo 27. Verificación analítica de programas. 27. VERIFICACION ANALITICA DE PROGRAMAS El texto de un programa determina un patrón de conducta para el proceso o computación. Un programa puede originar una cantidad no especificada, quizá infinita de

Más detalles

11/02/2009 IEC 61131-3. 11 de febrero de 2009 Antonio Cambronero, Product Engineer OMRON Electronics Iberia S.A.U. IEC 61131-3 ( Programación en ST )

11/02/2009 IEC 61131-3. 11 de febrero de 2009 Antonio Cambronero, Product Engineer OMRON Electronics Iberia S.A.U. IEC 61131-3 ( Programación en ST ) IEC 61131-3 Programación en ST (Structured Text) 11 de febrero de 2009 Antonio Cambronero, Product Engineer OMRON Electronics Iberia S.A.U. IEC 61131-3 ( Programación en ST ) Introducción 1 qué es y para

Más detalles

SELECCION SELECCION

SELECCION SELECCION SELECCION - 23-2. SELECCION En este tema comienza el repaso de las estructuras estándar, las mismas que deben ser empleadas para aplicar correctamente el segundo principio de la programación estructurada:

Más detalles

Máquinas de estados finitas 1 FUNDAMENTOS LÓGICOS ALGEBRA BOOLEANA. Grupo de correo

Máquinas de estados finitas 1 FUNDAMENTOS LÓGICOS ALGEBRA BOOLEANA. Grupo de correo Máquinas de estados finitas FUNDAMENTOS LÓGICOS ALGEBRA BOOLEANA Grupo de correo compformaut@googlegroups.com Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT y = a+ b y = ab y= a a b y a

Más detalles

Instituto de Computación. Facultad de Ingeniería. Universidad de la República Examen de Programación 2 03 de Agosto de 2006 Generalidades:

Instituto de Computación. Facultad de Ingeniería. Universidad de la República Examen de Programación 2 03 de Agosto de 2006 Generalidades: Instituto de Computación. Facultad de Ingeniería. Universidad de la República Examen de Programación 2 03 de Agosto de 2006 Generalidades: La prueba es individual y sin material. La duración es 3 horas.

Más detalles

GUIA EXAMEN FINAL/EXTRAORDINARIO

GUIA EXAMEN FINAL/EXTRAORDINARIO INSTITUTO SAN ANGEL DEL SUR ESCUELA NACIONAL PREPARATORIA INCORPORADA A LA UNAM CLAVE 1261 CICLO 2012-2013 Nombre del profesor: Ing. Jorge Padilla Gutiérrez Asignatura: INFORMATICA V GUIA EXAMEN FINAL/EXTRAORDINARIO

Más detalles

Iteración Diagrama de SINTAXIS: IF

Iteración Diagrama de SINTAXIS: IF VISION ESTATICA VISION DINAMICA Dra. Jessica Andrea Carballi jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Diagrama de SINTAXIS: IF estática Diagrama de

Más detalles

Curso de Java Introducción a la Programación III

Curso de Java Introducción a la Programación III Curso de Java Introducción a la Programación III Jaime Fernández Martín Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Operadores relacionales e igualdad 2 Estructuras de control condicional

Más detalles

Módulo 7: Sentencias de control en Pascal

Módulo 7: Sentencias de control en Pascal Módulo 7: Sentencias de control en Pascal Tecnologías en la Educación Matemática Dr. Carlos Gonzalía DCIC - UNS Técnologías en la educación matemática Dr. Carlos Gonzalía 1 de Copyright Copyright 2010,

Más detalles

Arboles. Definiciones formales: 1) un árbol es un grafo acíclico finito T (P, E) tal que. P = E + 1 => todo arco es desconectante.

Arboles. Definiciones formales: 1) un árbol es un grafo acíclico finito T (P, E) tal que. P = E + 1 => todo arco es desconectante. Arboles Definición: Es una estructura acíclica que, en algún sentido puede ser considerado el siguiente paso en la jerarquía de complejidad estructural. Los árboles tienen son de amplia aplicación en el

Más detalles

Estructuras de Control (y su forma en Python y en C) Clase 5 Introducción a la Computación Patricia Borensztejn

Estructuras de Control (y su forma en Python y en C) Clase 5 Introducción a la Computación Patricia Borensztejn Estructuras de Control (y su forma en Python y en C) Clase 5 Introducción a la Computación Patricia Borensztejn Estructuras de Control En el modelo de ejecución secuencial que vimos, el procesador repite:

Más detalles

Modelos de Software. Ingeniería en Sistemas de Información

Modelos de Software. Ingeniería en Sistemas de Información Ingeniería en Sistemas de Información 2018 Modelos de Software 2 Modelado de Actividades 3 Modelado de Actividades y Estados Modelamiento estático y dinámico Una vista dinámica tiene como foco el comportamiento

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

28/08/2018. Dra. Jessica Andrea Carballido. cuota monto/cantcuotas

28/08/2018. Dra. Jessica Andrea Carballido. cuota monto/cantcuotas PROBLEMA: A partir del monto de un crédito y la cantidad de cuotas se desea calcular el monto de cada cuota. Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Datos de entrada y de salida? Algoritmo ValorDeCuota

Más detalles

Centro Universitario UAEM Zumpango Ingeniería en Computación

Centro Universitario UAEM Zumpango Ingeniería en Computación Centro Universitario UAEM Zumpango Agosto 2016 Universidad Autónoma del Estado de México Centro Universitario UAEM Zumpango UA: Programación Estructurada Tema: Estructuras de control de flujo selectivas

Más detalles

Verificación y Validación de Software

Verificación y Validación de Software Verificación y Validación de Ingeniería en Sistemas de Información Departamento de Ciencias e Ingeniería de la Computación 2017 Hagamos un pequeño repaso de las primeras clases... Hagamos un pequeño repaso

Más detalles

Examen de Programación Concurrente - Clave: a Junio 2008 Departamento de Lenguajes, Sistemas Informáticos e Ingeniería del Software.

Examen de Programación Concurrente - Clave: a Junio 2008 Departamento de Lenguajes, Sistemas Informáticos e Ingeniería del Software. Junio 2008 Programación Concurrente 1/6 Normas Examen de Programación Concurrente - Clave: a Junio 2008 Departamento de Lenguajes, Sistemas Informáticos e Ingeniería del Software Este examen es un cuestionario

Más detalles

Manual de turbo pascal

Manual de turbo pascal Universidad Nacional Experimental De Los Llanos Occidentales Ezequiel Zamora UNELLEZ-Barinas Manual de turbo pascal Bachilleres: Martinez Ninibeth C.I:20.867.002 Mora Yaco C.I:17.205.073 Estructura de

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

Tema: Estructuras de Selección en C#.

Tema: Estructuras de Selección en C#. Programación I, Guía 3 1 Tema: Estructuras de Selección en C#. Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Objetivos Utilizar las instrucciones de selección if e

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

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica Facultad de Ingeniería Universidad Nacional de Mar del Plata

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Guillermo Murcia Ing. Jorge Luis Strack gjmurcia@fi.mdp.edu.ar jlstrack@fi.mdp.edu.ar Contenido de esta clase Expression Node Formula Node MathScript MATLAB Script Todas estas estructuras sirven para

Más detalles

Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur. Bases de Datos

Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur. Bases de Datos Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Bases de Datos Segundo Cuatrimestre de 2018 Trabajo Práctico N 7 Protocolos para Control de Concurrencia Ejercicios 1. Cuál

Más detalles

Si L es recursivo, entonces es recursivamente numerable

Si L es recursivo, entonces es recursivamente numerable Si L es recursivo, entonces es recursivamente numerable Slide 19 program GeneraRec (output); procedure sgte (var x: string); (* calcula la siguiente x en el orden natural *) begin... end; var x: string;

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

Programación I. Ingeniería Técnica Informática. Ejercicios de los Temas 4, 5, 6 y 7

Programación I. Ingeniería Técnica Informática. Ejercicios de los Temas 4, 5, 6 y 7 Estructuras selectivas Programación I Ingeniería Técnica Informática Ejercicios de los Temas 4, 5, 6 y 7 24.- Elabore un programa para determinar si una hora leída en la forma horas, minutos y segundos

Más detalles