Desarrollo Guiado Por Pruebas

3,033 views

Published on

Pequeña introducción a Test Driven Development

Published in: Technology, Business
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,033
On SlideShare
0
From Embeds
0
Number of Embeds
30
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Desarrollo Guiado Por Pruebas

  1. 1. Test Driven Development
  2. 2. Metodologías Ágiles <ul><li>En los desarrollos basados en metodologías tradicionales, los cambios en los requisitos se veían como una amenaza, y no como una oportunidad. </li></ul><ul><li>Por el contrario, las metodologías ágiles interpretan esos cambios no sólo como inevitables, sino también necesarios. Su flexibilidad ante el cambio es su mayor baza. </li></ul>
  3. 3. Metodologías Ágiles <ul><li>Los métodos ágiles más conocidos y empleados son: </li></ul><ul><ul><li>Extreme Programming (XP) </li></ul></ul><ul><ul><li>Scrum </li></ul></ul><ul><ul><li>Adaptive Software Development (ASD) </li></ul></ul><ul><ul><li>Crystal Clear y otras metodologías de la familia Crystal </li></ul></ul><ul><ul><li>DSDM </li></ul></ul><ul><ul><li>Feature Driven Development </li></ul></ul><ul><ul><li>Lean software development </li></ul></ul><ul><ul><li>Todos estos métodos han surgido a partir del cumplimiento de los principios del manifiesto ágil. </li></ul></ul>
  4. 4. Manifiesto Ágil <ul><li>Individuos e interacciones por encima de los procesos y herramientas </li></ul><ul><li>Software que funciona por encima de la documentación exhaustiva </li></ul><ul><li>Colaboración con el cliente por encima de la negociación de contratos </li></ul><ul><li>Responder ante el cambio por encima del seguimiento de un plan   </li></ul>
  5. 5. Programación Extrema <ul><li>Es la más popular de las metodologías ágiles. Formulada por Kent Beck, entre sus características se cuentan: </li></ul><ul><ul><li>Desarrollo iterativo e incremental. </li></ul></ul><ul><ul><li>Pruebas unitarias continuas. </li></ul></ul><ul><ul><li>Programación en parejas. </li></ul></ul><ul><ul><li>Integración frecuente del equipo de programación con el cliente. </li></ul></ul><ul><ul><li>Corrección de todos los errores antes de añadir nueva funcionalidad. </li></ul></ul><ul><ul><li>Hacer entregas frecuentes. </li></ul></ul><ul><ul><li>Refactorización del código </li></ul></ul><ul><ul><li>Propiedad del código compartida. </li></ul></ul><ul><ul><li>Código simple. </li></ul></ul>
  6. 6. Test Driven Development <ul><li>Forma parte de la metodología ágil XP. </li></ul><ul><li>Basa el desarrollo en la guía mediante pruebas del código. </li></ul><ul><li>Es, no sólo una forma de desarrollar, sino también de proporcionar la especificación de los requisitos. Por tanto, es un método de diseño. </li></ul>
  7. 7. Test Driven Development
  8. 8. Pruebas unitarias <ul><li>Forman parte del TDD, aunque no significan lo mismo. </li></ul><ul><li>El TDD recomienda: </li></ul><ul><li>1) Desarrollar el código de pruebas </li></ul><ul><ul><li>Al principio “romperá” al ejecutar e incluso tendremos código que no compile. </li></ul></ul><ul><li>2) Desarrollar la funcionalidad que supere las pruebas. </li></ul><ul><ul><li>El código más sencillo posible que supere la prueba. </li></ul></ul>
  9. 9. Casos de prueba <ul><li>Un caso de prueba, o Test Case, determina si el código cumple con los requisitos comprendidos en el mismo. </li></ul><ul><li>Algunas metodologías, como RUP, inciden en incluir dos casos de prueba por requisito: uno que debería hacer la prueba positiva y otro la negativa. </li></ul><ul><li>Los casos de prueba se recogen en una suite de pruebas. </li></ul>
  10. 10. Casos de prueba Test Case Precondiciones Poscondiciones
  11. 11. Software útil <ul><li>Xplanner: Gestión del proyecto. </li></ul><ul><li>Fitnesse: Wiki para definir y gestionar las pruebas de aceptación. </li></ul><ul><li>Cruise Control: Motor de integración continua. </li></ul><ul><li>Redmine: Para seguimiento de los defectos y tareas. </li></ul><ul><li>Nunit / xUnit.Net: Framework para las pruebas unitarias. </li></ul>
  12. 12. Bibliografía <ul><li>Extreme Programming Explained, Kent Beck. </li></ul><ul><li>Test Driven Development: By Example , Kent Beck </li></ul><ul><li>Test Driven Development in Microsoft .NET, James W. Newkirk and Alexei A.Vorontsov. </li></ul><ul><li>Test-Driven Development: A Practical Guide, David Astels. </li></ul>

×