SlideShare una empresa de Scribd logo
1 de 42
Welcome
https://www.linkedin.com/in/alberto-gonzalez-lizan
https://twitter.com/agonzalezlizan
Alberto González Lizán
agonzalez@addentra.net
La tecnología, una de mis pasiones
Formación
Ingeniero informático (2004-2009)
Master en Dirección de Proyectos Informáticos (2018-2019)
CTO de Addentra Internet SL
Welcome
agonzalez@addentra.net
¿Qué es Addentra?
Empresa con más de 10 años de trayectoria dedicada al desarrollo de SW
(Guadalajara / Madrid).
 Producto propio  Hemos desarrollado uno de los SW líder en
el panorama de la gestión de clínicas dentales.
 Actualmente desarrollando un nuevo producto muy potente.
 Construimos SW de calidad.
… Más al final.
Test Driven Development (TDD)
 Charla técnica a la par que entretenida
 Historia del TDD
 Trabajaremos con un ejemplo básico
 Mis errores y experiencias
 Guiños a los gerentes y a detractores
 Integración con SCRUM
 Nuevos desarrolladores en TDD
agonzalez@addentra.net
Y voy a hablar….
¡Para contársela a aquellos gerentes que
todavía no se lo crean!
Desarrollo guiado por pruebas
¿TDD?
agonzalez@addentra.net
agonzalez@addentra.net
¿Quién lo inventó?
Kent Beck
https://twitter.com/KentBeck
https://www.linkedin.com/in/kentbeck/
https://www.kentbeck.com/
Creador de las metodologías de programación
extrema
Uno de los 17 firmantes del manifiesto ágil
Test Driven Development. By Example
agonzalez@addentra.net
TDD ¿para qué?
Más robusto
Más seguro
Más fácil de mantener
Mayor rapidez en el desarrollo
agonzalez@addentra.net
TDD ¿para qué?
Aumentamos la CALIDAD del SW
¿Quién no quiere sentirse productivo?
Más satisfechos con nuestro trabajo
Aumenta nuestra motivación
Aumenta nuestra productividad
agonzalez@addentra.net
TDD, ¿aporta algo más?
Documentación
Clean Code
Escalabilidad de tu equipo
Menor número de bugs
Satisfacción de los clientes
agonzalez@addentra.net
¿Cómo funciona?
Requisito/funcionalidad no implementado/a
agonzalez@addentra.net
Un poco de teoría…
Clase/Componente
SUT
Spec de la
Clase/Componente
Suite de test
(describe)
Suite de test
(describe)
Test (it)
Test (it)
…
Test (it)
Test (it)
…
Sintaxis: FW Jasmine
expect
expect
agonzalez@addentra.net
¿Y las dependencias?
Una de las grandes barreras del TDD
¡Los objetos instanciados en una clase no
son testeables!
“Dobles de test”
agonzalez@addentra.net
Dobles de test
Martin Fowler
“Test doubles is a generic term for any kind of pretend object used in place of a real object
for testing purposes”
Mock Stub Fake
agonzalez@addentra.net
Veamos un ejemplo…
Aplicación web
Angular v8
Jasmine v3.4.0
https://github.com/gonzalezlizan/tddtalk
agonzalez@addentra.net
Veamos un ejemplo…
Componente
interfaz gráfica
Servicio
encargado de los
cálculos
 Recoger los datos de
la interfaz
 Conexión con servicio
y pintar el resultado
 Se encarga de los
cálculos
matemáticos
agonzalez@addentra.net
TDD: Ejemplo
https://github.com/gonzalezlizan/tddtalk
agonzalez@addentra.net
¿Cómo medir los tests?
 Aspecto de referencia para verificar la calidad de nuestros tests
 Cerca del 75%
 ¡Cuidado! El coverage verifica que secciones de código ejecuta el
test, pero eso no quiere decir que sean correctos
Code Coverage
Combinarlo con Pair Programming o Code Reviews
agonzalez@addentra.net
Code Coverage: Ejemplo
agonzalez@addentra.net
Un bug con TDD
¿Quién reparando un bug ha generado otro?
¿Quién ha reparado el mismo bug en varias ocasiones?
Reproducimos el bug en un test
Retocamos el código para que el test sea
satisfactorio
Ejecutar resto de tests y verificamos que no
hemos roto nada
agonzalez@addentra.net
Bug fix: Ejemplo
agonzalez@addentra.net
TDD… ¿es suficiente?
¡NO!
 TDD garantiza que el código va a funcionar en la manera esperada, en los
