5. Contexto
Tipo de aplicaciones
Delivery mechanisms
Sistemas de gestión de información
Sistemas de
monitorización/control/scada
Sistemas de orquestación y configuración
11. Conclusiones
Buena cobertura
Granularidad en caso de error muy buena.
A veces rompen en cascada.
Poco coste mental una vez aprendido el
proceso
Coste alto de mantenimiento / refactor
13. Test unitario con aislamiento por
funcionalidad
Outside In. Comenzando por lógica de
negocio
Negocio puro y duro
14. Conclusiones
Terminologia de negocio
Buena cobertura
Granularidad en caso de error muy buena
Coste bajo de mantenimiento
Se disfruta refactorizando
Menor tendencia a megaconstrucciones
Valor de negocio más rápido
Feedback mucho antes
15. Dificultades
Necesitas arquitectura hexagonal o
similar
Cuesta identificar los puertos
Requiere algo más de poder mental. Se
pueden usar mocks como andamiaje
18. Análisis
Identificar puertos
Dobles para puertos
Adaptadores (Repositorios, Servicios,
SNMP …)
– Tests de contrato
– TDD con dobles para los wrappers de librerías
20. Análisis / ¿Dónde impacta?
“For each desired change, make the change
easy (warning: this may be hard), then make
the easy change” Kent Beck
Dobles como puertos
Adaptadores (Repositorios, Servicios, SNMP …)
– Tests de contrato
– TDD con dobles para los wrappers de librerías
24. 660 test unitarios de clase / 1 segundo
180 test unitarios de funcionalidad / 0.6
segundos
180 tests de integración / 14 segundos
– Unos 50 de contrato