Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Tdd bdd-practico-dominio-rico

561 views

Published on

Resumen del flujo de desarrollo usando TDD que hacemos Alea Soluciones y la evolución que ha tenido el proceso.

Software Craftsmanship Barcelona 2014

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Tdd bdd-practico-dominio-rico

  1. 1. TDD/BDD Práctico para aplicaciones con dominio rico Barcelona Software Crafmanship 2014
  2. 2. @eferro
  3. 3. @nestorsalceda
  4. 4. Alea Soluciones
  5. 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
  6. 6. Para desarrollo Bounded contexts DDD / OOP Sin acoplamiento al framework TDD a cascoporro
  7. 7. Pirámide de testing
  8. 8. TDD Mockist
  9. 9. Entrando por lógica de dominio Test unitarios con aislamiento por clase
  10. 10. 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
  11. 11. TDD por funcionalidad
  12. 12. Test unitario con aislamiento por funcionalidad Outside In. Comenzando por lógica de negocio Negocio puro y duro
  13. 13. 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
  14. 14. Dificultades Necesitas arquitectura hexagonal o similar Cuesta identificar los puertos Requiere algo más de poder mental. Se pueden usar mocks como andamiaje
  15. 15. ¿Cómo lo hacemos actualmente?
  16. 16. Flujo por funcionalidad Green Field
  17. 17. Análisis Identificar puertos Dobles para puertos Adaptadores (Repositorios, Servicios, SNMP …) – Tests de contrato – TDD con dobles para los wrappers de librerías
  18. 18. Flujo por funcionalidad Brown Field
  19. 19. 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
  20. 20. ¡Enséñame los tests!
  21. 21. Números
  22. 22. 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
  23. 23. ¡Gracias!

×