casos en los que fue pensado
 No va a evitar que me olvide de considerar algún caso o que entienda mal un
requisito
TDD + e2e
agonzalez@addentra.net
e2e: Ejemplo
agonzalez@addentra.net
Developers con TDD
Los inicios no son fáciles
Más significativa a mayor
experiencia en el desarrollo
de SW sin TDD
agonzalez@addentra.net
Developers con TDD
Confianza
 Mayor calidad en el código desarrollado
 Factor de motivación intrínseco
agonzalez@addentra.net
Developers con TDD
Refactorización
“Si algo funciona, no lo toques”
“Si algo se puede mejorar, hazlo”
 Código óptimo, mantenible y claro
 Código reutilizable
 Menos bugs
agonzalez@addentra.net
Developers con TDD
Sin depuración
 No es necesario depurar
 Ahorro de tiempo y aumento de productividad
agonzalez@addentra.net
Managers con TDD
Apoyo de la
dirección
Dudas en el
proceso de
implantación
agonzalez@addentra.net
Managers con TDD
Reduce costes
agonzalez@addentra.net
Managers con TDD
Potencia tu equipo
 Motivación intrínseca
 Facilita integración de Juniors
 Mayor confianza en los resultados
 GTD (Getting Things Done)
agonzalez@addentra.net
Managers con TDD
Satisfacción de
clientes
 Tests están pensados desde el punto
de vista del cliente
 Menos bugs
agonzalez@addentra.net
Reduce el Time To
Market
 Nos permite garantizar que una
versión sea susceptible de entregar al
cliente de una manera mucho más
rápida
Managers con TDD
agonzalez@addentra.net
Integración TDD+SCRUM
Integración directa
 Client/Product Owner comenta necesidad
 Historias de usuario con requisitos de DONE
 For sprint (historias de usuario seleccionadas)
1. For historia de usuario
1. For criterios de aceptación
a. Red Test/s
b. Code
c. Green Test/s
d. Refactor
e. All Tests
agonzalez@addentra.net
Errores con TDD
Code before Test
 Común en los inicios con TDD
 Muy peligroso
 Solución  Experiencia
agonzalez@addentra.net
Errores con TDD
Duplicidad de tests
 Mal planteamiento
 Solución  Experiencia
agonzalez@addentra.net
Errores con TDD
Baja cobertura
 No testear por completo el comportamiento
 Solución  Herramienta de coverage (> 75%)
agonzalez@addentra.net
Errores con TDD
Tests innecesarios
 Testing de funciones privadas o
comportamientos innecesarios
 Solución  Experiencia
agonzalez@addentra.net
Errores con TDD
Falsa sensación de seguridad
 Los tests no significa que no haya errores en el
código, sino que puede ser que no haya un test
que cubra el error
 Solución  e2e
agonzalez@addentra.net
Errores con TDD
Menospreciar el rendimiento
 Ejecución de todos los tests muy costosa en tiempo.
 Solución  Optimización de los tests, soluciones de
simulado de navegador para aplicaciones web
agonzalez@addentra.net
¿Y sin TDD?
“Una vez que trabajas con TDD pues ….”
• Construcción de prototipos (proyectos con requisitos cambiantes
diariamente)
• Proyectos con deadline muy fuerte y equipo sin experiencia en
TDD  Efecto rebote
agonzalez@addentra.net
Perfiles que comienzan con TDD
Junior: buena
aceptación (3-6
meses)
Senior que se
adaptan: buena
aceptación (2-4
meses)
Senior que no se
adaptan
agonzalez@addentra.net
Conclusiones
Gerente
Incremento de la productividad del equipo
Ahorro de costes
Desarrollador
Minimización del retrabajo
Motivación intrínseca.
Cliente
Productos con una menor cantidad de errores
Satisfacción mayor
agonzalez@addentra.net
¿Y esto lo hacéis en Addentra?
¡Sí!
TDD
Últimas tecnologías
IA
Agile
Producto propio
¡Jornada continua todo el año!
¿Quieres conocernos?
Bye
https://www.linkedin.com/in/alberto-gonzalez-lizan
https://twitter.com/agonzalezlizan
Alberto González Lizán
agonzalez@addentra.net
¡Gracias!

Más contenido relacionado

La actualidad más candente

Cómo hacer Test Driven Development
Cómo hacer Test Driven DevelopmentCómo hacer Test Driven Development
Cómo hacer Test Driven DevelopmentJavier Novoa Cataño
 
TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por PruebasTDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por PruebasOrlando Bustos Mateluna
 
Apuntes #XPweek
Apuntes #XPweekApuntes #XPweek
Apuntes #XPweekCarlos Ble
 
Td dvs bdd
Td dvs bddTd dvs bdd
Td dvs bddlsajrf
 
Introducción a automatización de pruebas web
Introducción a automatización de pruebas webIntroducción a automatización de pruebas web
Introducción a automatización de pruebas webFrancisco Moreno Sanz
 
Dealing with fear in legacy projects #PHPDS15
Dealing with fear in legacy projects #PHPDS15Dealing with fear in legacy projects #PHPDS15
Dealing with fear in legacy projects #PHPDS15Aitor Suso Gáceta
 
Introducción a TDD
Introducción a TDDIntroducción a TDD
Introducción a TDDFran Grau
 
Introducción a Behaviour Driven Development
Introducción a Behaviour Driven DevelopmentIntroducción a Behaviour Driven Development
Introducción a Behaviour Driven DevelopmentRicardo Markiewicz
 
Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)
Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)
Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)Agustin Ramos
 
BDD - Desarrollo dirigido por comportamiento
BDD - Desarrollo dirigido por comportamientoBDD - Desarrollo dirigido por comportamiento
BDD - Desarrollo dirigido por comportamientoAgustin Ramos
 
[ES] webcat 2014-03 Demystifying Development Techniques
[ES] webcat 2014-03 Demystifying Development Techniques[ES] webcat 2014-03 Demystifying Development Techniques
[ES] webcat 2014-03 Demystifying Development TechniquesEduardo Turiño
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurancewill2294
 
Behavior Driven Development (BDD)
Behavior Driven Development (BDD) Behavior Driven Development (BDD)
Behavior Driven Development (BDD) Scio Consulting
 
Bdd (Behavior Driven Development)
Bdd (Behavior Driven Development)Bdd (Behavior Driven Development)
Bdd (Behavior Driven Development)Helder De Oliveira
 

La actualidad más candente (20)

BDD y tests automatizados
BDD y tests automatizadosBDD y tests automatizados
BDD y tests automatizados
 
Cómo hacer Test Driven Development
Cómo hacer Test Driven DevelopmentCómo hacer Test Driven Development
Cómo hacer Test Driven Development
 
7iSF-4 test driver development
7iSF-4   test driver development7iSF-4   test driver development
7iSF-4 test driver development
 
TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por PruebasTDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
 
TDD
TDDTDD
TDD
 
Apuntes #XPweek
Apuntes #XPweekApuntes #XPweek
Apuntes #XPweek
 
Td dvs bdd
Td dvs bddTd dvs bdd
Td dvs bdd
 
Introducción a automatización de pruebas web
Introducción a automatización de pruebas webIntroducción a automatización de pruebas web
Introducción a automatización de pruebas web
 
Dealing with fear in legacy projects #PHPDS15
Dealing with fear in legacy projects #PHPDS15Dealing with fear in legacy projects #PHPDS15
Dealing with fear in legacy projects #PHPDS15
 
Actividad 07 zsar
Actividad 07 zsarActividad 07 zsar
Actividad 07 zsar
 
Workshop: Testeando nuestra aplicaciones.
Workshop: Testeando nuestra aplicaciones.Workshop: Testeando nuestra aplicaciones.
Workshop: Testeando nuestra aplicaciones.
 
El coste de no usar integración continua
El coste de no usar integración continuaEl coste de no usar integración continua
El coste de no usar integración continua
 
Introducción a TDD
Introducción a TDDIntroducción a TDD
Introducción a TDD
 
Introducción a Behaviour Driven Development
Introducción a Behaviour Driven DevelopmentIntroducción a Behaviour Driven Development
Introducción a Behaviour Driven Development
 
Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)
Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)
Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)
 
BDD - Desarrollo dirigido por comportamiento
BDD - Desarrollo dirigido por comportamientoBDD - Desarrollo dirigido por comportamiento
BDD - Desarrollo dirigido por comportamiento
 
[ES] webcat 2014-03 Demystifying Development Techniques
[ES] webcat 2014-03 Demystifying Development Techniques[ES] webcat 2014-03 Demystifying Development Techniques
[ES] webcat 2014-03 Demystifying Development Techniques
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Behavior Driven Development (BDD)
Behavior Driven Development (BDD) Behavior Driven Development (BDD)
Behavior Driven Development (BDD)
 
Bdd (Behavior Driven Development)
Bdd (Behavior Driven Development)Bdd (Behavior Driven Development)
Bdd (Behavior Driven Development)
 

