Vous êtes sur la page 1sur 7

UNIVERSIDAD TCNICA DE AMBATO Facultad de Ingeniera en Sistemas, electrnica e Industrial Ingeniera de Software II Sptimo A

Aplicacin de Pruebas de Software

Ejercicio 1 Se desean realizar pruebas de la caja negra sobre un programa utilizado por una empresa de transporte para calcular la tarifa de cada billete segn el trayecto, la antelacin en la que se obtiene el billete y la edad del pasajero. Dicha empresa slo opera viajes entre Santander, Madrid y Barcelona. Como datos de entrada toma: CiudadOrigen que es un campo que puede tomar los valores SNT, MAD y BCN. CiudadDestino que puede tomar los mismos valores SNT, MAD y BCN. Fecha es un campo del tipo fecha que indica el da en el que se pretende realizar el viaje. Edad es un campo numrico positivo de 3 cifras (incluyendo el 000). La tarifa obtenida adems de estar en funcin del trayecto realizado, ofrece los siguientes descuentos por antelacin y edad del pasajero. Los descuentos no son acumulables y siempre se aplicar el de mayor valor. 15% de descuento sacando el billete con antelacin superior a 1 semana y 25% con antelacin superior a 1 mes. 30% a los pasajeros con edad inferior a 25 aos y 40% a los pasajeros con edad superior a 65 aos. Se pide: 1.1. Realizar una tabla con las clases de equivalencia indicando las clases vlidas y no vlidas para cada variable de entrada. 1.2. Obtener casos de prueba de dicha tabla, indicando las clases de equivalencia que cubrira cada caso (numerar previamente las clases).

Condicin de entrada Ciudad Origen

Ciudad destino

Fecha Edad

Clases Vlidas (1) SNT (2) MAD (3) BCN (5) SNT (6) MAD (7) BCN (9) Fecha (12) 000 <=Edad>=999

Clases Invlidas (4) Ninguna orden vlida

(8) Ninguna orden vlida

(10) Caracteres (11) Formato Incorrecto (13)Edad < 000 (14)Edad > 999 (15)Edad no es nmero

1.3. Aplicar la tcnica de anlisis de valores lmite

Fecha = fecha anterior al del da actual Edad = -1 Edad = 1000

Ejercicio 2 Dado el siguiente pseudocdigo


(1) (2) (3) (4) (5) (6) (7) Do { Puntero=falso; If (x>k)Then Puntero=verdad; x=x+1; Call sub(x, puntero, resultado); } While(resultado>0); Imprimir(resultado);

Se pide: Obtener el grafo de flujo del programa sealando los trozos de cdigo que corresponden con cada nodo.
1

2 3

5 6

Calcular la complejidad ciclomtica mediante las tres frmulas, sealando las regiones sobre el grafo. arcos = 8 nodos = 7 V(G) = a-n+2 8-7+2 = 3 V(G) = Regiones = 1 V(G) = Condicin + 1 = 3 Definir 3 conjuntos de caminos (indicando la secuencia de nodos que atraviesa cada camino) necesarios para probar todas las sentencias, ramas y caminos
1 2- 6 7 123456-7

Ejercicio 3

La siguiente jerarqua de componentes describe algunos mdulos de un sistema software para un videoclub. Indique cul sera la secuencia de pruebas para la integracin de componentes utilizando los siguientes enfoques: Integracin incremental ascendente (bottom-up). Integracin incremental descendente (top-down). Integracin segn hilos de funcionalidad.

Bottom-Up Unitarias de F, G, H, M, N, J, K Integracin de (I con M), (I con N) Integracin de (B con F), (B con G), (C con H), (D con I), (D con J), (D con K) Integracin de (A con B), (A con C), (A con D), (A con E) Top-Down En profundidad A, B, F, G, C, H, D, I, M, N, J, K, E En anchura A, B, C, D, E, F, G, H, I, J, K, M, N

Ejercicio 4

Un programa toma como entrada un fichero cuyo formato de registro es el siguiente: Nmero-empleado es un campo de nmeros enteros positivos de 3 dgitos (excluido el 000). Nombre-empleado es un campo alfanumrico de 10 caracteres. Meses-Trabajo es un campo que indica el nmero de meses que lleva trabajando el empleado; es un entero positivo (incluye el 000) de 3 dgitos. Directivo es un campo de un solo carcter que puede ser + para indicar que el empleado es un directivo y - para indicar que no lo es.

El programa asigna una prima (que se imprime en un listado) a cada empleado segn las normas siguientes: P1 a los directivos con, al menos, 12 meses de antigedad. P2 a los no directivos con, al menos, 12 meses de antigedad. P3 a los directivos sin un mnimo de 12 meses de antigedad.

