CAST (Computer Aided Software Testing) Paola Llerena Valdivia
Introducción
Calidad en Sistemas de Software • Sistema de Software: ¿Calidad? • • Verificación y Validación de Software
Tecnicas de Verificacion de Software • Verificación Dinámica (Pruebas de Software) ▫ Ejecutar y observar el comportamiento del producto.
• • Verificación Estática (Inspección de Software) ▫ Análisis de la representación estática del sistema para encontrar problemas. Verificación de convenciones de codificación Detección de anti-patrones (malas practicas) Verificación Formal
Pruebas de Software
Pruebas de Software • Proceso empírico para evaluar: ▫ Funcionalidad ▫ Correctitud ▫
• A través de ejecución. • • Información sobre la calidad
Sistema Bajo Pruebas
Estado del Programa, incluyendo salidas ine
Estado del Programa
Estado del Sistema
Estado del Sistema
Salidas Monitoreadas
Sistema bajo pruebas
onfiguración y recursos del sistema
Datos de otros procesos.
Impacto en dispositivos y recursos del s
Datos a otros procesos.
Técnicas de Pruebas de Software
Técnicas de Pruebas de Software
Automated Testing
CAST (Computer Aided Software Testing) • • Proceso de automatizar los procesos actuales de pruebas manuales, mediante el uso de software: • ▫ Controlar la ejecución de las pruebas. ▫ Comparar salidas obtenidas vs salidas esperadas ▫ Establecer precondiciones ▫ Generar reportes
¿Por qué pruebas automatizadas? Calidad. • Pruebas Manuales vs. Pruebas automatizadas • TIEMPO
Manual Testing
• Ejecutar (y reejecutar) pruebas puede consumir mucho tiempo.
• Costo-efectivo si hay que repetir las pruebas muchas veces.
•
•
•
• •
• Muchas pruebas necesitan ser re ejecutadas cada vez que se recompila el sistema. • Se ejecutan secuencialmente.
Automated Testing
• Permite automatización para código que evoluciona constantemente.
• Pueden ejecutarse simultaneamente en muchas maquinas
Manual Testing
• Propenso a errores en matrices de prueba muy grandes.
• • Si el caso de prueba será ejecutado un par de veces, los costos son bajos.
• • Mejor opción para pruebas de usabilidad.
Automated Testing
• Ayuda en matrices de prueba grandes. • • • Mayor costo en configurar y ejecutar casos de prueba. • • Impráctico en pruebas de usabilidad.
Manual Testing
• Permite realizar mejores pruebas a medida, que incrementa la posibilidad de encontrar errores de usuario reales. • • Se pueden realizar todo tipo de pruebas.
Automated Testing
• Para realizarlos hay que usar software, que no son perfectos y pueden contener errores. • •
• • Útil para algunas artes del proceso de pruebas. •
Candidatos para la automatizacion • Pruebas Regresivas. • Pruebas orientadas a los datos (mismo caso de prueba con los mismos pasos, pero con diferentes valores) • Pruebas de Portabilidad (mismo test en diferentes SO o diferentes navegadores) • Partes de la aplicación que no cambiaran pronto.
No son Candidatos para la automatizacion • • Aéreas de la aplicación que cambian frecuentemente (los scripts quedaran obsoletos) • Test de usabilidad. • Test de exploración.
Costos • Personas hora para realizar las pruebas: ▫ Configurar ▫ Ejecutar las pruebas automatizadas.
• Ambiente de Prueba ▫ Infraestructura
• Software de Pruebas: ▫ Tecnologías ▫ Herramientas