Este documento presenta una introducción al desarrollo guiado por pruebas (TDD), describiendo sus conceptos básicos, propósitos, proceso de aplicación a través de ejemplos, beneficios y limitaciones. También discute temas como pruebas unitarias, refactorización, áreas de aplicación como back-end, front-end y bases de datos, y recomendaciones para la implementación exitosa de TDD.
Hacer un sistema, sin probar, es lanzarlo al precipicio.
Las pruebas son fundamentales, pero claro, probar sin un método es lo mismo que no probar, es probar sólo una parte del sistema y dejar lo demás al azar.
TDD es una técnica de eXtreme Programming con la que las pruebas y el código se escriben a la vez. No antes cuando el sistema sólo es una abstracción. No después cuando en realidad ya da flojera escribirlas. A la vez que se escribe el código, van las pruebas.
TDD es un método ágil y eficaz de lograr un sistema Probado, y Funcional.
Slides utilizados durante la charla
"TDD desde las trincheras: teoría y lecciones aprendidas"
https://www.meetup.com/es-ES/Madrid-Scrum-User-Group/events/258185830/
Grabación de la charla: https://youtu.be/_oX7vvSQxI8
Hacer un sistema, sin probar, es lanzarlo al precipicio.
Las pruebas son fundamentales, pero claro, probar sin un método es lo mismo que no probar, es probar sólo una parte del sistema y dejar lo demás al azar.
TDD es una técnica de eXtreme Programming con la que las pruebas y el código se escriben a la vez. No antes cuando el sistema sólo es una abstracción. No después cuando en realidad ya da flojera escribirlas. A la vez que se escribe el código, van las pruebas.
TDD es un método ágil y eficaz de lograr un sistema Probado, y Funcional.
Slides utilizados durante la charla
"TDD desde las trincheras: teoría y lecciones aprendidas"
https://www.meetup.com/es-ES/Madrid-Scrum-User-Group/events/258185830/
Grabación de la charla: https://youtu.be/_oX7vvSQxI8
Test driven development: advantages and common errors.
Why is important to use TDD?
What kind of things TDD give us?
Which are common errors using TDD?
With or without TDD?
SEMINARIO WEB EN VIVO: INTRODUCCIÓN AL AGILE TESTINGtbaires
En la actualidad, el concepto de Agilidad sigue evolucionando y con él las prácticas de desarrollo de software que adoptan como base un marco de trabajo ágil.
Durante el seminario se tratarán algunos conceptos básicos:
· ¿Por qué Testing Ágil?
· Los Principios Ágiles
· Esquema de Desarrollo Ágil
· Beneficios de las Prácticas Ágiles
· Los Valores del Testing Ágil
· Descripción del curso de Testing Ágil
Duración
1 hora
Fecha
27 de Julio de 2016
Horario
de 19 a 20 hs
Expositora:
Lic Miriam Alsogaray
https://ar.linkedin.com/in/miriam-alsogaray-2851348
Las Claves del Desarrollo Dirigido por Pruebas (o TDD)Javier_J
Repasamos qué es TDD, algunas de las claves más importante para aplicarlo de manera productiva y cómo se aplica TDD en entornos concretos de bases de datos, videojuegos y desarrollo para Android
En esta charla os voy contar los pasos que he dado para poco a poco ir incorporando la práctica de TDD a mi día a día (desde las trincheras). Os contaré las cosas que me han funcionado y las que no. Y también veremos cómo algunas otras prácticas (testing, refactoring y clean code) me han ayudado a entender y poder abrazar de mejor manera el uso de TDD.
Charla del PHP Day Spain, sobre como lidiar con Legacy Code. Se habla de UnitTesting, Refactoring. Ademas de como generar codigo de buena calidad con TDD y Clean Code.
Patrón de diseño de la OOP, fue acuñado por Martin Fowler.
Sigue el principio Hollywood: No nos llames, nosotros te llamaremos. Permite desarrollar código desacoplado.
Test driven development: advantages and common errors.
Why is important to use TDD?
What kind of things TDD give us?
Which are common errors using TDD?
With or without TDD?
SEMINARIO WEB EN VIVO: INTRODUCCIÓN AL AGILE TESTINGtbaires
En la actualidad, el concepto de Agilidad sigue evolucionando y con él las prácticas de desarrollo de software que adoptan como base un marco de trabajo ágil.
Durante el seminario se tratarán algunos conceptos básicos:
· ¿Por qué Testing Ágil?
· Los Principios Ágiles
· Esquema de Desarrollo Ágil
· Beneficios de las Prácticas Ágiles
· Los Valores del Testing Ágil
· Descripción del curso de Testing Ágil
Duración
1 hora
Fecha
27 de Julio de 2016
Horario
de 19 a 20 hs
Expositora:
Lic Miriam Alsogaray
https://ar.linkedin.com/in/miriam-alsogaray-2851348
Las Claves del Desarrollo Dirigido por Pruebas (o TDD)Javier_J
Repasamos qué es TDD, algunas de las claves más importante para aplicarlo de manera productiva y cómo se aplica TDD en entornos concretos de bases de datos, videojuegos y desarrollo para Android
En esta charla os voy contar los pasos que he dado para poco a poco ir incorporando la práctica de TDD a mi día a día (desde las trincheras). Os contaré las cosas que me han funcionado y las que no. Y también veremos cómo algunas otras prácticas (testing, refactoring y clean code) me han ayudado a entender y poder abrazar de mejor manera el uso de TDD.
Charla del PHP Day Spain, sobre como lidiar con Legacy Code. Se habla de UnitTesting, Refactoring. Ademas de como generar codigo de buena calidad con TDD y Clean Code.
Patrón de diseño de la OOP, fue acuñado por Martin Fowler.
Sigue el principio Hollywood: No nos llames, nosotros te llamaremos. Permite desarrollar código desacoplado.
Introducción al Test-Driven Development (TDD) por Eric MignotPablo Lischinsky
Introducción al Test-Driven Development (TDD) por Eric Mignot
Charla dictada en la Universidad de Los Andes, Mérida-Venezuela, Mayo 2012.
Ciclo en cascada de desarrollo de software. Testing. Valor entregado a los clientes y usuarios.
Agilidad, Scrum.
Colaboración, trabajo en equipo, especificaciones de software, tests, calidad del software.
Ciclo TDD: 1) Test, 2) Code y 3) Refactor.
Práctica, ejemplos.
Explicación corta y concisa sobre TDD y Pair Programming. Utilizada originalmente en una serie de cursos sobre el tema, buscando simplificar al máximo los conceptos, e incentivar el aprendizaje desde la práctica.
Trata sobre el alcance que tienen las Pruebas Unitarias (Unit Testing) en la remodelación de la Ingeniería del Software...
Tanto que se lo toma en cuenta como sustituto del UML.
Además provee dos pruebas fáciles de realizar (el helloworld de las unit test) en dos lenguajes: el tan usado java y el revolucionario Ruby
Los métodos ágiles enfatizan las comunicaciones cara a cara en vez de la documentación. Los requisitos y soluciones evolucionan mediante la colaboración de grupos auto organizados y multidisciplinarios.
Expositoras
María Fernanda Escudero., PMP
Project Manager
mescudero@thoughtworks.com
María José Ormaza
Business Intelligence
mjormaza@thoughtworks.com
Extreme Programming es una metodología ágil de desarrollo que propone un plan de desarrollo de software de corto plazo permitiendo una mayor interacción con el usuario.
[ES] webcat 2014-03 Demystifying Development TechniquesEduardo Turiño
Charla del webcat del 5 de marzo de 2014.
Recorrido por diferentes técnicas de desarrollo, eliminando dolores en cada paso, hasta llegar a BDD y completar aquello donde BDD nos falla.
Visión utilitaria de técnicas y metodologías.
¡Muerte a los puristas! :)
Dad diciplined agil delivery.(DAD), Metodología ágil para empresas Grandes o...Julissa mateo abad
Esta presentación ilustra varios puntos que Scott Ambler padre de este concepto de DAD o Entrega Ágil Disciplinada nos provee. El constante cambio en los ambiente de desarrollo hace que metodologías existentes vayan evolucionado adaptándose también a aquellas empresas que requieren de documentación y estructura y aun así desean ser ágil, esta metodología ofrece esto sin sacrificar ni tiempo ni entrega.
Integrando Test Driven Development en aplicaciones ReactBelatrix Software
Cuando desarrollamos aplicaciones Web o móviles nos enfocamos en el desarrollo de las funcionalidades y en tener estilos acordes a los mockups que cumplan con los requerimientos del cliente, dejando el Unit Testing como un requerimiento adicional y no principal dentro de una metodología de desarrollo.
En esta presentación exploraremos todas las ventajas que se manejan aplicando la metodología TDD contra la metodología tradicional de testing, mediante una aplicación Web real con React-Redux. Asimismo, aprenderemos a configurar correctamente un ambiente de unit testing para aplicaciones React-Redux y cómo medir la cobertura de pruebas de la aplicación.
Pruebas Exploratorias en Entornos ÁgilesatSistemas
¿Quién Quiere Ser un Tester Ranger?
“¿Tienes un software para probar, no lo conoces, no tienes tiempo, o quieres asegurarte de que está correcto aunque hayas hecho otras pruebas?, si la respuesta es sí, tendrás que adentrarte en la aventura del testing exploratorio. Acompáñanos en este webinar donde veremos cómo se hace con un enfoque ágil.
Escaneo y eliminación de malware en el equiponicromante2000
El malware tiene muchas caras, y es que los programas maliciosos se reproducen en los ordenadores de diferentes formas. Ya se trate de virus, de programas espía o de troyanos, la presencia de software malicioso en los sistemas informáticos siempre debería evitarse. Aquí te muestro como trabaja un anti malware a la hora de analizar tu equipo
Si bien los hospitales conjuntan a profesionales de salud que atienden a la población, existe un equipo de organización, coordinación y administración que permite que los cuidados clínicos se otorguen de manera constante y sin obstáculos.
Mario García Baltazar, director del área de Tecnología (TI) del Hospital Victoria La Salle, relató la manera en la que el departamento que él lidera, apoyado en Cirrus y Estela, brinda servicio a los clientes internos de la institución e impulsa una experiencia positiva en el paciente.
Conoce el Hospital Victoria La Salle
Ubicado en Ciudad Victoria, Tamaulipas, México
Inició operaciones en el 2016
Forma parte del Consorcio Mexicanos de Hospitales
Hospital de segundo nivel
21 habitaciones para estancia
31 camas censables
13 camillas
2 quirófanos
+174 integrantes en su plantilla
+120 equipos médicos de alta tecnología
+900 pacientes atendidos
Servicios de +20 especialidades
Módulos utilizados de Cirrus
HIS
EHR
ERP
Estela - Business Intelligence
2. • Conceptos Iniciales
• Mitos entorno a TDD
• Qué es TDD y de donde viene
• TDD: Por qué y cual es su propósito
• Entender el MANTRA de Test-Driven Development
• Cómo se aplica, ejemplo práctico
• Una herramienta más en el ciclo de desarrollo ágil
• Áreas de aplicación
• Otros aspectos a tener en cuenta
• TDD en el entorno de desarrollo cuotidiano
• Referencias e información adicional
Francisco Grau - 2014 @graux
3. • Pruebas Unitarias (set up, validate, execute, clean up)
• Metodologías Ágiles
• Refáctoring
• Deuda Técnica (technical debt)
• Criterios de calidad de código
• X-Driven Development
Francisco Grau - 2014 @graux
4. • No sirve para GUIs o Front-end
• No sirve para Leguajes de Scripting
• No se puede probar programas multi-hilos
• No se pueden probar bases de datos
• No se debe probar software de terceros **
• No se pueden probar objetos distribuidos
Francisco Grau - 2014 @graux
5. • Proceso de desarrollo: “Clean code that works” (Ron Jeffries)
• Sistemas contabilidad – Smalltalk + alta cobertura de pruebas
• En 2000-2003, Kent Beck como parte de eXtreme Programming
• Evolución junto con las metodologías ágiles
• Requiere disciplina y asimilación por parte del equipo de
desarrollo
• Curva de aprendizaje
• Organización tiene que aceptar la inversión
Francisco Grau - 2014 @graux
6. • Buen código: sin fallos, limpio, simple, organizado, mantenible…
• Huir de ciclos destructivos:
Estrés Pruebas
• Conseguir ciclos virtuosos:
Pruebas Seguridad
• Impacto de cambios en código predictibles
• Seguridad y Confianza
• Menos Bugs ***
• Entregables más continuos y fiables (agilidad)
Francisco Grau - 2014 @graux
7. RED
Compilador / Fallo
GREEN
REFACTOR
Francisco Grau - 2014 @graux
NUEVA PRUEBA
8. Las reglas:
1. Nuevo código sólo se escribe cuando una prueba ha fallado *
2. Eliminar todo tipo de duplicación
3. Escribir las pruebas uno mismo/a
4. Habilidad de introducir pequeños cambios rápidamente
5. Diseño orientado a alta cohesión, componentes no acoplados y que faciliten las pruebas
Recomendaciones:
1. Empezar con Programación en Parejas
2. Poco a poco, paciencia, no abrumarse los resultados iniciales y sin saltarse pasos (al principio)
3. Actitud positiva y no sobre-complicar las pruebas
4. Cierta experiencia con Patrones de Diseño
* Excepciones: refactoring, código de pruebas, etc.
Francisco Grau - 2014 @graux
9. Herramientas:
• Papel y bolígrafo !!!
• Compilador o validador (Lint)
• Framework de pruebas (xUnit)
Pasos:
1. Listar requisitos
2. Empezar por el más simple, menos dependencias, más rápido para “verde”
3. Crear test que falle
4. Arreglar errores de compilación
5. De rojo a verde è rápido
6. Eliminar Duplicaciones / Refactoring
Francisco Grau - 2014 @graux
10. Técnicas de implementación (conseguir verde):
1. Falsear (Fake it)
2. Implementación obvia
3. Triangulación (eliminación de duplicación entre pruebas y código)
Francisco Grau - 2014 @graux
11. • TDD no soluciona problemas de procesos, pero ayuda
• El contexto lo es todo, TDD no es una religión
• Equipos ágiles acogen los cambios, TDD los asimila
• Antes de {refactorizar, mejorar rendimiento, cambio versiones,
cambio de integración} èTDD
• Bug en lógica de negocio è nuevo test que falle è “verde” è
eliminad duplicidad
• TDD no se debe aplicar a medias o sin disciplina
Francisco Grau - 2014 @graux
12. • Back-end / Front-end?
• APIs?
• Bases de Datos?
• Video-juegos?
• Start-ups / Enterprise?
• Librerías y Frameworks
Francisco Grau - 2014 @graux
13. • Qué probar?
• Qué son buenas pruebas? Que es TDD para cada persona/
equipo?
• TDD en proyectos ya existentes (extensos)
• Más Pruebas: Funcionales, Integración, Compatibilidad y
automatización (TDD no es una técnica de pruebas)
• Refactoring requiere de patrones de diseño (para pruebas y para
lógica de aplicación)
Francisco Grau - 2014 @graux
14. • Fixtures, Fakes y Mocks
• Acelerar las pruebas creando “test suites”.
• Más Velocidad è Más pruebas
• Entorno de pruebas integrado (xUnit+IDE, Codeception)
• Qué ocurre con “si funciona no lo toques”?
• Individualmente: Dejar última prueba fallando
• Equipo: Integración Continua + Todas las pruebas pasan
Francisco Grau - 2014 @graux
15. • Test-Driven Development: By Example – Kent Beck – Addison-Wesley
• TDD Wikipedia: http://en.wikipedia.org/wiki/Test-driven_development
• Introduction to Test Driven Development - http://www.agiledata.org/essays/tdd.html
• Should a startup use TDD: http://www.redhills.ie/blog/should-a-startup-use-tdd/
• Making better games with TDD:
http://gamesfromwithin.com/backwards-is-forward-making-better-games-with-test-driven-development
• Test-Driven Development with JavaScript: http://enterprisewebbook.com/ch7_testdriven_js.html
• Let’s Code: Test-Driven JavaScript: http://www.letscodejavascript.com/
Francisco Grau - 2014 @graux