Desenvolvimento Guiado
      por Testes
    Test-Driven Development (TDD)


Igo Coelho
igocoelho@gmail.com
http://www.igoc...
O que é TDD?


     
Regras fundamentais do TDD
    Escreva o teste da implementação ANTES de



    escrevê-la
    Escreva somente código suf...
Etapas da programação com TDD

1. Criar um teste
2. Executar todos os testes da aplicação para
  ver o teste falhar
3. Esc...
Testes

Design




         Implementação




                         Teste




            
TDD

Design




             Teste




                     Implementação




          
TDD
Design




         Teste




                 Implementação




                                 Teste

             
TDD

              Design




Teste                   Teste




        Implementação



           
Demonstração


      
     
     
     
     
     
     
     
     
     
Consequências


      
Consequências:
    Suite de regressão



        Testes completos podem ser executados no build:
    


        aplicaçã...
Consequências:
    Código mais testável



        Estimula um design melhor
    



        Força que os designs antigo...
Conclusões


     
Conclusões:
    Colabora para o aumento da qualidade dos



    sistemas
    Desenvolvedores ficam mais corajosos e



 ...
Conclusões:
    Demora mais?





                    
Conclusões:
    Demora mais?




        No início é necessário escrever muitos testes
    




                        
Conclusões:
    Demora mais?




        No início é necessário escrever muitos testes
    



        Depois da inércia...
Conclusões:
    Demora mais?




        No início é necessário escrever muitos testes
    



        Depois da inércia...
Conclusões:
    Demora mais?




        No início é necessário escrever muitos testes
    



        Depois da inércia...
Conclusões:
    Demora mais?




        No início é necessário escrever muitos testes
    



        Depois da inércia...
Conclusões:
    Demora mais?




        No início é necessário escrever muitos testes
    



        Depois da inércia...
Perguntas?


        
Obrigado!


        
Próximos SlideShares
Carregando em…5
×

TDD

1.028 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
5 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.028
No SlideShare
0
A partir de incorporações
0
Número de incorporações
9
Ações
Compartilhamentos
0
Downloads
38
Comentários
0
Gostaram
5
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

TDD

  1. 1. Desenvolvimento Guiado por Testes Test-Driven Development (TDD) Igo Coelho igocoelho@gmail.com http://www.igocoelho.com.br    
  2. 2. O que é TDD?    
  3. 3. Regras fundamentais do TDD Escreva o teste da implementação ANTES de  escrevê-la Escreva somente código suficiente para o  teste passar e nada além disso Escreva testes pequenos: teste a menor  quantidade possível de código de cada vez Escreva testes muito rápidos: não devem  demorar mais do que alguns segundos para serem executados    
  4. 4. Etapas da programação com TDD 1. Criar um teste 2. Executar todos os testes da aplicação para ver o teste falhar 3. Escrever a implementação testada 4. Executar os testes para ver se todos passarão 5. Refactoring 6. Executar os testes novamente para ver se eles continuam passando    
  5. 5. Testes Design Implementação Teste    
  6. 6. TDD Design Teste Implementação    
  7. 7. TDD Design Teste Implementação Teste    
  8. 8. TDD Design Teste Teste Implementação    
  9. 9. Demonstração    
  10. 10.    
  11. 11.    
  12. 12.    
  13. 13.    
  14. 14.    
  15. 15.    
  16. 16.    
  17. 17.    
  18. 18.    
  19. 19. Consequências    
  20. 20. Consequências: Suite de regressão  Testes completos podem ser executados no build:  aplicação não sobe para produção se não passar no teste de regressão Testes também pode ser feitos na IDE  Não há necessidade de executar o build da  aplicação para execução dos testes Bugs são encontrados com maior facilidade e  corrigidos com maior velocidade Bugs comprovados por testes unitários     
  21. 21. Consequências: Código mais testável  Estimula um design melhor  Força que os designs antigos que são pouco  testáveis sejam refatorados Facilita o refactoring  Evita o “overdesign”  Só se escreve código suficiente para o teste passar  Evita que o desenvolvedor tente advinhar o futuo  Colabora com a documentação     
  22. 22. Conclusões    
  23. 23. Conclusões: Colabora para o aumento da qualidade dos  sistemas Desenvolvedores ficam mais corajosos e  confiantes ao programar! Software cresce de forma ordenada e com  qualidade de design Software se adapta com mais facilidade a  mudanças    
  24. 24. Conclusões: Demora mais?     
  25. 25. Conclusões: Demora mais?  No início é necessário escrever muitos testes     
  26. 26. Conclusões: Demora mais?  No início é necessário escrever muitos testes  Depois da inércia a suite de regressão está  pronta e escrevem-se menos testes    
  27. 27. Conclusões: Demora mais?  No início é necessário escrever muitos testes  Depois da inércia a suite de regressão está  pronta e escrevem-se menos testes Certeza de que a implementação está  funcionando    
  28. 28. Conclusões: Demora mais?  No início é necessário escrever muitos testes  Depois da inércia a suite de regressão está  pronta e escrevem-se menos testes Certeza de que a implementação está  funcionando Maioria dos bugs encontrados em tempo de  desenvolvimento    
  29. 29. Conclusões: Demora mais?  No início é necessário escrever muitos testes  Depois da inércia a suite de regressão está  pronta e escrevem-se menos testes Certeza de que a implementação está  funcionando Maioria dos bugs encontrados em tempo de  desenvolvimento Bugs de produção são encontrados e corrigidos  com muito mais velocidade    
  30. 30. Conclusões: Demora mais?  No início é necessário escrever muitos testes  Depois da inércia a suite de regressão está  pronta e escrevem-se menos testes Certeza de que a implementação está  funcionando Maioria dos bugs encontrados em tempo de  desenvolvimento Bugs de produção são encontrados e corrigidos  com muito mais velocidade No final das contas com a pratica demora-se  menos tempo com mais qualidade    
  31. 31. Perguntas?    
  32. 32. Obrigado!    

×