Práctica de Testing Funcional (Ingeniería I)

De Cuba-Wiki
Saltar a: navegación, buscar
Back.png Volver a la página de la materia

Casos de test a partir de una descripción textual[editar]

Ejercicio 1[editar]

Diseñe un conjunto de test para el siguiente problema. Dados tres enteros, que se interpretan como la longitud de cada uno de los lados de un triángulo, decir si el triángulo resultante es isósceles, escaleno o equilátero.

Ejercicio 2[editar]

Diseñar el test funcional para el siguiente problema, detallando los casos de test y un conjunto de datos de test correspondiente a cada caso. Un sistema de pagos está diseñado de manera de tener un registro de cada empleado. Una vez cada dos semanas, se imprimen reportes con el número de horas que trabajó cada empleado en lo que va del año. Para cada empleado se establece su honorario por hora. Cada fin de mes, se imprime el cheque de cada empleado.

Ejercicio 3[editar]

En un campeonato de fútbol hay equipos, los cuales juegan todos contra todos exactamente dos veces, una vez en la cancha de cada uno de los equipos (al equipo dueño de la cancha se le llama local y al otro equipo visitante). El campeonato finaliza cuando todos los partidos han sido jugados. El resultado de un partido puede ser que uno y sólo uno de los equipos gane o que empaten. Dados un conjunto de equipos y una secuencia de ternas de la forma < e1, e2, res > representando resultados de partidos del campeonato, donde e1 y e2 son equipos y res es el resultado del partido que es de tipo enumerado L, E ó V, el sistema retorna true sii el conjunto y la secuencia anteriores forman una asignación de resultados de partidos válida y la secuencia contiene los resultados para todos los partidos del campeonato. Dada la descripción anterior, derive al menos 7 casos -de interés- de test funcionales. Justifique. De un conjunto de datos de test que cubra los casos derivados. Justifique.

Ejercicio 4[editar]

Se desea implementar un sistema llamado escáip para realizar llamadas a través de Internet. Dichas llamadas podrán establecerse entre usuarios del mismo sistema, o entre usuarios del sistema como emisores y teléfonos fijos o celulares (correspondientes a la telefonía tradicional) como receptores. Cada usuario al momento de registrarse, debe indicar a qué país pertenece.

Las llamadas a números de teléfono fijos o celulares poseen una tarifa (costo de la llamada por minuto) según la siguiente tabla:

Argentina Colombia Francia
Argentina Fijo:$1 - Cel:$2 Fijo:$1,50 - Cel:$3 Fijo:$3 - Cel:$6
Colombia Fijo:$2 - Cel:$4 Fijo:$1 - Cel:$2 Fijo:$3 - Cel:n/d
Francia Fijo:$3 - Cel:$5 Fijo:$3 - Cel:n/d Fijo:$1 - Cel:$2

Las filas corresponden al país origen, mientras que las columnas corresponden al país de destino. En algunos casos, el servicio de comunicación a teléfonos celulares no está disponible. En estos casos, en la tabla se indica el valor n/d. El sistema valida si el número de destino es válido o no. El número de teléfono destino es reconocido por el sistema como celular si comienza con los dígitos “15”. Al finalizar la llamada al teléfono fijo o celular, el sistema visualizará un mensaje en pantalla indicando la duración de la llamada y el importe total. Si no se pudo establecer la llamada, indicará un mensaje de error con el motivo correspondiente. La tabla aquí indicada es la que existe en este momento. Sin embargo, esta tabla está sujeta a cambios muy frecuentes. Estos cambios consisten en la aparición/desaparición de países desde dónde y hacia dónde comunicarse (aunque siempre se da que el conjunto de países origen y destino son los mismos), y en la eventual habilitación/inhabilitación del servicio de comunicación a telefonía celular entre los países.

Si la llamada es a otro usuario escáip, el usuario deberá ingresar el nombre de usuario del destinatario. Si el nombre de usuario está registrado, se iniciará la comunicación; si no, se visualizará un mensaje en pantalla indicando que el nombre de usuario del destinatario no existe. Si la comunicación es exitosa, al finalizar ésta aparecerá un mensaje en pantalla indicando que la llamada realizada ha sido gratuita. Se solicita lo siguiente:

a) Indicar los factores, categorías y elecciones que intervienen en el diseño de los casos de test de la unidad funcional (realización de una llamada).

b) En base al punto anterior, diseñar los casos de test en base a método de partición por categorías indicando el resultado esperado para cada caso.


Elementos necesarios para el test funcional[editar]

Ejercicio 5[editar]

