6 de noviembre de 2012

Continuos deployment como objetivo de QA

Continuos deployment: Conjunto de técnicas que nos permiten desplegar cambios en producción de forma continuada (frecuencia alta)

“Continuous Deployment is actually deploying every change into production, every day or more frequently.”
  • No es sólo un cambio de herramientas, sino un cambio de cultura.
  • No hay fórmulas mágicas: depende de la organización, hay distintas opciones que funcionan
  • Esfuerzo grande de transformación en el departamento de QA
¿Cómo conseguirlo?
  • Herramientas que automaticen el proceso y la operación
  • Muy buena comunicación entre los equipos involucrados
  • Optimización del tiempo de pruebas

  1. Definir muy bien qué probar dónde
Producto: focus en el componente. Pueden ser pruebas de componente o pruebas de sistema pero enfocadas en una funcionalidad o componente en concreto.
Estabilización: pruebas de sistema. El cambio forma parte junto con otros cambios de la release candidateEsta ventana tiene como objetivo estabilizar la release candidate
Producción: se comprueba que el despliegue sea correcto
2. La automatización juega un papel muy importante, es condición necesaria pero no suficiente:
Producto:
  • Automatizar los casos de test de aceptación
  • Pruebas y análisis "previo" tiene que ser muy fuerte
Estabilización
  • Automatización es clave para la regresión
  • No todos los escenarios o pruebas son automatizables
  • Análisis de riesgos e impactos (no cambios aislados)
Despliegue
  • Automatización de la verificación del despliegue
  • Reducir la incertidumbre: acercar el entorno de pruebas al de producción
3. Es importante ir a buscar los issues
Estabilización:  Buscar problemas derivados del merge del código, impactos con otros cambios.
Staging como parte de la validación

Producción: Buscar problemas derivados de las diferencias entre los entornos de pruebas y producción
Las comprobaciones de producción deben ser mínimas, ya son issues escapados


4. Enfoque 100% en los objetivos de cada fase.
  • Conocer las diferencias de cada entorno de pruebas con el siguiente
  • Contar con conocimiento del resto de equipos (sistemas, devops, desarrollo)
  • Lessons learnt: aprender de las lecciones aprendidas de cada iteración --> resolver los problemas sin excusas
Resúmen:
1. Mantener el foco en el objetivo de cada fase.
2. Invertir en la mejora continua
3. El equipo de release managers deber tener los mismos objetivos --> reducir el esfuerzo de operacion / cambio

No hay comentarios:

Publicar un comentario