La entrega de valor al cliente y la retroalimentación temprana y frecuente están en el corazón del agilismo. Durante el desarrollo de software, prácticas como la integración y la entrega continua son claves para lograr estos objetivos. El concepto de entrega continua puede entenderse como un conjunto prácticas y principios que buscan que el software esté siempre listo para ir a producción durante todo el proceso de desarrollo, minimizando los riesgos de implantación y garantizando la calidad en cada despliegue. Para entregar software de manera continua los equipos de desarrollo deben ser capaces, entre otras cosas, de automatizar la ejecución de distintos conjuntos de prueba que verifican la colaboración entre varios servicios. En esta charla hablaremos de los patrones que existen para probar la interacción entre servicios y cómo habilitar la automatización y repetibilidad de las pruebas de integración en distintos ambientes cuando nuestra aplicación depende de servicios desarrollados y gestionados por equipos externos. Con esto, podremos estar un paso más cerca de la entrega continua
5. www.sgcampus.com.mx @sgcampus
Nuestra Agenda
Algunos conceptos…
★ ¿Por qué probamos la integración entre
servicios?
★ Integración continua y Entrega continua
Érase una vez…
★ Una historia sobre un pipeline en rojo
y un despliegue bloqueado
6. www.sgcampus.com.mx @sgcampus
Nuestra Agenda
Algunos conceptos…
★ ¿Por qué probamos la integración entre
servicios?
★ Integración continua y Entrega continua
Érase una vez…
★ Una historia sobre un pipeline en rojo
y un despliegue bloqueado
…luego, patrones…
★ Para probar la colaboración
entre servicios
7. www.sgcampus.com.mx @sgcampus
Nuestra Agenda
Algunos conceptos…
★ ¿Por qué probamos la integración entre
servicios?
★ Integración continua y Entrega continua
Érase una vez…
★ Una historia sobre un pipeline en rojo
y un despliegue bloqueado
…luego, patrones…
★ Para probar la colaboración
entre servicios
…y vivieron felices por siempre…
★ Imitadores guiados por el consumidor
★ Pruebas de contrato automatizadas
8. www.sgcampus.com.mx @sgcampus
Nuestra Agenda
Algunos conceptos…
★ ¿Por qué probamos la integración entre
servicios?
★ Integración continua y Entrega continua
Érase una vez…
★ Una historia sobre un pipeline en rojo
y un despliegue bloqueado
…luego, patrones…
★ Para probar la colaboración
entre servicios
…y vivieron felices por siempre…
★ Imitadores guiados por el consumidor
★ Pruebas de contrato automatizadas
…y para cerrar, algunas herramientas…
★ Para simular servicios web
11. www.sgcampus.com.mx @sgcampus
¿Por qué
probamos la
integración
entre servicios?
Pruebas de
integración
Recursos
Dominio
ClientesHTTP
Servicio
Web
Servicio
Web
Mapeadores de datos (ORM)
Base de
datos
12. www.sgcampus.com.mx @sgcampus
¿Por qué
probamos la
integración
entre servicios?
Pruebas de
integración
Pruebas de
integración a
nivel de
componentes
Recursos
Dominio
ClientesHTTP
Servicio
Web
Servicio
Web
ServiciosSimulados
Mapeadores de datos (ORM)
Base de
datos
18. www.sgcampus.com.mx @sgcampus
Integración continua
Registran el
código
Construye código.
Ejecuta pruebas
Detecta cambios
en el código
Desarrollan el
código
Las pruebas pasan.
Despliegue a UAT.
Las pruebas
fallan
SCV
SERVIDOR
DE CI
PRUEBAS
DE
ACEPTACIÓN
19. www.sgcampus.com.mx @sgcampus
Integración continua
Registran el
código
Construye código.
Ejecuta pruebas
Detecta cambios
en el código
Desarrollan el
código
Las pruebas pasan.
Despliegue a UAT.
Las pruebas
fallan
SCV
SERVIDOR
DE CI
PRUEBAS
DE
ACEPTACIÓN
Cliente puede ver
cambios en tiempo real
38. www.sgcampus.com.mx @sgcampus
Érase una vez…
Pipeline
Pruebas
unitarias
Pruebas de
integración
Despliegue
a QA
Pruebas
funcionales
en QA
Qa Pre-producción Producción
39. www.sgcampus.com.mx @sgcampus
Érase una vez…
ProducciónQa
Pipeline
Pruebas
unitarias
Pruebas de
integración
Despliegue
a QA
Pruebas
funcionales
en QA
Pre-producción
40. www.sgcampus.com.mx @sgcampus
Érase una vez…
ProducciónQa
Pipeline
Pruebas
unitarias
Pruebas de
integración
Despliegue
a QA
Pruebas
funcionales
en QA
Despliegue
a pre-
producción
Pre-producción
41. www.sgcampus.com.mx @sgcampus
Érase una vez…
ProducciónQa
Pipeline
Pruebas
unitarias
Pruebas de
integración
Despliegue
a QA
Pruebas
funcionales
en QA
Pre-producción
Despliegue
a pre-
producción
42. www.sgcampus.com.mx @sgcampus
Érase una vez…
ProducciónQa
Pipeline
Pruebas
unitarias
Pruebas de
integración
Despliegue
a QA
Pruebas
funcionales
en QA
Pre-producción
Despliegue
a pre-
producción
Pruebas
funcionales en
pre-producción
51. www.sgcampus.com.mx @sgcampus
Érase una vez…
Recursos
Dominio
Mapeadores de datos (ORM)
Base de
datos ClientesHTTP
Servicio
Web
SOAP
Servicio
Web
SOAP
Servicio
Web
REST
Servicio
Web
REST
63. www.sgcampus.com.mx @sgcampus
Érase una vez…
Recursos
Dominio
Mapeadores de datos
Base de
datos
ClientesHTTP
Servicio
Web
SOAP
Servicio
Web
SOAP
Servicio
Web
REST
Servicio
Web
REST
64. www.sgcampus.com.mx @sgcampus
Érase una vez…
Pipeline
Pruebas
unitarias
Recursos
Dominio
Mapeadores de datos
Base de
datos
ClientesHTTP
Servicio
Web
SOAP
Servicio
Web
SOAP
Servicio
Web
REST
Servicio
Web
REST
84. www.sgcampus.com.mx @sgcampus
Pruebas de contrato guiadas
por el consumidor
Establecer un contrato entre el productor y el consumidor.
Hacer cumplir estos contratos con pruebas automatizadas.
85. www.sgcampus.com.mx @sgcampus
Establecer un contrato entre el productor y el consumidor.
Hacer cumplir estos contratos con pruebas automatizadas.
Pruebas de contrato guiadas
por el consumidor
86. www.sgcampus.com.mx @sgcampus
Establecer un contrato entre el productor y el consumidor.
Hacer cumplir estos contratos con pruebas automatizadas.
Pruebas de contrato guiadas
por el consumidor
89. www.sgcampus.com.mx @sgcampus
Crea imitadores de tus servicios externos. Si quieres mayor
seguridad, agrega pruebas de contrato.
Imitadores guiados por el
consumidor
Localhost
Imitador
Imitador
91. www.sgcampus.com.mx @sgcampus
Y vivieron felices por siempre…
Recursos
Dominio
Mapeadores de datos (ORM)
Base de
datos ClientesHTTP
Servicio
Web
SOAP
Servicio
Web
SOAP
Servicio
Web
REST
Servicio
Web
REST
98. www.sgcampus.com.mx @sgcampus
Y vivieron felices por siempre…
ProducciónQa Pre-producción
Pipeline
Pruebas
unitarias
Pruebas de
integración
Despliegue
a QA
Pruebas
funcionales
en QA
99. www.sgcampus.com.mx @sgcampus
Y vivieron felices por siempre…
ProducciónQa Pre-producción
Pipeline
Pruebas
unitarias
Pruebas de
integración
Despliegue
a QA
Pruebas
funcionales
en QA
100. www.sgcampus.com.mx @sgcampus
Y vivieron felices por siempre…
ProducciónQa Pre-producción
Pipeline
Pruebas
unitarias
Pruebas de
integración
Despliegue
a QA
Pruebas
funcionales
en QA
Despliegue
a pre-
producción
101. www.sgcampus.com.mx @sgcampus
Y vivieron felices por siempre…
ProducciónQa Pre-producción
Pipeline
Pruebas
unitarias
Pruebas de
integración
Despliegue
a QA
Pruebas
funcionales
en QA
Despliegue
a pre-
producción
102. www.sgcampus.com.mx @sgcampus
Y vivieron felices por siempre…
ProducciónQa Pre-producción
Pipeline
Pruebas
unitarias
Pruebas de
integración
Despliegue
a QA
Pruebas
funcionales
en QA
Despliegue
a pre-
producción
Pruebas
funcionales
en pre-prod
103. www.sgcampus.com.mx @sgcampus
Y vivieron felices por siempre…
ProducciónQa Pre-producción
Pipeline
Pruebas
unitarias
Pruebas de
integración
Despliegue
a QA
Pruebas
funcionales
en QA
Despliegue
a pre-
producción
Pruebas
funcionales
en pre-prod
104. www.sgcampus.com.mx @sgcampus
Y vivieron felices por siempre…
ProducciónQa Pre-producción
Pipeline
Pruebas
unitarias
Pruebas de
integración
Despliegue
a QA
Pruebas
funcionales
en QA
Despliegue
a pre-
producción
Pruebas
funcionales
en pre-prod
Despliegue
a
producción
105. www.sgcampus.com.mx @sgcampus
Y vivieron felices por siempre…
ProducciónQa Pre-producción
Pipeline
Pruebas
unitarias
Pruebas de
integración
Despliegue
a QA
Pruebas
funcionales
en QA
Despliegue
a pre-
producción
Pruebas
funcionales
en pre-prod
Despliegue
a
producción
106. www.sgcampus.com.mx @sgcampus
Y vivieron felices por siempre…
ProducciónQa Pre-producción
Pipeline
Pruebas
unitarias
Pruebas de
integración
Despliegue
a QA
Pruebas
funcionales
en QA
Despliegue
a pre-
producción
Pruebas
funcionales
en pre-prod
Despliegue
a
producción
Pruebas de
humo
107. www.sgcampus.com.mx @sgcampus
Y vivieron felices por siempre…
ProducciónQa Pre-producción
Pipeline
Pruebas
unitarias
Pruebas de
integración
Despliegue
a QA
Pruebas
funcionales
en QA
Despliegue
a pre-
producción
Pruebas
funcionales
en pre-prod
Despliegue
a
producción
Pruebas de
humo
108. www.sgcampus.com.mx @sgcampus
Y vivieron felices por siempre…
Pipeline
Pruebas
unitarias
Pruebas de
integración
Despliegue
a QA
Pruebas
funcionales
en QA
Despliegue
a pre-
producción
Pruebas
funcionales
en pre-prod
Despliegue
a
producción
Pruebas de
humo
Pruebas de
contrato
109. www.sgcampus.com.mx @sgcampus
Y vivieron felices por siempre…
Pipeline
Pruebas
unitarias
Pruebas de
integración
Despliegue
a QA
Pruebas
funcionales
en QA
Despliegue
a pre-
producción
Pruebas
funcionales
en pre-prod
Despliegue
a
producción
Pruebas de
humo
Pruebas de
contrato
110. www.sgcampus.com.mx @sgcampus
Y vivieron felices por siempre…
Pipeline
Pruebas
unitarias
Pruebas de
integración
Despliegue
a QA
Pruebas
funcionales
en QA
Despliegue
a pre-
producción
Pruebas
funcionales
en pre-prod
Despliegue
a
producción
Pruebas de
humo
Pruebas de
contrato
111. www.sgcampus.com.mx @sgcampus
Y vivieron felices por siempre…
Pipeline
Pruebas
unitarias
Pruebas de
integración
Despliegue
a QA
Pruebas
funcionales
en QA
Despliegue
a pre-
producción
Pruebas
funcionales
en pre-prod
Despliegue
a
producción
Pruebas de
humo
Pruebas de
contrato