Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Testing Refresh
Testing Refresh
TÉRMINOS
________________________________________________________
• Nunca es suficiente
• Cuando se hizo lo planificado
• Cuando el cliente/usuario es feliz
• Cuando se ha demostrado que el sistema funciona correctamente
• Cuando se tiene la certeza objetiva de que el sistema funciona
correctamente
• Depende de los riesgos del sistema
¿POR QUÉ ES NECESARIO PROBAR?
_______________________________________________________________
Proceso que está presente en todas las actividades del ciclo de vida del
software, tanto estáticas como dinámicas, concernientes
con la planificación
y evaluación
de productos de software y los productos de trabajo relacionados
para determinar que éstos satisfacen los requisitos especificados,
para demostrar que se ajustan al propósito
y para detectar defectos.
LOS SIETE PRINCIPIOS DE
LAS PRUEBAS
LOS SIETE PRINCIPIOS DE LAS PRUEBAS
4. Agrupación de defectos.
• Las pruebas muestran que los defectos están presentes, pero no pueden
comprobar su ausencia.
• Las pruebas reducen la probabilidad de la presencia de defectos no
descubiertos pero eso no demuestra su ausencia, incluso cuando no se
encontraron defectos durante las pruebas.
• La ausencia de fallos no demuestra que un producto de software es
correcto.
• El mismo proceso de pruebas puede contener errores.
• La condiciones de las pruebas pueden ser inapropiadas para detectar
errores.
PRINCIPIOS DE LAS PRUEBAS
_____________________________________________________________
PRINCIPIO 2: LAS PRUEBAS EXHAUSTIVAS SON IMPOSIBLES
• Las actividades de pruebas deben comenzar tan pronto como sea posible en el ciclo
de vida del desarrollo del software o sistema y deben ser orientados sobre objetivos
definidos.
• La corrección de un defecto es menos costosa en la medida en que su detección se
realice en fases tempranas del proceso software.
• Se obtiene una máxima rentabilidad cuando los errores son corregidos antes de la
implementación.
• Los conceptos y especificaciones pueden ser probados.
• Los defectos detectados en la fases iniciales son corregidos con menor esfuerzo y
costos.
• La preparación de una prueba también consume tiempo.
• El proceso de pruebas implica más que sólo la ejecución de pruebas.
• Las actividades de pruebas pueden ser preparadas antes de que el desarrollo se haya
completado.
• Las actividades de pruebas (incluidas las revisiones) deben ser ejecutadas en
paralelo a la fase de requerimientos y diseño software.
PRINCIPIOS DE LAS PRUEBAS
_______________________________________________________________
PRINCIPIO 3: PROBAR LO MÁS TEMPRANAMENTE POSIBLE
Requerimiento 1
Entrega de atributos
Requerimiento Diseño acorde con Desarrollo acorde El producto trabaja funcionales y no
correcto los requerimientos con el Diseño según lo esperado funcionales correctos
Requerimiento 2
Requerimiento 3
El producto
Requerimiento Error en el Desarrollo Rediseñar para
contiene
acorde con
correcto Diseño defectos en corregir los defectos
el Diseño
el diseño
Requerimiento 4
Diseño acorde Desarrollo Entrega del Los defectos pueden
Error en el
requerimiento
con los acorde con el producto estar ocultos al
requerimientos Diseño equivocado
equipo de desarrollo
PRINCIPIO DE LAS PRUEBAS
_________________________________________________________________
PRINCIPIO 3: PROBAR LO MÁS TEMPRANAMENTE POSIBLE
• Si el mismo test se repite una y otra vez, eventualmente el mismo grupo de casos de
prueba ya no encontrará nuevos errores. Para vencer esta “paradoja del pesticida”,
los casos de prueba necesitan ser regularmente revisados y estudiados, y se
necesitan escribir nuevos casos de prueba para ejercitar diferentes partes del
software o sistema para encontrar mas defectos potenciales.
• Repetir pruebas en las mismas condiciones no es efectivo.
• Cada caso de prueba debe contar con una combinación única de parámetros de
entrada para un objeto de pruebas particular, de lo contrario no se podrá obtener
información adicional.
• Si se ejecutan las mismas pruebas de forma reiterada no se podrán encontrar nuevos
defectos.
• Las pruebas deben ser revisadas/modificadas regularmente para los distintos
módulos(código).
• Es necesario repetir una prueba tras una modificación del código (corrección de
defectos, nueva funcionalidad).
• La automatización de pruebas puede resultar conveniente si un conjunto de casos de
prueba se deben ejecutar frecuentemente.
PRINCIPIOS DE LAS PRUEBAS
_______________________________________________________________
PRINCIPIO 6: LA PRUEBA DEPENDE DEL CONTEXTO
Monitoreo y Control
Análisis y Diseño
Planificación
Implementación y
Ejecución
Evaluación de Criterios de
Salida y Reporting
Cierre
MODELOS DE
DESARROLLO DE
SOFTWARE
• Modelo Cascada
• Modelo V
• Modelo Iterativo
MODELOS DE DESARROLLO DE SOFTWARE
______________________________________________________________________
MODELO CASCADA
El modelo de cascada fue uno de los primeros modelos que se
Necesidad,
Deseo, Política,
diseñó. Tiene una línea de tiempo natural, donde las tareas se
Ley ejecutan de manera secuencial
DEFICIENCIAS:
Requerimientos de - Los detectos se descubrían en etapas
Usuario muy avanzadas del proyecto (mayor
costo).
Requerimiento de
Sistemas
- Es un modelo muy lineal y en
consecuencia no puede soportar
Diseño Global muchas iteraciones (cambios o
variaciones en el ciclo de vida).
Diseño Detallado
Implementación
Prueba
MODELOS DE DESARROLLO DE SOFTWARE
______________________________________________________________________
MODELO V (V-MODEL)
MODELO V
Requerimientos
Pruebas de Aceptación
de Negocio
Especificación
Pruebas de Sistemas
Del Sistema
Prueba
Especificación Pruebas de Integración
Del Proyecto “No hay tiempo para de Sistemas
diseñar las pruebas
tempranamente” Prueba
Especificación
Pruebas de Sistemas
Del Sistema
Prueba
Pruebas de Integración de
Especificación de Diseño
Componentes
Prueba
Prueba
Requerimientos
Pruebas de Aceptación
de Negocio
Prueba
Especificación Pruebas de Integración
Del Proyecto de Sistemas
Prueba
Especificación
Pruebas de Sistemas
Del Sistema
Prueba
Pruebas de Integración de
Especificación de Diseño
Componentes
Prueba
Live Implementation
MODELOS DE DESARROLLO DE SOFTWARE
______________________________________________________________________
Componente A A Driver
Componente B Stub B
NIVELES DE PRUEBA
______________________________________________________________________
PRUEBAS DE COMPONENTES
• Generalmente ejecutados por los desarrolladores.
• Se utilizan herramientas del entorno de desarrollo (IDE’s, depuradores,
etc.) que permiten el acceso al código.
• Usualmente los errores se arreglan al momento (sin necesidad de
documentarlos).
• El conocimiento del código permite la aplicación de métodos de caja
blanca.
• Puede incluir pruebas de funcionalidad y no funcionales (por ejemplo:
pérdidas de memoria, rendimiento) así como las pruebas estructurales
(por ejemplo: cobertura de decisión, cobertura de sentencias).
• Utilizados en Extreme Programming (XP) para preparar y automatizar
casos de prueba antes de codificar. Esto se llama una prueba de primer
enfoque o desarrollo basado en pruebas.
NIVELES DE PRUEBA
______________________________________________________________________________
PRUEBAS DE INTEGRACIÓN
• Pruebas aplicadas a interfaces de distintos componentes o a las
interacciones ente distintas partes de un sistema.
• Se puede dividir en:
• Pruebas de integración de componentes
• Prueba las interacciones entre los componentes de un
sistema. Se realiza después de las pruebas de
componentes.
• Pruebas de integración de sistemas.
• Prueba las interacciones entre los sistemas. Generalmente
se realiza después de las pruebas de sistemas.
NIVELES DE PRUEBA
______________________________________________________________________
ENFOQUES UTILIZADOS EN LAS PRUEBAS DE INTEGRACIÓN
• Pruebas de integración “Big-Bang’
• Se realiza cuando todos los componentes o sistemas están
completamente probados.
• Se prueba el integrado como un todo.
• Ventaja: No se tienen que simular partes.
• Desventaja: Ocupa tiempo y dificultad para rastrear fallas.
• Pruebas de integración “Paso a Paso”
• Los componentes se integran uno por uno y en cada integración
se realizan las pruebas.
• Testeo incremental.
• Ventaja: Es fácil de rastrear las fallas
• Se deben simular partes, por lo que demanda más tiempo.
NIVELES DE PRUEBA
______________________________________________________________________________
PRUEBAS DE ACEPTACIÓN
PRUEBAS DE ACEPTACIÓN
PRUEBAS DE ACEPTACIÓN
1. PRUEBAS FUNCIONALES
• En las pruebas funcionales, básicamente se realiza la prueba
de las funciones del componente o sistema.
• Se refiere a actividades que verifican una acción o función
específica del código. La prueba funcional tiende a responder
preguntas como “¿puede el usuario hacer esto” o “funciona
esta característica en particular?” Esto se describe
típicamente en una especificación de requisitos o en una
especificación funcional.
NIVELES DE PRUEBA
______________________________________________________________________________
2. PRUEBAS NO FUNCIONALES
• En las pruebas no funcionales, se prueban las características
de calidad del componente o sistema.
• No funcional se refiere a aspectos del software que pueden
no estar relacionados con una función específica o acción del
usuario, como la escalabilidad o la seguridad.
• Hace referencia a pruebas técnicas y de rendimiento
TIPOS DE PRUEBAS
______________________________________________________________________________
3. PRUEBAS ESTRUCTURALES/ARQUITECTURA DE SW
• La prueba estructural es la prueba de la estructura del
sistema o componente.
• Las pruebas estructurales a menudo se conocen como "caja
blanca" o "caja de vidrio" o "prueba de caja transparente"
porque en las pruebas estructurales nos interesa lo que está
sucediendo“ dentro del sistema/aplicación".
TIPOS DE PRUEBAS
______________________________________________________________________________
• Pruebas de regresión
• Las pruebas se realizan con la intención de comprobar que el
sistema no ha retrocedido (es decir, que no tienen más
defectos como consecuencia de algún cambio).