e design no mundo real
O que é TDD? 
 Uma prática onde os testes são escritos antes do código 
de produção 
 Escreva primeiro o teste, faça o t...
Design incremental 
 Novas funcionalidades são introduzidas em pequenos 
passos 
 Além dos testes automatizados, o TDD o...
Quais as vantagens? 
Foco na 
funcionalidade 
Aumento da 
cobertura de 
testes 
Testes 
Automatizados 
Código de maior 
qu...
Quais as ferramentas?
Porque refatorar? 
Depois que o teste falha, o objetivo é escrever o código 
mais simples possível para o teste passar. 
U...
Como escrever um teste? 
1. Escreva um caso de teste para determinada 
funcionalidade da classe 
2. O teste não vai compil...
Exemplo - Calculadora 
1. Escrever o teste que ainda não compila 
2. Criar a classe para o teste compilar
Exemplo - Calculadora 
3. Rode o teste e veja-o falhar
Exemplo - Calculadora 
4. Escreva o mínimo para o teste passar 
4. Rode o teste e veja-o passar 
5. Refatore (se necessári...
Devo sempre utilizar TDD? 
 Depende. Utilize quando... 
 A classe lida com funcionalidades complexas 
 A solução do pro...
Devo sempre utilizar TDD? 
 TDD é uma prática que ao mesmo tempo auxilia nos 
testes de unidade de classe 
 E conduz o d...
Exemplo - CalculadoraDeSalario 
Regras de negócio 
 Desenvolvedores: 
 20% de desconto caso o salário seja maior que R$ ...
Exemplo - CalculadoraDeSalario
Exemplo - CalculadoraDeSalario 
 Escrevendo um teste que não compila 
 Escreve o mínimo para o teste falhar
Exemplo - CalculadoraDeSalario 
 Escrevendo o mínimo para o teste passar
Exemplo - CalculadoraDeSalario 
 Refatorando
Conclusão 
TDD não diz respeito somente a testes 
O desenvolvedor que observa o feedback da prática, 
pode aprimorar o des...
Bibliografia
Introdução ao Test Driven Development (TDD)
Próximos SlideShares
Carregando em…5
×

Introdução ao Test Driven Development (TDD)

291 visualizações

Publicada em

Apresentação introdutória sobre a prática do Test Driven Development (TDD), suas vantagens, ferramentas e como deve ser aplicado.

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

  • Seja a primeira pessoa a gostar disto

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

Nenhuma nota no slide

Introdução ao Test Driven Development (TDD)

  1. 1. e design no mundo real
  2. 2. O que é TDD?  Uma prática onde os testes são escritos antes do código de produção  Escreva primeiro o teste, faça o teste falhar, escreva o código para o teste passar…  … e escreva mais um teste, veja ele falhar, faça-o passar… e assim por diante.
  3. 3. Design incremental  Novas funcionalidades são introduzidas em pequenos passos  Além dos testes automatizados, o TDD oferece um feedback rápido sobre as mudanças no código  E também dá dicas sobre pontos de melhoria no design das classes Por isso, TDD é mais sobre design de software do que sobre testes
  4. 4. Quais as vantagens? Foco na funcionalidade Aumento da cobertura de testes Testes Automatizados Código de maior qualidade (refatoração) Melhora o design de classes
  5. 5. Quais as ferramentas?
  6. 6. Porque refatorar? Depois que o teste falha, o objetivo é escrever o código mais simples possível para o teste passar. Uma vez que o teste passou, é necessário refatorar o código, buscando aprimorá-lo e evitando repetição de código. Depois de refatorar, rode o teste novamente
  7. 7. Como escrever um teste? 1. Escreva um caso de teste para determinada funcionalidade da classe 2. O teste não vai compilar, pois sua classe sequer existe! 3. Implemente o suficiente para o teste compilar 4. Rode o teste e veja-o falhar 5. Implemente o código mais simples póssível para o teste passar 6. Rode o teste e veja-o passar 7. Refatore o código em busca de melhorias 8. Rode o teste e o veja-o passar novamente 9. Repita todos os passos
  8. 8. Exemplo - Calculadora 1. Escrever o teste que ainda não compila 2. Criar a classe para o teste compilar
  9. 9. Exemplo - Calculadora 3. Rode o teste e veja-o falhar
  10. 10. Exemplo - Calculadora 4. Escreva o mínimo para o teste passar 4. Rode o teste e veja-o passar 5. Refatore (se necessário) e depois escreve mais casos de testes
  11. 11. Devo sempre utilizar TDD?  Depende. Utilize quando...  A classe lida com funcionalidades complexas  A solução do problema não está tão clara para o desenvolvedor  Dessa forma, o desenvolvedor fica mais focado no problema que sua classe deve resolver e não se perde com caminhos desnecessários  Talvez não seja muito vantajoso se...  A solução para o problema é bastante simples
  12. 12. Devo sempre utilizar TDD?  TDD é uma prática que ao mesmo tempo auxilia nos testes de unidade de classe  E conduz o desenvolvedor a pensar na melhor solução para o seu problema  Resumindo: É importante conhecer TDD e suas vantagens. A experiência deve dizer quando será melhor utilizá-lo ou não
  13. 13. Exemplo - CalculadoraDeSalario Regras de negócio  Desenvolvedores:  20% de desconto caso o salário seja maior que R$ 3000  10% de descontro caso o salário seja menor que R$ 3000  DBAs e Testadores  25% de desconto caso o salário seja maior que R$ 2500  15% de desconto caso o salário seja menor que R$ 2500
  14. 14. Exemplo - CalculadoraDeSalario
  15. 15. Exemplo - CalculadoraDeSalario  Escrevendo um teste que não compila  Escreve o mínimo para o teste falhar
  16. 16. Exemplo - CalculadoraDeSalario  Escrevendo o mínimo para o teste passar
  17. 17. Exemplo - CalculadoraDeSalario  Refatorando
  18. 18. Conclusão TDD não diz respeito somente a testes O desenvolvedor que observa o feedback da prática, pode aprimorar o design das suas classes seguindo os princípios de Orientação a Objetos. O conhecimento e experiência do desenvolvedor são essenciais para isso Para uma melhor leitura dos feedbacks que TDD nos diz e realizar as as mudanças, o desenvolvedor deve conhecer bem sobre design de projetos OO
  19. 19. Bibliografia

×