Se dispone de una función en Visual Basic que recibe como parámetros tres enteros que simbolizan el día, el mes y el año de una fecha, y devuelve un valor booleano de forma tal que

  • si la fecha es válida, devuelve verdadero
  • si la fecha es inválida, devuelve falso

Derive casos de test funcional a partir del enunciado anterior identificando las clases de equivalencia para los parámetros de entrada. ¿Necesita la implementación de la función para elaborar los casos? ¿Qué conocimientos utilizó para generar estos casos?

Respuesta:

  • Mes
    • Menor o igual a cero [error]
    • Mayor a 12 [error]
    • 01 [property 31d]
    • 02 [property feb]
    • 03 [property 31d]
    • 04 [property 30d]
    • 05 [property 31d]
    • 06 [property 30d]
    • 07 [property 31d]
    • 08 [property 31d]
    • 09 [property 30d]
    • 10 [property 31d]
    • 11 [property 30d]
    • 12 [property 31d]
  • Año
    • Bisiesto [if feb]
    • No Bisiesto
  • Dia
    • Menor o igual a cero [error]
    • Mayor a 31 [error]
    • Mayor a 01 y menor a 28
    • 01 [single]
    • 28 [if feb]
    • 29 [if feb]
    • 30 [if feb or 30d]
    • 31 [if 30d or 31d]


Casos de test a partir de casos de uso[editar]

Ejercicio 6[editar]

a) Diseñe el test funcional correspondiente al ejercicio Venta de Electrodomésticos de la práctica de Casos de uso. Indique:

  • casos de test.
  • datos de test, incluyendo datos de input y datos del entorno necesarios para la futura ejecución del test.
  • resultado esperado.

b) El punto c) de dicho ejercicio dice: “Teniendo en cuenta su resolución del primer punto, identifique casos de uso de este proceso, que pueden ser las distintas partes del caso completo presentado en el punto a”.

Decida si la siguiente afirmación es verdadera o falsa: Diseñar y ejecutar los “casos de test funcional” de los “casos de uso de las partes” en forma aislada es lo mismo que diseñar y ejecutar los “casos de test” para el “caso de uso completo”. Justifique.

c) A partir de los casos obtenidos, encuentre variaciones de manera de completar aún más el nivel del test.


Casos de test a partir de una especificación formal[editar]

Ejercicio 7[editar]

Ing1-testing-ej7.png

A partir del diagrama de clases anterior, considerando los invariantes y las cardinalidades detalladas, diseñar el testing funcional para todos los métodos de la clase Hospital.


Casos de test a partir de diagramas de actividad[editar]

Ejercicio 8[editar]

a) Dado del enunciado y la resolución del ejercicio 3 (“Máquina para la venta y expedición de bebidas en forma automática”), derive casos de testing funcional utilizando la técnica de partición de equivalencias.

b) Explique los pros y los contras de hacer testing sobre cada actividad del diagrama y hacerlo sobre el diagrama en general. ¿En qué casos aplicaría qué técnica? ¿Aplicaría las dos juntas? Justifique.


Casos de test a partir de máquinas de estado finito[editar]

Ejercicio 9[editar]

Derive casos de test funcional utilizando el diagrama de su resolución del ejercicio Teléfono Celular de la práctica FSM.


Preguntas teóricas[editar]

Ejercicio 10[editar]

Fundamente las causas por lo que resulta altamente conveniente efectuar el diseño del testing funcional de un sistema, antes de diseñar y codificar el mismo.

Ejercicio 11[editar]

Habiendo derivado casos de test funcionales a partir de distintos elementos relacionados con las etapas de análisis de requerimientos y especificación (casos de uso, diagramas de actividades, OCL, etc), compare la experiencia obtenida en cada caso en relación con los siguientes puntos: grado de dificultad para encontrar casos y datos de test, precisión al especificar el comportamiento esperado y facilidad a la hora de encontrar variaciones en los casos.


Adicional: Magnitud de la tarea de testing[editar]

Ejercicio 12[editar]

Ing1-testing-ej12.png

El buscador de archivos del Windows es una aplicación bastante conocida y sencilla. Lo que hace es buscar dentro de las unidades de almacenamiento archivos que cumplan con ciertos criterios de búsqueda cargados por el usuario.

a) Derive los casos de test funcional necesarios para testear las funcionalidades de búsqueda por nombre de la aplicación. No tenga en cuenta las demás solapas.

b) Ahora realice la misma tarea, pero teniendo en cuenta todas las opciones de búsqueda de la aplicación.

c) Estime la cantidad de casos necesaria para testear la aplicación completa.

d) A partir del resultado obtenido en c), cambió su consideración de la actividad de testing en general ?