Similar a TDD talk

15 Upm Solo Pruebas 2009
15 Upm Solo Pruebas 200915 Upm Solo Pruebas 2009
15 Upm Solo Pruebas 2009Pepe
 
Automatización de pruebas con Selenium, Typescript, Protractor & Cucumber
Automatización de pruebas con Selenium, Typescript, Protractor & CucumberAutomatización de pruebas con Selenium, Typescript, Protractor & Cucumber
Automatización de pruebas con Selenium, Typescript, Protractor & CucumberSoftware Guru
 
ALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas PrácticasALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas PrácticasRodrigo Corral
 
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_seleniumTech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_seleniumEduardo Riol
 
Cas2010 behavior-driven-development-aplicado-en-acceptance-test-automation
Cas2010 behavior-driven-development-aplicado-en-acceptance-test-automationCas2010 behavior-driven-development-aplicado-en-acceptance-test-automation
Cas2010 behavior-driven-development-aplicado-en-acceptance-test-automationAgile Spain
 
Transformación Digital en clave Cloud, ALM y DevOps
Transformación Digital en clave Cloud, ALM y DevOpsTransformación Digital en clave Cloud, ALM y DevOps
Transformación Digital en clave Cloud, ALM y DevOpsatSistemas
 
Meetup bdd & tdd: aprovecha_su_poder
Meetup bdd & tdd: aprovecha_su_poderMeetup bdd & tdd: aprovecha_su_poder
Meetup bdd & tdd: aprovecha_su_poderEduardo Riol
 
Autana Framework for Automated Siebel Testing - FASTEST
Autana Framework for Automated Siebel Testing - FASTESTAutana Framework for Automated Siebel Testing - FASTEST
Autana Framework for Automated Siebel Testing - FASTESTJuan Antonio Ruiz Ruiz
 
Caminando hacia la agilidad con Visual Studio 2010
Caminando hacia la agilidad con Visual Studio 2010Caminando hacia la agilidad con Visual Studio 2010
Caminando hacia la agilidad con Visual Studio 2010Rodrigo Corral
 
Cas 2017 bdd-colaborando_de_verdad_con_negocio
Cas 2017 bdd-colaborando_de_verdad_con_negocioCas 2017 bdd-colaborando_de_verdad_con_negocio
Cas 2017 bdd-colaborando_de_verdad_con_negocioEduardo Riol
 
Círculo de Crédito: Del modelo de negocio a la arquitectura, retos y experien...
Círculo de Crédito: Del modelo de negocio a la arquitectura, retos y experien...Círculo de Crédito: Del modelo de negocio a la arquitectura, retos y experien...
Círculo de Crédito: Del modelo de negocio a la arquitectura, retos y experien...Software Guru
 
Desarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agilesDesarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agilesJobsket
 
Cypress en un mundo lleno de Selenium
Cypress en un mundo lleno de SeleniumCypress en un mundo lleno de Selenium
Cypress en un mundo lleno de SeleniumSoftware Guru
 
Guideline técnico para implementar un A/B Test
Guideline técnico para implementar un A/B TestGuideline técnico para implementar un A/B Test
Guideline técnico para implementar un A/B TestFlat 101
 
Una introducción a ontimize
Una introducción a ontimizeUna introducción a ontimize
Una introducción a ontimizeontimize
 
Shift Left: En busca del éxito del software
Shift Left: En busca del éxito del softwareShift Left: En busca del éxito del software
Shift Left: En busca del éxito del softwareMarco Avendaño
 
Importancia del testing en los proyectos
Importancia del testing en los proyectosImportancia del testing en los proyectos
Importancia del testing en los proyectosSoftware Guru
 
Semana xiii.i
 Semana xiii.i Semana xiii.i
Semana xiii.ielssalinas
 
Desarrollo de Software por www.jasoftsolutions.com
Desarrollo de Software por www.jasoftsolutions.comDesarrollo de Software por www.jasoftsolutions.com
Desarrollo de Software por www.jasoftsolutions.comJosé Luis Lee Rázuri
 

Similar a TDD talk (20)

15 Upm Solo Pruebas 2009
15 Upm Solo Pruebas 200915 Upm Solo Pruebas 2009
15 Upm Solo Pruebas 2009
 
Automatización de pruebas con Selenium, Typescript, Protractor & Cucumber
Automatización de pruebas con Selenium, Typescript, Protractor & CucumberAutomatización de pruebas con Selenium, Typescript, Protractor & Cucumber
Automatización de pruebas con Selenium, Typescript, Protractor & Cucumber
 
ALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas PrácticasALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas Prácticas
 
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_seleniumTech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
 
Cas2010 behavior-driven-development-aplicado-en-acceptance-test-automation
Cas2010 behavior-driven-development-aplicado-en-acceptance-test-automationCas2010 behavior-driven-development-aplicado-en-acceptance-test-automation
Cas2010 behavior-driven-development-aplicado-en-acceptance-test-automation
 
Transformación Digital en clave Cloud, ALM y DevOps
Transformación Digital en clave Cloud, ALM y DevOpsTransformación Digital en clave Cloud, ALM y DevOps
Transformación Digital en clave Cloud, ALM y DevOps
 
Meetup bdd & tdd: aprovecha_su_poder
Meetup bdd & tdd: aprovecha_su_poderMeetup bdd & tdd: aprovecha_su_poder
Meetup bdd & tdd: aprovecha_su_poder
 
Autana Framework for Automated Siebel Testing - FASTEST
Autana Framework for Automated Siebel Testing - FASTESTAutana Framework for Automated Siebel Testing - FASTEST
Autana Framework for Automated Siebel Testing - FASTEST
 
Introducción a tdd
Introducción a tddIntroducción a tdd
Introducción a tdd
 
Caminando hacia la agilidad con Visual Studio 2010
Caminando hacia la agilidad con Visual Studio 2010Caminando hacia la agilidad con Visual Studio 2010
Caminando hacia la agilidad con Visual Studio 2010
 
Cas 2017 bdd-colaborando_de_verdad_con_negocio
Cas 2017 bdd-colaborando_de_verdad_con_negocioCas 2017 bdd-colaborando_de_verdad_con_negocio
Cas 2017 bdd-colaborando_de_verdad_con_negocio
 
Círculo de Crédito: Del modelo de negocio a la arquitectura, retos y experien...
Círculo de Crédito: Del modelo de negocio a la arquitectura, retos y experien...Círculo de Crédito: Del modelo de negocio a la arquitectura, retos y experien...
Círculo de Crédito: Del modelo de negocio a la arquitectura, retos y experien...
 
Desarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agilesDesarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agiles
 
Cypress en un mundo lleno de Selenium
Cypress en un mundo lleno de SeleniumCypress en un mundo lleno de Selenium
Cypress en un mundo lleno de Selenium
 
Guideline técnico para implementar un A/B Test
Guideline técnico para implementar un A/B TestGuideline técnico para implementar un A/B Test
Guideline técnico para implementar un A/B Test
 
Una introducción a ontimize
Una introducción a ontimizeUna introducción a ontimize
Una introducción a ontimize
 
Shift Left: En busca del éxito del software
Shift Left: En busca del éxito del softwareShift Left: En busca del éxito del software
Shift Left: En busca del éxito del software
 
Importancia del testing en los proyectos
Importancia del testing en los proyectosImportancia del testing en los proyectos
Importancia del testing en los proyectos
 
Semana xiii.i
 Semana xiii.i Semana xiii.i
Semana xiii.i
 
Desarrollo de Software por www.jasoftsolutions.com
Desarrollo de Software por www.jasoftsolutions.comDesarrollo de Software por www.jasoftsolutions.com
Desarrollo de Software por www.jasoftsolutions.com
 

Último

Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEANDECE
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaSHERELYNSAMANTHAPALO1
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.pptVitobailon
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IILauraFernandaValdovi
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamientoRobertoAlejandroCast6
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestajeffsalazarpuente
 
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfCENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfpaola110264
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdfFernandaGarca788912
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptEduardoCorado
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023ANDECE
 
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.ariannytrading
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfMikkaelNicolae
 

Último (20)

Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSE
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresa
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.ppt
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo II
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuesta
 
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfCENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdf
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.ppt
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
 
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
 

TDD talk

