Trabajo Práctico 4: Testing Funcional 1) Explique claramente cuáles son los objetivos de la Validación y de la Verificación. Qué técnicas usaría para llevar a cabo cada una de estas actividades? 2) Qué información básica debe incluir en la definición de un caso de test? 3) Hacer un diagrama de Venn que muestre las relaciones entre los casos de prueba de análisis del valor límite, testing robustness, el peor de los casos de prueba, y el peor de los casos de testing robustness. 4) Para qué se usan las Estrategias de Testing de Caja Blanca o Estructurales y de Caja Negra o Funcionales? Enuncie las principales técnicas asociadas al testing funcional. 5) Si utiliza un compilador para un lenguaje fuertemente tipado, discutir la forma en que reacciona a los casos de prueba de Clases de Equivalencia. 6) Considere un sistema de pago online por medio de tarjeta de débito o crédito que solicita el tipo de tarjeta, su número, mes y año de vencimiento, y el nombre que aparece en la tarjeta. a) Escriba un conjunto de casos de test que, según su opinión, pueden ser utilizados. b) Definir casos de test usando la técnica funcional de análisis de valores límites; asuma que el mes y año se eligen de una lista, y los años de vencimiento disponibles van de 2015 a 2020. 7) Considere el siguiente problema clásico: Se tiene un programa que lee tres números reales que representan la longitud de los tres lados de un triángulo. El programa imprime un mensaje diciendo si el triángulo es escaleno, isósceles o equilátero. Si los datos no son válidos, el programa muestra un mensaje de error. a) Escriba un conjunto de casos de test que, según su opinión, pueden ser utilizados. b) Definir casos de test usando las técnicas funcionales de análisis de clases de equivalencia y de valores límites. 8) Considere una operación bancaria identificada por los valores del registro Operación: Datos de entrada: Registro Operación Condición de entrada: Código de área: Blanco o un número de 3 dígitos Prefijo: Número de 3 dígitos que no comience por 0 o 1 Sufijo: Número de 4 dígitos Ordenes: cheque, depósito, pago factura Palabra clave: valor alfanumérico de 6 caracteres Condición de salida: Devuelve 1 si los datos de entrada son válidos, y 1 si no lo son.
Definir casos de test usando las técnicas funcionales de análisis de clases de equivalencia y de valores límites. 9) Se desea probar un módulo que calcula el máximo común divisor de dos valores enteros mayores que cero que recibe como entrada. Se sabe que el módulo utiliza un algoritmo que requiere realizar comparaciones de igualdad, mayor y menor entre los parámetros. Si el módulo recibe un número de parámetros distinto de dos, los tipos de los parámetros no son los adecuados o alguno de ellos es negativo o cero, el resultado devuelto por el módulo es el valor 1. Crear la tabla de particiones de equivalencia y la batería de pruebas que se deriva de ella, añadiendo los casos de prueba adicionales obtenidos por el análisis de valores límite. 10) Considere un módulo, llamado búsqueda, cuya función es buscar la aparición de un determinado valor entero dentro de un vector ordenado de enteros. En caso de encontrar el valor, el módulo devuelve la posición del vector donde se ha encontrado (se supone que al primer componente del vector le corresponde la posición 1, al segundo la posición 2, etc.). En caso de no encontrarse dentro del vector, el módulo devuelve 1. Si existieran varias apariciones del valor buscado dentro del vector, el módulo devolverá la menor posición donde se encuentre. Los parámetros del módulo son, en primer lugar el valor buscado, a continuación el vector y por último un valor entero que indica cuál es el tamaño (número de componentes) del vector. Ejemplo: búsqueda(5, [1,3,3,5,5,5,9], 7) devolverá 4. Se consideran como casos no válidos (además de los habituales) aquellos en que el vector no se encuentre ordenado y cuando el tamaño del vector no corresponda realmente con el número de elementos que contiene. Diseñe un conjunto de casos de prueba para el módulo usando análisis de valores límite. 11) Considere el problema de los triángulos adaptado para que clasifique también en triángulos rectángulos. Tres lados a, b y c constituyen un triángulo rectángulo si satisfacen la conocida relación de Pitágoras. En este caso es conveniente requerir que los lados se ingresen en orden de magnitud creciente. Desarrolle una tabla de decisión y los casos de testeo adicionales correspondientes para esta modificación. Observar que pueden existir triángulos isósceles rectángulos, pero no con lados enteros. 12) Desarrollar una tabla de decisión para el segundo intento de la función PróximaFecha (página 25 del libro de Jorgensen, 4ta. edición), que dada una fecha devuelve la fecha correspondiente al día siguiente. Al final de un mes de 31 días, el día se resetea siempre a 1. Para todos los meses distintos de diciembre el mes se incrementa, y para diciembre el mes se resetea a enero y el año se incrementa.
13) Considerando la siguiente especificación de un sistema de gestión universitaria, defina casos de test usando las técnicas funcionales de análisis de clases de equivalencia y valores límite (en los casos que aplique). Caso de Uso: Administrar_Carrera Actores: Administrativo Planes y Programas DISPE Director de Carrera Corrector (CRT) El conjunto de estos actores se referencia como AEA (Actores Estructura Académica) Objetivo principal: AEA quiere consultar, crear, modificar o eliminar instancias de la Carrera. Caminos: el camino principal se describe en los siguientes pasos: 1. AEA, CRT: Ingresa el criterio de selección para la entidad Carrera. Los criterios son: CodigoDeCarrera, NombreAbreviado, FechaDeVigenciaDesde y FechaDeVigenciaHasta, EstadoDeCarrera, NivelAcademico, Visible, CodigoDeFacultad. 2. Sistema: Despliega el detalle de la instancia de la entidad Carrera que cumpla con los criterios de selección. 3. AEA, CRT: Actualiza los datos de la instancia de la entidad carrera seleccionada. a. Consultar las instancias asociadas de la entidad Plan_Académico. Se debe poder consultar las instancias de la entidad Plan_Academico que estén asociados a la Carrera. b. Consultar las instancias asociadas de la entidad Especialidad. Se debe poder consultar las instancias de la entidad Especialidad (TipoDeEspecialidad = "Orientación") que estén asociados a la Carrera. 4. AEA: Confirma la operación 5. Sistema: Actualiza la instancia de la entidad Carrera Cuando solicitan la eliminación, de una instancia, se la debe eliminar lógicamente, se debe modificar el EstadoDeCarrera = "Inactivo", y colocar la FechaDeVigenciaDesde con el valor de la fecha del día si es que el usuario no informa una FechaDeVigenciaDesde posterior. 6. Sistema: Finaliza el caso de uso Caminos Alternativos No Confirma 4A. AEA No confirma la operación 4A1. Sistema: Continúa en paso 6 Crear 1A. AEA: Ingresa los datos para crear una nueva carrera La información del Director se obtiene de la entidad Persona.FuncionPuesto sea igual a DirectorDeCarrera, y Coordinador de Carrera se obtiene de la entidad Persona.FuncionPuesto sea igual a CoodinadorDeCarrera. Se debe asociar una Facultad con Facultad.EstadoDeFacultad = "Activo". 1A.1. Sistema: Continúa en paso 3.a Consultar 3A. AEA: Consulta el detalle de la carrera seleccionada.
El sistema permitirá consultar el detalle y las entidades relacionadas (tal como se indicó en el Camino Principal) con la instancia seleccionada 3A1. Sistema: Continúa en paso 6 Caminos de Excepción 2a. No existe Carrera para los criterios ingresados 2a1.Sistema: Despliega el error ERR0005, continúa paso 1 5a. Elimina lógicamente una instancia de la entidad Carrera y existe por lo menos una instancia de la entidad Orientacion asociada. 5a1.Sistema: Despliega el error ERR0026, continúa paso 3 5b. Elimina lógicamente una instancia de la entidad Carrera y existe por lo menos una instancia de la entidad Plan_Academico asociada. 5b1.Sistema: Despliega el error ERR0036, continúa paso 3 Considere la siguiente interfaz gráfica correspondiente al caso de uso indicado: 14) Una empresa posee una máquina que expende café a sus empleados que funciona de la siguiente manera. En primer lugar, Cada empleado ingresa su legajo, una vez que la máquina lo acepta, permite seleccionar entre varios tipos de café. El empleado debe ingresar el código numérico correspondiente. También selecciona el número de cafés que necesita. Una vez que confirma y acepta el o los cafés, la máquina emite un ticket o comprobante en el que se consignan el día y la hora, datos del empleado, código del café y unidades. Dada la siguiente especificación, definir casos de test usando las técnicas funcionales de análisis de clases de equivalencia y valores límite (en los casos que aplique).
Caso de Uso: Registro de ticket de empleado. Actor: Empleado. Precondición: Usuario logueado. Códigos de café ingresados. Postcondición: Queda registrado el nuevo ticket con los valores indicados. Curso normal 1. El usuario ingresa el código de empleado (legajo), el código del café, y las unidades. 2. El sistema valida los datos. 3. El sistema registra el ticket correspondiente a los datos ingresados, previo cálculo del monto correspondiente. 4. El sistema muestra un mensaje indicando el éxito de la operación. Fin del Caso de Uso Curso Alternativo 3.1. Datos inválidos. Si alguno de los datos es inválido, muestra un mensaje que explica la situación. 15) La Administración de la Terminal de Ómnibus, en conjunto con la Municipalidad de Bahía Blanca, están otorgando permisos para establecer puestos comerciales de venta de comidas rápidas y kioscos. Estos permisos pueden emitirse para un individuo determinado o para algún tipo de sociedad comercial. En ambos casos, debe poseer un número de CUIT. El proceso para llevar a cabo la concesión es realizado por un usuario logueado al sistema de la Municipalidad. Para esto, el usuario ingresa el CUIT del titular de la nueva concesión. Si el CUIT corresponde a un titular no registrado, la concesión no se efectúa. En caso de que el titular sea una sociedad, puede tener más de una concesión en forma simultánea. En el caso de que se lleve a cabo la concesión de un puesto de comidas rápidas, el sistema emite un reporte con los datos del puesto de comidas, y la Municipalidad de Bahía Blanca en conjunto con la Estación Terminal de Ómnibus, se ocupan de realizar la publicidad correspondiente. Definir casos de test usando las técnicas funcionales de análisis de clases de equivalencia y valores límite (en los casos que aplique).