Subido por rimersaulrosaherrera

TEMA 3 TÉCNICAS DE EVALUACIÓN DINÁMICA pa (1)

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