Como objetivo de esta charla es espero explicar que es TDD, y que ventajas tiene para se empiece a usar de manera mas seria. Esto va a ser más o menos la agenda que tengo, si alguno tiene algún tipo de consejo o ayuda, será bienvenida.
- Global Delivery, Java Developer, the importance of TDD
- Agile Methodologies and TDD. TDD is not just for Agile Methodologies
- TDD Introduction. What is TDD? Buzzword. Hello world example.
- TDD Process. Test First. Automating. Repeat. Flows and Stages
- Using TDD inside a project and others best practices (Measurings, Refactoring, Continuous Integration, etc).
- Dependency Management Techniques. MockObjects.
- TDD as Design. Dependency Injection Patterns. TDD as Specification.
- Tools, Books and Frameworks References
- Two Common Problems Examples. (Web UI TDD and Data Access TDD)
- Why TDD?
3 comentarios:
TDD tiene un impacto significativo sobre las actividades de desarrollo, pero en realidad tiene un impacto tanto o mas fuerte a nivel de management y en la relación con el cliente. Porque en realidad los tests dejan de ser una fase del desarrollo y pasan a ser una herramienta de manejo del proyecto.
Para la charla puede ser bueno mencionar las cosas que se le critican a TDD. Ej: que lleva mucho tiempo/que no se pueden cumplir los plazos de esta manera.
Explicar por que esto no es verdad y los beneficios que trae esta inversión de tiempo.
Parece que va a ser muy interesante la charla.
Es importante dejar en claro la importancia del Testing como una actividad integrada con el proceso de desarrollo e incluso diseño.
Porque el pensar en como testear un modulo al momento de desarrollarlo nos hace toparnos tempranamente con cuestiones importantes que generalmente se dejan de lado por la urgencia de brindar una funcionalidad y que luego se vuelven dificiles de manejar. Como ser la separacion de concerns, el manejo de dependencias, interfaces mal definidas, requerimientos pobremente definidos, etc..
El tener un codigo bien cubierto por testing facilita los cambios, no se tiene tanto "miedo" de cambiar algo si se sabe que se tienen los medios para saber que no se "rompio" nada.
Los test cases son una buena manera de reforzar la definicion de contratos, un test case sirve como ejemplo del uso de un componente lo que ayuda a clarificar su contrato.
Los test cases son un buen complemento a la documentacion y estimulan los cambios y la evolucion controlada del codigo (refactoring).
Suerte con la charla!
Publicar un comentario