P4 a los no directivos sin un mnimo de 12 meses de antigedad. Se pide: 4.1. Crear una tabla de clases de equivalencia (las clases debern ser numeradas) en la que se indiquen las siguientes columnas en cada fila: - Condicin de entrada que se analiza. - Clases vlidas. - Clases no vlidas que se generan para la condicin. 4.2. Partiendo de las clases de equivalencia creadas generar los casos de prueba: - Enunciar la regla que se ha aplicado para derivar los casos a partir de las clases de equivalencia. - Indicar las clases que cubre cada caso de prueba. - Especificar la entrada en todos los casos y la salida esperada slo en los casos vlidos.

Condicin de entrada Nmero-empleado

Clases Vlidas (1) 001<= Nmero-empleado>=999

Nombre-empleado Meses-Trabajo

(5) Diez caracteres (8) 000<= Meses-Trabajo>=999

Directivo

(12)+ (13)-

Clases Invlidas (2) Nmero-empleado < 001 (3) Nmero-empleado > 999 (4) Nmero-empleado no es nmero (6) Nombre-empleado < 10 (7) Nombre-empleado > 10 (9) Meses-Trabajo < 000 (10)Meses-Trabajo > 999 (11)Meses-Trabajo no es nmero (14)Ninguna orden vlida

Ejercicio 5

El siguiente pseudocdigo cumple la especificacin del problema anterior. Se han aadido algunas lneas de cabecera y de final al listado de las primas, y se han asignado valores numricos concretos a las primas P1, P2, P3 y P4. El fichero de entrada se denomina FICH y los nombres de los campos son ms o menos iguales al ejercicio anterior.
1 Begin {programa} 2 Print ("Ilmo.Sr.Director General:"); 3 Read (registro_FICH); 4 Prima = 0; 5 While (no FF de FICH) do 6 Begin {while} 7 If (meses_FICH>=12) 8 Then 9 If (directivo_FICH="+") 10 then Prima=1000; 11 else Prima=75; 12 Else 13 If (directivo_FICH="+") 14 then Prima=500; 15 else; 16 Print (num_FICH, nombre_FICH, Prima); 17 Read (registro_FICH);

18 End {while}; 19 Print ("S.e.u.o."); 20 End {programa}

Suponemos que en la anterior prueba de clases de equivalencia el programa se ejecuta slo con los dos registros siguientes de casos vlidos, consecutivamente y en el orden dado (el smbolo # indica un carcter blanco):

Registro 1:
Registro 2:

123 456

Fernndez# Fernando##

009 013

+ -

Se pide: 5.1 Comprobar si se cumple la cobertura de sentencias indicando, en su caso, cules de ellas no se ejecutan. En caso de que no se cumpla, aadir el mnimo nmero de registros adicionales para que se cumpla la cobertura. 5.2 Comprobar si se cumple la cobertura de decisiones, creando una tabla donde se marquen los valores que adopta cada decisin. En caso de no cumplirse la cobertura, aadir el mnimo nmero de registros adicionales para que se cumpla. Los casos a aadir deben definir la entrada y la salida esperada al ejecutarse junto a los dos casos de caja negra (registros 1 y 2). Emplear el formato de salida que se incluye en el cdigo del programa.

Ejercicio 6 Escriba una clase para calcular el valor medio de 3 nmeros que se pasan como parmetros. A continuacin someta el programa al proceso de pruebas descrito en clase hasta que: Se hayan recorrido todas las sentencias. Se hayan recorrido todas las condiciones a true y a false. Valor_Medio Valor_Medio() SetA(double a) SetB(double b) SetC(double c) GetVM(): double public int valorMedio(double a, double b, double c){ if (IsNumeric(a)){ if(IsNumeric(b)){ if(IsNumeric(c)){

int aux; If(a>=b) { aux=b; b=a; a=aux; }

If(a>=b){ return a; }else return b; }


}else Message.Show(Valor no vlido + c); } else Message.Show(Valor no vlido + b); } else Message.Show(Valor no vlido + a);

Valores interesantes a x 2 4 6 b 2 y 6 8 c 1 5 z 2

Ejercicio 7 Suponga que disponemos de un sistema como el mostrado en la figura. Proponga valores interesantes de tipo Persona para las operaciones add y setJefe del tipo Proyecto.

Valores Interesantes Nombre Apellido Danilo Nuela Carol Ilbay Luis Mungbusi Carlos Ponce

Fecha Nacimiento 22/10/1988 23/06/2012 22/10/2014 22/10/0000

Ejercicio 8

Escriba casos de prueba que cumplan los criterios de cobertura de transicin de estados para la siguiente mquina de estados, que representa el comportamiento de una cuenta corriente.

Casos de prueba
Crear cuenta Cerrar cuenta Depositar Retirar

Vous aimerez peut-être aussi