Please enable JavaScript.
Coggle requires JavaScript to display documents.
Automatización de Pruebas de Software - Coggle Diagram
Automatización de Pruebas de Software
Introducción y motivación
Pruebas manuales
Costosas
Lentas
Repetitivas
Propensas a errores
Automatizadas
Mayor eficiencia, precisión y frecuencia
Reducir tiempos y costes.
Liberar testers
Beneficios de la automatización
Ahorro de tiempo y costes
Mayor cobertura de escenarios
Mayor detección de errores
Reutilización y repetibilidad
Cuándo priorizar la automatización
Funcionalidades críticas
Regresiones
Escenarios tediosos o con muchos datos
Proceso de automatización
Definir alcance
Identificar funciones críticas
Evaluar viabilidad
Definir tipos de prueba y entornos
Planificar y diseñar
Integrar herramientas.
Definir protocolos y preparar datos de prueba
Implementar scripts y planificar ejecución.
Ejecutar pruebas
Lanzar suites y scripts.
Analizar informes
Mantener el sistema de pruebas
Actualizar pruebas según cambios en el código.
Añadir nuevas pruebas según el mantenimiento del software.
The Automated Testing Triangle / Pyramid
Propuesta por Mike Cohn y también mencionada por Robert C. Martin (Uncle Bob).
Sugiere priorizar pruebas de unidad (base), luego integración, aceptación y finalmente interfaz gráfica (UI).
Las pruebas de UI
Son frágiles, lentas y costosas.
Deben usarse como “segunda línea de defensa”.
Complementadas por pruebas exploratorias, que descubren lo desconocido.
Herramientas de automatización: criterios de elección
Conocer bien las herramientas candidatas.
Nivel técnico del equipo.
Coste de aprendizaje, uso y adquisición.
Posibilidades de integración con otros procesos.
Soporte técnico disponible.
Categorías y ejemplos de herramientas
Análisis de código fuente
Estático
Complejidad, estilo, estimación de casos de prueba
Dinámico
Ejecución del software
Cobertura de código
Software profiling
Optimización del rendimiento del programa, mide el coste temporal de las sentencias particulares
Pruebas funcionales vía GUI
Definición de reglas de validación de resultados
Introducción de datos, validación automática.Introducción de datos, validación automática.
Útil para personal no técnico o pruebas ocasionales
Record & Replay
captura interacciones del usuario y genera scripts reproducibles.
Evalúa los resultados sobre los formatos, BBDD…
Se documentan resultados de la validación
Si los elementos cambian de aspecto o posición se rompe la prueba
No requiere conocimiento técnico, recomendable para pruebas pequeñas
Scripting
Suites de pruebas hechas por personal cualificado
Pruebas end to end
Amplia cobertura de código
Pruebas de rendimiento
Módulos
Planificador (número de usuarios, transacciones).
Generador de usuarios virtuales.
Controlador y analizador de resultados.
Evalúan tiempo de respuesta, escalabilidad, cuellos de botella
Generación de datos de prueba
Casos generados automáticamente desde requisitos o por cobertura.
Datos almacenados en texto o bases de datos.
Útil en apps con gran volumen de entradas o bases de datos.
Integración continua
Definición
Proceso de integración frecuente del código por parte del equipo.
Verificado automáticamente con construcción, pruebas y despliegue
Tareas típicas
Compilar y construir.
Ejecutar pruebas.
Analizar código.
Desplegar en entornos de prueba/producción.
Generar documentación e informes.
Beneficios
Detección temprana de errores.
Mayor calidad y estabilidad del sistema.
Incrementos pequeños y seguros.
Mejora la colaboración y la productividad.
Reduce costes a largo plazo.
Despliegue continuo
Permite publicar versiones a ciertos usuarios o regiones.
Facilita activación/desactivación de características.
Reduce el tiempo entre desarrollo y entrega.
Bad Smells en código de prueba
En el código
Literales embebidos.
Código duplicado.
Pruebas con lógica compleja.
Tests excesivamente largos o mal estructurados.
En la ejecución
Pruebas frágiles ante cambios menores.
Dependencias entre pruebas.
Contextos mal definidos.
Pruebas no automatizables.
Manifiesto de automatización de pruebas
Autovalidables y repetibles
Suficientes y necesarias
Claras y específicas:
Independientes entre si
Mantenibles y con trazabilidad hacia requisitos.
Concisión
Coste de automatizar
Automatizar puede requerir entre 2× y 10× el tiempo de una ejecución manual
Pero el coste se amortiza con
Menos errores.
Menor mantenimiento.
Mayor satisfacción del cliente.
Resumen final
Automatizar es clave para garantizar calidad a largo plazo.
Elige herramientas adecuadas, intégralas en el proceso.
Aunque tiene un coste, los beneficios son sostenibles y crecientes.
Automatizar no es opcional si se desea calidad profesional.