Zusammenfassung der Ressource
Pruebas a través del ciclo de vida
- Modelos de desarrollo de software
- Modelo en V
- Es el mas utilizado
- Desarrollo y pruebas son 2 ramas iguales
- Las actividades del proceso de pruebas tienen lugar a los largo del ciclo de vida del software
- Rama de desarrollo
- Definicion de requisitos
- Diseño funcional del sistema
- Diseño técnico del sistema
- Especificación de los componentes
- Programación
- Rama de pruebas
- Pruebas de componente
- Pruebas de integración
- Pruebas de sistema
- Pruebas de aceptación
- Verificación: (Desarrollo) Comprobación de la conformidad con los requisitos establecidos ISO 9000
- Validación (Pruebas): Comprobación de la idoneidad para el uso esperado ISO 9000,
Comprobar si los requisitos y definiciones han sido implementados correctamente
- Modelo W
- Extensión del modelo en V
- Ciertas actividades del aseguramiento de la calidad se desarrollan en paralelo con el proceso de desarrollo
- Desarrollo: Planificar. Pruebas Depuración y corrección de errores
- Modelos iterativos
- Las actividades de requisitos diseño, desarrollo y pruebas se
segmentan en pasos reducidos y se ejecutan en forma continua
- Se debe alcanzar el consentimiento con el cliente tras cada iteración
- Modelo prototipado: Desarrollo rapido de una representación del sistema
- Desarrollo rapido de aplicaciones: Se implementa utilizando una funcionalidad
previamente construida simulando la funcionalidad que sera desarrollada
- RUP: De IBM, Modelo orientado a objetos, lenguaje de modelado UML
- Programación extrema (XP): El desarrollo y las pruebas tiene lugar sin una especificación de requisitos formal
- SCRUM: Se entrega un producto en corto tiempo que sea funcional
- Caracteristicas
- Cada iteración contribuye con una característica adicional
- Cada iteración puede ser probada por separado
- Las pruebas de regresión y automatización son de gran relevancia
- La verificación y validación se pueden realizar por separadop
- Principios
- Cada actividad debe ser probada
- Cada nivel de pruebas debería ser probado de forma especifica
- El proceso de pruebas comienza mucho antes de la ejecución de las pruebas
- Niveles de Pruebas
- Pruebas de componente
- Pruebas de modulo, de clase y de unidad
- Son denominadas pruebas de desarrollador
- Bases de pruebas: Requisitos de componente, diseño detallado, código
- Objetos de prueba: Componentes, clases, unidades,
módulos, conversión de datos, migración de programas
- Alcance: Solo se prueban componentes individuales,
cada componente es probado de forma independiente
- Los casos de prueba podrán ser obtenidos a partir de especificaciones
de componentes, diseño de software y modelo de datos
- Se realizan pruebas funcionales y no funcionales de un sistema
- Arnés de pruebas:
- DRIVER: Simulan datos de entrada, utilizan herramientas de programación
- STUB: Reemplaza o simula un componente que aun no se encuentra disponible
- Uso de depuradores, debuggers, marcos de prueba unitaria, se necesita conocimiento de código fuente
- Pruebas de integración (Interfaz)
- Comprueban funciones externas tras las pruebas de componente
- Comprueban la interacción entre elemento de software, entre distintos sistemas
- La integración de subsistemas también es parte del proceso de integración
- Pueden ser ejecutados por desarrolladores y probadores
- Alcance: Asume que los componentes ya han sido probados, comprueba la interacción mutua entre componentes, comprueba las interfaces
com el entorno del sistema, los controladores de pruebas pueden ser reutilizados en estas pruebas, se usan herramientas de control ára
apoyar las actividades de prueba
- Los casos de pruebas pueden ser obtenidos por: Especificación de interfaces, diseño de la arquitectura, modelo de datos
- Enfoque: Detectar defectos en las interfaces, comprueban la correcta interacción entre componentes, al reemplazar arneses por componentes
reales se pueden generar nuevos defectos
- Estrategias:
- Ascendente
- Descendente
- Big - Bang
- Integración ad-hoc: Los componentes serán probados inmediatamente despues de haber sido
finalizada su construcción y se hayan finalizado las pruebas de componente, es una estrategia que
puede ser usada en cualquier etapa del proyecto y normalmente se aplica combinada con otras
- Pruebas de sistema
- Bases de pruebas: Especificación de requisitos de software (Casos de uso, especificación funcional,
informe de análisis de riesgo, manuales de sistema, configuración del sistema)
- Lo que el usuario pidio es lo que se esta entregando
- El alcance esta definido en el plan maestro
- La calidad de software es observada desde el punto de vista del usuario
- Requisitos funcionales y no funcionales (ISO 9126)
- Los casos de pruebas pueden ser obtenidos a partir de: Especificaciones funcionales,
casos de uso, procesos de negocio y evaluación de riesgos
- Alcance: Integrado desde el punto de vista del usuario, debe coincidir con el entorno real, NO SE REALIZAN PRUEBAS EN ENTORNO REAL
- Requisitos funcionales: Comprobar que la funcionalidad implementada presenta las caracteristicas requeridas (Adecuación,
Exactitud, Interoperabilidad, Cumplimiento de funcionalidad, seguridad)
- Requisitos funcionales: Pruebas basadas en procesos de negocio, en casos de uso y en requisitos (construcción de bloques)
- Requisitos no funcionales: La conformidad con requisitos no funcionales es dificil de lograr
- Requisitos no funcionales con respecto a usabilidad, eficiencia y portabilidad
- Pruebas de aceptación
- Bases de prueba: Requisitos de usuario, requisitos de sistema, casos de uso, procesos de negocio, análisis de riesgos
- Objetos de pruebas: Procesos de negocio en sistemas completamente integrados,
procesos de operaciones y mantenimiento, formularios y informes
- Aceptación contractual, aceptación de regulación
- Normalmente el cliente selecciona algunos casos de prueba
- Las pruebas se realizan usando el entorno del cliente
- Aceptación operativa: Requiere que el software sea adecuado para su uso en produccion, son realizadas
por el administrador del sistema del cliente, la infraestructura soporta la aplicación que voy a instalar
- Pruebas alpha y beta: es necesaria versión preliminar y estable del software,
pruebas realizadas en productos comerciales, reducen el costo de las pruebas de
aceptación, se utilizan distintos entornos, involucran alto número de usuarios
- alpha: se realizan en las dependencias del desarrollador, beta: dependencias del cliente
- Tipos de pruebas
- Funcionales
- Objetivo: Probar la función, haga lo que tenga que hacer, que los resultados obtenidos sean iguales a los esperados
- Se pueden llevar a cabo en todos los niveles de prueba
- No funcionales
Anmerkungen:
- Fiabilidad
Usabilidad
Eficiencia
Mantenibilidad
Portabilidad
- Objetivo: De que forma se llevan a cabo las funciones del software
- A menudo las caracteristicas no funcionales son vagas, incompletas o inexistentes
- Se pueden llevar a cabo en todos los niveles
- Algunos ejemplos: de carga, rendimiento, estres, volumen,robustez, usabilidad, caracteristicas de seguridad (safety)
- Pruebas de estructura / arquitectura
- Objetivo: Cobertura, análisis de la estructura de un objeto de prueba (enfoque de caja blanca), la finalidad
es medir el grado en el cual la estructura del objeto de prueba ha sido cubierto por los casos de prueba
- Nivel de componente e integración
- Pruebas asociadas al cambio
- Objetivo: Probar el objeto despues de los cambios
- Las pruebas deben ser repetidas (retest), y las pruebas de áreas adyacentes (regresión)
- Pueden ser realizadas en todos los niveles de pruebas
- Un alto grado de modularidad permite unas pruebas de regresión reducidas mas apropiadas
- Selección de casos de prueba de regresión: Casos de prioridad alta, probar la funcionalidad
estandar, saltarse casos y variaciones especiales, probar la configuración utilizada con
mayor frecuencia, probar subsistemas o zonas seleccionadas del objeto de pruebva
- Pruebas de Mantenimiento
- El cliente ha probado el producto y es puesto en producción
- Cualquier nueva versión del producto, cada nueva actualización y cada cambio del software requiere pruebas adicionales
- El mismo software se encuentra al comienzo del ciclo de vida
- Configuración: Nivel de detalle
- Análisis de impacto: Valoración del cambio en las diferentes capas
- Pruebas de los cambios en un sistema en operación, o el impacto de un entorno modificado
- Cubre 2 campos diferenciados: Corrección de errores o implementación de hot-fixes y
Adaptaciones como resultado de una modificación o nuevos requisitos de un cliente
- El alcance de las pruebas dependen del impacto del cambio
- Retirada del software (Pueden incluir pruebas de migración de datos, verificación del
archivo de datos, y pruebas en paralelo sistemas nuevo y anterior)