5 PruebasSW2
5 PruebasSW2
5 PruebasSW2
Pruebas de Software
Las pruebas es el proceso de ejercitar un programa con
la intención específica de encontrar errores previos a la
entrega al usuario final.
Pruebas: concepto y objetivos
Objetivos de las pruebas
◼ Encontrar defectos en el software
◼ Una prueba tiene éxito si descubre un defecto
◼ Una prueba fracasa si hay defectos pero no los descubre
Pruebas de Verificación
◼ Ver si cumple las especificaciones de diseño
Pruebas de Validación
◼ Ver si cumple los requisitos del análisis
Operabilidad: Operar limpiamente
Observabilidad: El resultado de cada caso de prueba es
observable
Controlabilidad: Grado con el cual las pruebas pueden ser
automatizadas y optimizadas
Descomposición: Las pruebas pueden ser dirigidas
Simplicidad: Reduce la lógica y arquitectura complejas para
simplificar las pruebas
Estabilidad: Algunos cambios son requeridos durante las
pruebas
Comprensibilidad: Del diseño
¿Qué muestran las pruebas?
errores
cumplimiento de requerimientos
desempeño
una indicación
de calidad
¿Quién prueba el software?
métodos de métodos de
caja blanca caja negra
Métodos
Estrategias
Pruebas de “caja blanca”
Concepto y terminología
◼ Pruebas en que se conoce el código a probar
◼ Caja blanca (clear box: caja clara o transparente)
◼ Se procura ejercitar cada elemento del código
Objetivo
◼ Asegurar que todas las sentencias y condiciones se ejecuten la menos
una vez.
Algunas clases de pruebas
◼ Pruebas de cubrimiento
◼ Pruebas de condiciones
◼ Pruebas de bucles
Pruebas de “caja blanca”
En esta prueba siempre se observa el código
que las pruebas se dedican a ejecutar con
ánimo de probarlo todo
La noción de prueba total se formaliza en lo
que se llama “cobertura” y no es si nouna
media porcentual de ¿Cuánto hemos cubierto?
¿Porque se utilizan?
A menudo creemos que un camino básico
tenga pocas posibilidades de ejecutarse.
Los errores tipográficos son aleatorios
Los errores lógicos y las suposiciones
incorrectas son inversamente proporcional a
la probabilidad de que se ejecute un camino
del programa.
Pruebas de “caja blanca”
Notación de grafo de flujo
Complejidad ciclomática
Matrices de grafos.
Notación de grafo de flujo
Representa el flujo de control lógico mediante
una notación ilustrada.
Cada instrucción estructurada tiene su
correspondiente símbolo en el grafo de flujo.
Complejidad ciclomática
Es una métrica del software que proporciona una medición
cuantitativa del complejidad lógica de un programa.
Cuando se utiliza el contexto del camino básico, la
complejidad ciclomática define le numero de caminos
independientes del conjunto básico de un programa y nos da
el limite de pruebas que se le deben realizar
Un camino independiente es cualquier camino de programa
que introduce, por lo menos, un nuevo conjunto de sentencias
de proceso o una nueva condición.
Nodo predicado es donde dos o mas arista emergen de el.
Complejidad ciclomática
La Complejidad ciclomática se puede calcular de
tres formas:
◼ El numero de regiones de un grafo de flujo coincide con
la complejidad ciclomática
◼ La Complejidad ciclomática, V(G), de un grafo de flujo G
se define como:
V(G)=A-N+2
Donde A es el num. de aristas y N el num. De nodos
◼ La Complejidad ciclomática, V(G), de un grafo de flujo G
se define como:
V(G)=P+1
Donde P es el num de nodos predicado contenidos en el grafo
Salida
Entrada Eventos