TÉCNICAS DE EVALUACIÓN DINÁMICA UNIDAD 3 J.V.N. E.Y.A.D.S. 4.1 CARACTERÍSTICAS ⚫También conocidas como pruebas de software ⚫Es un proceso de evaluación en que los resultados obtenidos se comparan con los resultados esperados ⚫Conducen a un proceso de depuración ⚫Permite obtener un determinado nivel de fiabilidad J.V.N. E.Y.A.D.S. 4.1 CARACTERÍSTICAS ⚫Objetivo -> no es asegurar ausencia de defectos, es sacar a la luz diferentes clases de errores, con la menor cantidad de tiempo y esfuerzo. ⚫Deberían ser realizadas por un grupo independiente al que realizó el software J.V.N. E.Y.A.D.S. 4.2 PRUEBAS DE SOFTWARE ⚫Comparar los resultados obtenidos con los esperados ⚫Características ⚫ Alta probabilidad de encontrar fallos -> imagen mental en que situaciones puede fallar. ⚫ Se centra en dos objetivos ⚫ ⚫ Probar si el software no hace lo que debe hacer Probar si el software hace lo que no debe hacer ⚫ No debe ser redundante J.V.N. E.Y.A.D.S. 4.2 PRUEBAS DE SOFTWARE ⚫Se debe emplear la prueba con la más alta probabilidad de descubrir una clase entera de errores ⚫No debe ser muy sencilla, ni demasiado compleja ⚫Cada una de ellas debe ser realizada separadamente J.V.N. E.Y.A.D.S. 4.2 PRUEBAS DE SOFTWARE ⚫Entre las tareas para realizar se tiene: ⚫ Diseño de las pruebas -> Técnicas para probar el software ⚫ Generación de casos de prueba: ⚫ Entradas ⚫ Condiciones de Ejecución ⚫ Resultados Esperados La generación de cada caso de prueba debe ir acompañado de los resultados esperados J.V.N. E.Y.A.D.S. 4.2 PRUEBAS DE SOFTWARE ⚫Definición de los procedimientos de prueba: ¿cómo...?, ¿quién...? ¿cuándo....? ⚫Ejecución de la Prueba: Aplicar, comparar ⚫Realización de un informe de prueba: ⚫ Resultado de la ejecución de pruebas ⚫ Pruebas que pasaron satisfactoriamente ⚫ Pruebas que no pasaron satisfactoriamente ⚫ Defectos detectados J.V.N. E.Y.A.D.S. 4.3 TÉCNICAS DE PRUEBAS ⚫Se agrupan en: ⚫ Técnicas de caja blanca o estructurales: examen de procedimientos en el código a evaluar ⚫ Técnicas de Caja Negra o funcionales: Se realizan sobre la interfaz del programa entendiendo por interfaz E/S (funcionalidad) J.V.N. E.Y.A.D.S. 4.3 TÉCNICAS DE PRUEBAS Caja Blanca Entrada Salida ⚫Se deben recorrer todos los posibles caminos por donde recorre el flujo de control de un programa. Seleccionando un conjunto representativo de entradas, generando los casos de pruebas, con el fin de detectar defectos J.V.N. E.Y.A.D.S. 4.3 TÉCNICAS DE PRUEBAS ⚫Caja Negra Entrada Salida ⚫Se seleccionan un conjunto representativo de entradas con el fin de generar los casos de pruebas, con el fin de provocar fallos al programa Ambas técnicas son complementarias J.V.N. E.Y.A.D.S. 4.3.1 PRUEBAS DE CAJA BLANCA O ESTRUCTURALES ⚫También conocidas como técnicas de Caja Transparente o Caja de Cristal ⚫El proceso de centra en diseñar casos de prueba para la estructura del programa ⚫No se consideran aspectos del rendimiento ⚫Objetivo -> Diseñar casos de prueba para que se ejecuten todas las sentencias y todas las condiciones (F o V) J.V.N. E.Y.A.D.S. 4.3.1 PRUEBAS DE CAJA BLANCA O ESTRUCTURALES ⚫Los criterios de cobertura lógica que se deben examinar son los siguientes: ⚫ Cobertura de Sentencias ⚫ Cobertura de Decisión ⚫ Cobertura de Condiciones ⚫ Cobertura de Condición Múltiple J.V.N. E.Y.A.D.S. COBERTURA DE CAMINOS ⚫Permite ejecutar todas las sentencias por lo menos una vez y las condiciones en sus valores verdadero y falso. ⚫Permite obtener una medida de la complejidad del diseño procedimental de un programa. J.V.N. E.Y.A.D.S. COBERTURA DE CAMINOS ⚫Pasos: ⚫ Representar el programa en un grafo de flujo ⚫ Calcular la complejidad ciclomática ⚫ Determinar el conjunto básico de caminos independientes ⚫ Derivar la ejecución de los casos de prueba y la ejecución de cada camino J.V.N. E.Y.A.D.S. REPRESENTAR EL PROGRAMA EN UN GRAFO DE FLUJO ⚫ Cada nodo representa una o más sentencias procedimentales ⚫ Un solo nodo puede responder a un conjunto de sentencias y un rombo a una decisión ⚫ Las flechas, denominadas aristas representan el flujo de control ⚫ Una arista debe terminar en un nodo ⚫ Las áreas delimitadas por aristas y nodos se denominan regiones ⚫ Cuando se contabiliza las regiones incluimos el área exterior del grafo, contando como otra región más. J.V.N. E.Y.A.D.S. REPRESENTAR EL PROGRAMA EN UN GRAFO DE FLUJO ⚫Cuando en un diseño procedimental se encuentran condiciones compuestas (Cuando aparecen uno o más operadores lógicos OR, AND) se crea un nodo aparte por cada una de las condiciones. ⚫Un nodo se denomina nodo predicado cuando dos o más aristas emergen de el J.V.N. E.Y.A.D.S. REPRESENTAR EL PROGRAMA EN UN GRAFO DE FLUJO ⚫Estructura Secuencial ⚫Estructura If ⚫Estructura If/else ⚫Estructura Switch ⚫Estructura While ⚫Estructura Do/while ⚫Estructura Cíclica For J.V.N. E.Y.A.D.S. REPRESENTAR EL PROGRAMA EN UN GRAFO DE FLUJO If a or b Then X Else Y Endif J.V.N. E.Y.A.D.S. REPRESENTAR EL PROGRAMA EN UN GRAFO DE FLUJO If a and b Then X Else Y End if (Ejercicio texto) (Ejercicio Programa) J.V.N. E.Y.A.D.S. Calcular la complejidad ciclomática ⚫Define el número de caminos independientes: ⚫ Número de Regiones ⚫ V(G) = Aristas – Nodos +2 ⚫ Nodos Predicados + 1 J.V.N. E.Y.A.D.S. Determinar el conjunto básico de caminos independientes ⚫Camino Independiente -> Introduce un nuevo conjunto de sentencias de procesos o una condición respecto a los caminos existentes. ⚫Está constituido por una arista que no haya sido recorrida anteriormente J.V.N. E.Y.A.D.S. Heurísticas para identificar caminos ⚫a) Elegir un camino principal que represente una función válida, debe atravesar el número máximo de decisiones en el grafo ⚫b) Identificar el segundo camino mediante la localización de la primera decisión alterando el resultado ⚫c) Continuar hasta haber conseguido tratar todas la decisiones intentando mantener en su origen al resto de ellos J.V.N. E.Y.A.D.S. Heurísticas para identificar caminos ⚫Camino 1: nodo 1, nodo 2, nodo 4 ⚫Camino 1: nodo 1, nodo 3, nodo 4 J.V.N. E.Y.A.D.S. Derivar los casos de prueba Número de camino Caso de Prueba Ejercicio Hoja J.V.N. E.Y.A.D.S. Objetivos Resultado Esperado Solución: Ejercicio de caja Blanca Solución: Ejercicio de caja Blanca ⚫Seis regiones por tanto seis caminos ⚫ Camino 1: 1, 2, 3, 4, 5, 6, 7, 8, 9, 2 , 10, 11, 13 ⚫ Camino 2: 1, 2, 3, 4, 5, 6, 7, 8, 9, 2 , 10, 12, 13 ⚫ Camino 3: 1, 2, 3, 4, 5, 6, 8, 9, 2, 10, 12, 13 ⚫ Camino 4: 1, 2, 3, 4, 5, 8, 9, 2, 10, 12, 13 ⚫ Camino 5: 1, 2, 3, 10, 11, 13 ⚫ Camino 6: 1, 2, 10, 12, 13 Solución: Ejercicio de caja Blanca Número de Camino 1 2 3 4 5 6 Caso de Prueba Objetivo Resultado Esperado Valor= [10, -999] Mínimo = 0 Máximo = 100 Probar la media pasando una sola vez por el ciclo while Media = 0 Total.entrada=1 Total.valido=1 Valor = Array con 101 números (dentro de los rangos mínimo y máximo) Probar la media introduciendo 101 números en el array calculando solamente la media de los primeros 100 Media de los primeros 100 valores Total.entrada=100 Total.salida=100 4.4 Pruebas de Caja Negra ⚫También conocidas como pruebas de comportamiento. ⚫Se basan en la especificación del programa. ⚫El componente se vé como una caja negra cuyo comportamiento solo puede ser determinado estudiando E/S obtenidas a partir de ellas. 4.4 Pruebas de Caja Negra ⚫Como el estudio de todas las entradas y salidas sería impracticable, se selecciona un conjunto de ellas sobre la que se basa las pruebas. ⚫Se debe tener en cuenta que en todo programa existe un conjunto de entradas que causan un comportamiento erróneo y producen salidas que generan defectos 4.4 Pruebas de Caja Negra ⚫Métodos ⚫ Particiones de Equivalencia ⚫ Análisis de Casos Límite 4.4 Pruebas de Caja Negra ⚫3.2.1PARTICIONES DE EQUIVALENCIA ⚫ Es un método de caja negra que divide el campo de entradas de un programa en clases de datos de los que se pueden derivar en casos de prueba. Consta de 2 pasos: ⚫ Identificar clases de equivalencia ⚫ Identificar los casos de prueba 4.4.1.1 Identificar clases de Equivalencia ⚫Una clase de equivalencia representa un conjunto de estados válidos y no válidos para condiciones de entrada de un programa. ⚫Existe dos tipos de clases de equivalencia Clases de equivalencia válidas, que representan entradas válidas al programa Clases de equivalencia no válida, que representan valores de entrada erróneos 4.4.1.1 Identificar clases de Equivalencia ⚫La tabla para identificación de clase de equivalencia es la siguiente: Condición de Entrada Código de Universidad Clase de equivalencia válida 1: En blanco 2: 100<=Código de Universidad<=999 Clase de equivalencia no válida 3: Una cadena no numèrica 4: Código de Universidad<100 5:Código de Universidad>999 4.4.1.1 Identificar clases de Equivalencia ⚫Se pueden seguir las siguientes heurísticas: Si una condición de entrada especifica rango de valores, se puede identificar una clase de equivalencia válida y dos no válidas 4.4.1.1 Identificar clases de Equivalencia ⚫Si una condición de entrada especifica un conjunto de valores de entrada, identificar una clase de equivalencia válida y otra no válida, cada uno de los miembros será tratado de distinto modo por el programa. 4.4.1.1 Identificar clases de Equivalencia Si una condición de entrada especifica una situación que debe ocurrir, se puede identificar una clase válida y otra no válida Ej. Primer carácter del identificador debe ser una letra Si hay alguna razón para creer que los elementos de una clase de equivalencia no se tratan de igual modo, dividir la clase de equivalencia entre clases de equivalencia más pequeñas para cada tipo de elementos. 4.4.1.2 Identificar casos de prueba ⚫Objetivo -> Minimizar los casos de Prueba ⚫ Clase de Equivalencia -> No. Único ⚫ Mientras todas las clases de equivalencia no hayan sido cubiertas por datos de prueba se trata de escribir un caso de prueba que cubra tantas clases válidas como no incorporadas como sea posible ⚫ Mientras todas las clases de equivalencias no validas hayan sido cubiertos por casos de prueba, escribir un caso de prueba para cubrir una única clase no válida no cubierta 4.4.2 Análisis de Valores Límite ⚫Condiciones Límite -> valores que se hallan en márgenes de equivalencia, tanto de E/S ⚫Casos de prueba -> Ejerciten valores límite ⚫Complemento a la técnica de partición de manera que: ⚫ Se eligen los casos de prueba extremos ⚫ Los casos de prueba se diseñan también para el dominio de salida 4.4.2 Análisis de Valores Límite ⚫Si una E especifica un rango de valores, se diseñan dos casos de prueba para los límites del rango, y otros dos justo por encima y por debajo del rango. Ejemplo de prueba de caja negra ⚫Considere una aplicación de Kardex de un Sistema Universitario, donde el usuario puede conectarse a la Universidad por Internet y realizar una serie de operaciones. Una vez accedido a la Universidad con las siguientes medidas de seguridad (Clave de Acceso y demás), la información de entrada del procedimiento que gestiona las operaciones concretas a realizar por el usuario requiere la siguiente entrada: Ejemplo de prueba de caja negra ⚫Código de Universidad: En blanco o número de tres dígitos. En este último caso, el primero de los tres tiene que ser mayor o igual que 1. ⚫Código de Facultad: Número de cuatro dígitos. El primero de ellos mayor de cero. ⚫Número de Cuenta: Número de 5 dígitos ⚫Clave Personal: Valor tipo cadena de 5 posiciones. Este valor se introducirá según la orden que se desee realizar. Ejemplo de prueba de caja negra ⚫Orden: Puede estar en blanco o ser una de las dos cadenas siguientes: ⚫ Estado Inscripción ⚫ Datos Personales ⚫En el primer caso el usuario recibirá un reporte de estado de inscripción, mientras que el segundo recibirá los datos personales del usuario. Si el código está en blanco el usuario recibirá los dos documentos. Ejemplo de prueba de caja negra Condición de Entrada Código de Universidad Tipo Condición de Ocurrencia Rango Clase de equivalencia válida 1: En blanco 2: 100<=Código Universidad<=999 Clase de equivalencia no válida 3: Un valor no numérico 4: Cod. Univ. <100 5: Cod. Banco>999 Código de Facultad Rango 6: 7: 8: No. de Cuenta Valor 9: 10: 11: Clave Personal Valor 12: 13: 14: Orden Comportam 15: iento 16: Distinto 17: 18: 19: 20: Ejemplo de prueba de caja negra No. Caso Clase de Equivalencia Cod. Univ. Cod. Faculta d No. de Cuenta Clave Orden Resultado 1 1, 6, 9, 12, 15 “” 2345 12345 12345 “” Se realizan todos los movimientos y se reciben los dos estados 2 2, 6, 9, 12, 16 3 4 5 6 Ejemplo de prueba de caja negra No. Caso 7 8 9 10 11 12 13 14 15 Clase de Equivalencia Cod. Univ. Cod. Faculta d No. de Cuenta Clave Orden Resultado