sesión 08 agile testing - ua€¦ · 2. adoptar un estilo ágil de testing 3. automatizar los...
Post on 08-Jun-2020
0 Views
Preview:
TRANSCRIPT
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Agile TestingSesión 8
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Unas palabras previas de cautela
• Las pruebas no son una verificación formal de un programa, no pueden garantizar la corrección del software para todos los posibles casos de entrada
• Las pruebas aseguran la corrección del software en los casos particulares escogidos para realizar la prueba
• Por ello, es muy importante definir correctamente los casos de prueba para que tengan la cantidad y calidad necesaria para especificar de una forma suficientemente amplia los posibles escenarios en los que se puede encontrar el software
�2
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Repaso: tipos de tests
• Tests unitarios • Prueban la funcionalidad del código (Junit, Nunit, PhpUnit…)• Partes del código que no interactúan con recursos externos• Se usan stubs y mocks para poder sustituir los recursos
• Tests de integración • Funcionalidad del código que depende de recursos externos (bases de datos,
servicios web, servicios de mail, etc.)• Requieren un setup, inicialización de recursos, ficheros de configuración
• Tests funcionales • Tests simulando usuarios finales
• Pruebas de stress • Prueban el rendimiento del sistema
�3
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Testing en desarrollo tradicional
• Equipo de pruebas totalmente separado del equipo de desarrollo, formando lo que se denomina QA (Quality Assurance)
• Los testers suelen ser personas con menos formación técnica que los desarrolladores, que se dedican a encontrar bugs antes que los usuarios finales
• Todo el proceso de pruebas se hace en la fase final del desarrollo, para asegurarse que el producto final está libre de errores
�4
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
La tradición de los QA
• QA = Quality Assurance• Procedimientos implementados en un sistema de calidad para que se
cumplan correctamente los requisitos y objetivos de un producto, servicio o actividad
• Se consiguen prevenir los errores mediante:• medidas sistemáticas• comparación con un estándar• monitorizado de procesos• bucle de retroalimentación
• Los dos principios fundamentales de QA son: • “Se ajusta al propósito” (Fit for purpose), el producto debe adecuarse al
propósito buscado• “Correcto la primera vez” (Right first time), se deben eliminar los errores
�5
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Testing en equipos ágiles
�6
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Testing en equipos ágiles
�7
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
“The power of three”
�8
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
ATDD: Acceptance TDD• A partir de las historias de usuario se diseñan tests de aceptación• Una COS (condition of satisfaction) is simplemente un test de aceptación de alto
nivel que será cierto cuando la historia de usuario esté completa
�9
Condiciones de satisfacción
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Las COS son el punto de partida del TDD
�10
Mike Cohn - Succeeding with Agile
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Cuadrante de pruebas ágiles
�11Lisa Crispin - Agile Testing
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Q1, Q2: Tests que prueban el desarrollo
• Tests que ayudan al desarrollo• Q1: Nivel de detalle
• TDD, tests de regresión• Tests unitarios• Tests de integración
• Q2: Alto nivel• Ilustrar y probar la conducta del sistema• Mock-ups para validar UX
�12
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Q3, Q4: Tests que prueban el producto• Q3: Tests de usuario
• Emulación de usuarios finales• Pruebas de usabilidad
• Q4: Pruebas técnicas del producto• Rendimiento, carga• Seguridad
�13
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
La pirámide de la automatización
�14
Lisa Crispin - Agile Testing
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Curva de aprendizaje de TDD / aut.
�15
Lisa Crispin - Agile Testing
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
7 Factores clave para el éxito
1. Usar el enfoque Todos-Somos-Equipo (Whole team)2. Adoptar un estilo ágil de testing3. Automatizar los tests de regresión4. Proporcionar y obtener feedback5. Construir un conjunto de prácticas fundamentales (core practices)6. Colaborar con los clientes7. Mirar al cuadro completo (look at the big picture)
�16
Lisa Crispin - Agile Testing
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Conjunto de prácticas fundamentales
• Integración continua• Construir y mantener distintos entornos de prueba, cada vez más fácil
con la virtualización• Gestionar la deuda técnica• Trabajar de forma incremental• Codificar y probar (coding and testing) son parte de un único proceso• Sinergia entre todas las prácticas anteriores
�17
Lisa Crispin - Agile Testing
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Entornos de prueba
• Configuración de software y hardware en el que se realizan builds y pruebas del nuevo código añadido al proyecto• Hosts servidores con el servidor de aplicaciones, build del proyecto,
componentes adicionales requeridos (Maven)• Servidor de base de datos• Hosts clientes (con diferentes configuraciones de browsers)• Las pruebas se realizan tanto en las máquinas servidoras como en las
clientes
�18
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Gestión de distintos entornos
• Local• Integración• Stage• Producción
�19
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Entorno de prueba
�20
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Entorno de stage
�21
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Las herramientas promueven colaboración
�22
Janet Gregory and Lisa Crispin - Debunking Agile Testing Myths
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Herramientas: automatización
• Jenkins: sistema de integración continua, automatizacióncontinua de builds, tests unitarios, tests de integración, …
• SonarQube: inspección de código, cobertura, duplicación, reglas de codificación, complejidad
�23
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Herramientas: sistemas de seguimiento de bugs
• Bug tracking• Algunos de los más usados:
JIRA, Bugzilla• Herramientas que complementan los
tableros Kanban y Scrum:• Captura y almacén de información:
logs, trazas, forma de reproducción, personas asignadas
• Histórico • Comunicación de equipos
distribuidos
�24
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Lecturas
• Lisa Crispin, “Agile Testing”, capítulo 6: The Purpose of Testing
• Mike Cohn, “Succeeding with Agile”, capítulo 16: Quality
�25
top related