TDD

32
  Test-Driven Development (TDD) Desenvolvimento Guiado por Testes Igo Coelho [email protected] http://www.igocoelho.com.br

description

 

Transcript of TDD

Page 1: TDD

  

Test-Driven Development (TDD)

Desenvolvimento Guiadopor Testes

Igo [email protected]://www.igocoelho.com.br

Page 2: TDD

  

O que é TDD?

Page 3: TDD

  

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

Page 4: TDD

  

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

Page 5: TDD

  

Implementação

Design

Teste

Testes

Page 6: TDD

  

Teste

Design

Implementação

TDD

Page 7: TDD

  

Teste

Design

Implementação

TDD

Teste

Page 8: TDD

  

Teste

Design

Implementação

TDD

Teste

Page 9: TDD

  

Demonstração

Page 10: TDD

  

Page 11: TDD

  

Page 12: TDD

  

Page 13: TDD

  

Page 14: TDD

  

Page 15: TDD

  

Page 16: TDD

  

Page 17: TDD

  

Page 18: TDD

  

Page 19: TDD

  

Consequências

Page 20: TDD

  

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

Page 21: TDD

  

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

Page 22: TDD

  

Conclusões

Page 23: TDD

  

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

Page 24: TDD

  

Conclusões:

Demora mais?

Page 25: TDD

  

Conclusões:

Demora mais? No início é necessário escrever muitos testes

Page 26: TDD

  

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

Page 27: TDD

  

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

Page 28: TDD

  

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

Page 29: TDD

  

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

Page 30: TDD

  

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

Page 31: TDD

  

Perguntas?

Page 32: TDD

  

Obrigado!