Notas del editor

  1. Construimos SW de calidad por la experiencia de muchos años de desarrollo
  2. Clean code por la refactorización
  3. SUT = Sujeto bajo test
  4. Doble de test: Verificamos que los parámetros con los que se invoca o que la asignación se realiza con el valor/es correcto/s
  5. Fowler: también es firmante del manifiesto ágil de 2001 Mock: Suplanta al objeto real del cual depende Valida comportamiento Guardan las acciones que se hacen sobre ellos Necesario configurar qué comportamiento esperas cuando alguien llame a alguno de sus métodos Stub: Objeto en el que configuras que cuando llames a un método devuelva un valor determinado. Ej: Objeto que para un método de suma independientemente de los valores que le pases devuelva 5 Fake Es un objeto que implementado completamente y que funciona, como un objeto normal sin ser simulado, pero se diferencia en que está falseando algo para hacer alguna cosa más fácil de probar. Base de datos en memorio, en lugar de acceder a una de producción
  6. Exponer estructura. Explicar inyección en AppComponent del servicio (revisar mock). Explicar testing y code en AppComponent Explicar testing y code en el servicio. // Bad practise. I don't recommend use class code on tests (+) Revisar integración de la funcionalidad de PI
  7. En muchas ofertas se usa como referencia para reflejar la “calidad” de los tests unitarios
  8. En el develop/servicio CON FIT
  9. Con los test e2e logramos testear el flujo entero. Cuando se realizan pruebas unitarias, los componentes de una aplicación se prueban de manera aislada, sin embargo, esto tiene la desventaja de no ser capaz de verificar la integridad de la información mientras es pasada de un componente de la aplicación a otro. Usando pruebas E2E resolvemos este problema interactuando con la aplicación como un usuario regular lo haría, y, por lo tanto, utilizando cada parte de la aplicación y evaluando las respuestas para el comportamiento esperado. El FW empleado es protractor.
  10. Develop: npm run e2e
  11. Principio es bastante frustrante pues parece que los tiempos se extienden en exceso y es complejo adaptarse Como anécdota curiosa hace unos meses un junior de nuestra empresa se disponía a realizar unos cambios en una plataforma que no está desarrollada con TDD, y su pregunta era ¿Cómo se hace sin TDD? No pude evitar sentir que estábamos haciendo un excelente trabajo con nuestra cantera.
  12. Confianza. Mayor calidad en el código desarrollado Motivación intrínseca!
  13. Apoyo de la dirección. CLAVE Dudas. Los tiempos se dilatan. Se tiende a evaluar TDD en gente que no tiene experiencia con la metodología y por lo tanto los tiempos se dilantan, pero no por TDD sino por el proceso de aprendizaje del desarrollador
  14. Siempre que he podido hablar sobre desarrollo con algunos gerentes parece que TDD sea un “enemigo”, pues parece que existirá un sobrecoste en la desarrollo. Sin embargo, lo cierto es que el coste finalmente es mucho mayor pues se invierte en los infinitos mantenimientos y en las costosas puestas en producción. A partir de la experiencia que hemos tenido con dos de nuestros productos en nuestra compañía se pueden extraer los siguientes datos. Y ojo, siendo pesimista partiendo de la base de que con TDD se tardará algo más en el desarrollo, cosa que sinceramente no termino de tener claro.10 En esta tabla podemos ver que una vez está desarrollado, los tiempos empiezan a dispararse, pues encima los bugs en producción pueden generar un sobrecoste exponencial, a parte de el impacto negativo en nuestros clientes.
  15. Motivación intrínseca al tratarse de resultados de calidad Integración de juniors al poder confiar en ellos por no haber daños colaterales GTD se centran en hacer una cosa a la vez para mejorar la productividad. Getting Things Done es un método de productividad desarrollado por David Allen que ha sido aceptado mundialmente como una de las metodologías más eficientes de organización personal. Como se puede leer en la Wikipedia, GTD se basa en el principio de que una persona necesita liberar su mente de las tareas pendientes guardándolas en un lugar específico, de forma que no sea necesario recordar lo que hay que hacer y se puede concentrar en realizar las tareas. Esta es una de las bases de TDD, primero específicas todas las pruebas y posteriormente vas implementando cada funcionalidad una a una.
  16. Muchas veces tendemos a engañarnos pensando en que vamos a pensar como hacerlo tirando código, y finalmente terminamos tirando todo el código y dejando los tests para el final. Esto a parte de ser menos productivo es muy peligroso pues puede resultar que los tests no testean de forma correcta el funcionamiento deseado.
  17. Una vez que trabajas con TDD pues …. CASO DE PEPE. Tenía miedo e inseguridad al programar sin TDD. Al final no usarlo se salva de igual manera con esfuerzo humano ¡¡¡¡¡PEPE EN RADIOFÍSICA!!!!!! OJO! Donde no aplicarlo es por dar ejemplos, que yo lo usaría de igual manera. Interfaz y BDD Proyectos con deadline….. Se puede producir el efecto rebote y que la gente odie el TDD
  18. Por nuestra experiencia en la integración de perfiles a TDD….