Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2018 02 23 Pruebas PDF
2018 02 23 Pruebas PDF
Estrategias de
Prueba del Software
1
Pruebas
Las pruebas consisten en un
conjunto de actividades que se
planean con anticipación y se
realizan de manera sistemática.
Características
2
Verificación y Validación
Verificación:
Conjunto de actividades que aseguran que el
software implemente correctamente una función
específica
Validación:
Conjunto de actividades que aseguran que el
software construido corresponde con los requisitos
del cliente
Consideraciones erróneas
3
Estrategias de Prueba
Pasos de la prueba
4
Aspectos Estratégicos
Pruebas de Unidad
Errores comunes:
•Aplicación incorrecta o mal entendida
de la precedencia aritmética
•Operaciones de modo mezcladas
•Inicialización incorrecta
•Falta de precisión
•Representación simbólica
Casos de prueba:
•Comparaciones entre diferentes tipos
de datos
•Operadores lógicos
•Expectativa de igualdad
•Comparación incorrecta de variables
•Terminación inapropiada o
inexistente de bucles
•Variables de bucle modificadas de
manera inapropiada
5
Pruebas de Integración
Es una técnica sistemática para construir la
arquitectura del software mientras, al mismo
tiempo, se aplican las pruebas para
descubrir errores asociados con la interfaz.
Objetivo:
Tomar componentes a los que se aplicó una
prueba y construir una estructura de
programa que determine el diseño
Enfoques:
BigBang
Incremental
Bing Bang
Es un enfoque no incremental que consiste en integrar todos los módulos y una vez
juntos probar el sistema esperando la explosión de errores que se puede generar. No es
una técnica recomendada pues dificulta el aislamiento de errores.
VENTAJAS
• Útil para la detección de errores cuando se encuentren todos los módulos ya en
construcción
• Aplicable antes de la entrega de proyecto para evaluar el trabajo de todo el sistema
con diversos escenarios.
• Se puede evaluar la interacción entre módulos para agilizar los procesos.
• Es apta para aplicar diversos escenarios para poder analizar el trabajo de todos los
módulos en diversas situaciones
DESVENTAJAS
• Dificultan la detección de posibles errores.
• Solo es posible aplicarla hasta que se esté avanzado el proyecto.
• Se tienen que trabajar con todos los módulos, no se puede hacer un análisis
individual.
• Si el proyecto es de corto plazo no se tiene mucho tiempo para la aplicación de la
prueba y realizar las correcciones
https://www.youtube.com/watch?v=W0-PFvqmxPY&feature=youtu.be&hd=1
6
Pruebas de Integración: Descendente
1. El módulo de control principal se utiliza como
controlador de prueba, y se sustituyen los
resguardos en todos los componentes M1
directamente subordinados al módulo de
control principal
M2 M3 M4
2. Dependiendo del enfoque de integración
seleccionado (profundidad-anchura) se van
reemplazando los resguardos subordinados, M5 M6 M7
uno por uno, con los componentes reales
1. Se combinan los
módulos de bajo nivel
en grupos que realicen Mc
una subfunción
específica del software
Ma Mb
2. Se escribe un
controlador con el fin de C1 C2 C3
coordinar la entrada y
salida de los casos de
prueba
3. Se prueba el grupo
4. Se eliminan los
controladores y se
combinan los grupos
ascendiendo por la
estructura del programa
7
Pruebas de Regresión
El objetivo es verificar, con pruebas sencillas y que demanden poco tiempo, que
ciertos caminos de la aplicación funcionen correctamente.
Se minimiza el riesgo en
Integrar los elementos de
la integración
código en una construcción
Se mejora la calidad del
Diseñar pruebas para exponer
producto final
errores
Se simplifica el
La construcción se integra con
diagnóstico y la corrección
otras construcciones y se
de errores
prueba diariamente
El progreso es más fácil
de evaluar
8
Estrategias de prueba Para Software OO
Prueba de Integración:
Pruebas de Validación
9
Pruebas del Sistema
Depuración
10
Depuración: Consideraciones para
la corrección
•El síntoma y la causa pueden estar separados geográficamente
•Facilidad de prueba
•Operatividad
•Observabilidad
•Controlabilidad
•Simplicidad
•Estabilidad
•Facilidad de comprensión
11
Características de las pruebas
12
Caja Blanca: Ruta básica
13
Caja Blanca: Complejidad Ciclomática
V(G) = P + 1
Donde p es el número de nodos predicado incluidos en la
gráfica de flujo G
Inicio
Ingresar
datos A,B,C
Es Si Es Si
A>B A>C
No No
Es Si A es
C es mayor
B>C
mayor
B es
mayor Fin
No
C es
mayor
14
Caja Blanca: Complejidad Ciclomática
Procedimiento promedio:
Procedimiento para calcula el promedio de 100 o menos números que
caen entre valores límite; también calcula la suma y el total de números
válidos
Caja Blanca:
declaraciones
Complejidad
Ciclomática
Int size
Int=size
End routine
15
Caja Blanca: Complejidad Ciclomática
Matriz de Gráfica
Gráfica de flujo
1 Conectado al nodo
a 1 2 3 4 5
1 a
3 2
e d Nodo
3 d b
b
4 c f
5
4 5 g e
f
c
g
* Peso del enlace
2
16
Pruebas POO
1 - 2: Poca Complejidad
3 - 4: Complejidad Moderada
5 - 6: Complejidad Alta
6+: Complejidad muy alta
https://github.com/sebastianbergmann/phploc
N-Path
N-Path es una métrica de software, que por encima se parece un poco a la complejidad
ciclomática. Aunque ambos se relacionan un poco, en realidad nos sirven para medir
cosas completamente distintas. Con N-Path calculamos el número de caminos
distintos que puede tomar una rutina (a funciones o métodos).
Tenemos una función en javascript. Veamos su NPath – Las líneas de distintos colores
que indican cuales son los distintos caminos que puede tomar la rutina.
En este caso, esta rutina tiene una CC (complejidad ciclomática) de 4. El resultado sería
- NPath = 2^(4-1) = 2^3 = 8.
Al igual que con la complejidad ciclomática, también existe una tabla de referencia para
ver que tan compleja es una rutina.
1 - 16: Complejidad Baja.
17 - 128: Complejidad Moderada.
129 - 1024: Complejidad Alta.
1025+: Complejidad Muy Alta.
17
Pruebas de Condición
E1 <operador relacional> E2
Pruebas de Bucles
Bucles Simples
¿Cómo efectuar casos de prueba?
18
Bucles Anidados
¿Cómo efectuar casos de prueba?
Bucles Concatenados
Se prueban considerándolos
como bloques simples.
19
Bucles No Estructurados
Herramientas para
medir la CC
Jsmeter
Sonar:
https://www.adictosaltrabajo.com/tutoriale
s/sonar-total-quality/
http://pear.php.net/package/PHP_CodeSn
iffer/
http://msquaredtechnologies.com/m2rsm/
20
Bibliografía:
Ing. De Software
Roger Pressman
Editorial McGraw Hill
Lecturas Adicionales
http://formandobits.com/2013/07/los-siete-principios-de-las-pruebas-software/
http://formandobits.com/2013/12/cuales-son-las-normas-certificaciones-y-
herramientas-mas-demandadas/
http://formandobits.com/2013/09/por-que-spock-no-seria-un-buen-responsable-
de-calidad/
https://modelosdepruebasw.wordpress.com/
http://www.baufest.com/index.php/es/que-es-una-prueba-de-humo-o-smoke-test-
por-irina-fuentes-vinas-y-santiago-becquart
21