TDD

670 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
670
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • TDD

    1. 1. TDDDesarrollo Dirigido por Pruebas
    2. 2. CicloTest en ROJO
    3. 3. CicloTest en ROJO Test en VERDE
    4. 4. CicloTest en ROJO Test en VERDE Refactor
    5. 5. CicloTest en ROJO Test en VERDE Refactor Baby steps
    6. 6. CicloTest en ROJO Test en VERDE Refactor Baby steps Prohibido pensar
    7. 7. CicloTest en ROJO Test en VERDE Refactor Baby steps Prohibido pensar Transformations
    8. 8. Evolución del código con TDD• Tests progresan desde una definición genérica hacia la más específica• Implementación progresa desde específica hacia genérica
    9. 9. RefactorCode refactoring is "a disciplined way to restructure code",[1] undertakenin order to improve some of the nonfunctional attributes of the software.By continuously improving the design of code, we make it easier and easier to work with. Thisis in sharp contrast to what typically happens: little refactoring and a great deal of attentionpaid to expediently adding new features. If you get into the hygienic habit of refactoringcontinuously, youll find that it is easier to extend and maintain code. —- Joshua Kerievsky, Refactoring to Patterns
    10. 10. Transformation({}–>nil) no code at all->code that employs nil(nil->constant)(constant->constant+) a simple constant to a more complex constant(constant->scalar) replacing a constant with a variable or an argument(statement->statements) adding more unconditional statements.(unconditional->if) splitting the execution path(scalar->array)(array->container)(statement->recursion)(if->while)(expression->function) replacing an expression with a function or algorithm(variable->assignment) replacing the value of a variable. http://cleancoder.posterous.com/the-transformation-priority-premise
    11. 11. Waterfall• Requisitos• Análisis Cada paso• Diseño inyecta feedback• Coding al anterior• Testeo
    12. 12. Lean - BDD - TDD - Test first • Requisitos • Análisis • Diseño • Coding Test first • Testeo
    13. 13. Lean - BDD - TDD - Test first • Requisitos • Análisis • Diseño TDD • Coding Test first • Testeo
    14. 14. Lean - BDD - TDD - Test first • Requisitos • Análisis BDD • Diseño TDD • Coding Test first • Testeo
    15. 15. Lean - BDD - TDD - Test first • Requisitos Lean • Análisis BDD • Diseño TDD • Coding Test first • Testeo
    16. 16. TDD BDDTop-down / Bottom up Estrategias Outside in Arrange Given ... Act Forma de una prueba When ... Assert Then ... Example driven Fuerza motriz Business value driven xUnit Standard -- Frameworks jUnit Concordion, EasyB, JBehave Java
    17. 17. Herramientas KISS,YAGNI, SOLID, DRY Bloc de notas, estrategia de testeo Autotest, TDGotchi, PulsePair programming, ping-pong, peer-review Esto va de hacer software bien hecho
    18. 18. Ejemplo BDD Describir comportamiento Escribir la definición de un paso Ver cómo fallaEscribir lo mínimo para que pase Ver que pasa Iterar hasta que todo esté verde Y, finalmente, repetir todo con nuevos comportamientos hasta que se acabe la pasta/alcance/tiempo
    19. 19. Ejemplo de TDDKata: StringCalculator

    ×