TDD: Técnicas, Benefícios e Limitação
-
Upload
icaro-camelo -
Category
Education
-
view
967 -
download
2
Transcript of TDD: Técnicas, Benefícios e Limitação
![Page 1: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/1.jpg)
Desenvolvimento Orientado a Testes
Benefícios, Técnicas e Limitações
![Page 2: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/2.jpg)
quem sou eu?
Analista de Sistemas
@icarocamelo http://icarocamelo.wordpress.com
![Page 3: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/3.jpg)
roteiro
Por que testar?O que é TDD?TécnicasRefactoringHands On!Limitações
![Page 4: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/4.jpg)
por que testar?!
![Page 5: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/5.jpg)
por que testar?!
•Sucesso/Fracasso do projeto•Perder Clientes•Alto Acoplamento•Escalabilidade ruim•Prejuízo financeiro
![Page 6: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/6.jpg)
o que é TDD?
“Teste de unidade é toda aplicação de teste nas assinaturas de
entradas e saídas de um sistema, consiste em validar dados válidos e
inválidos via I/O (entrada/saída)”.
![Page 7: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/7.jpg)
bons testes?!
•Isolado•Cobrir 100% da implementação•Executado por terceiro
![Page 8: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/8.jpg)
desculpas comuns...
“(...) Vai demorar muito mais ” (...)
“(...) A funcionalidade é muito fácil” (...)
“(...)Não sei como testar ” (...)
“(...) Melhor deixar os testes com testadores ” (...)
![Page 9: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/9.jpg)
o que é TDD?
“Extreme Programming is
successful because it stresses customer
satisfaction”.
![Page 10: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/10.jpg)
o que é TDD?
Kent Beck
![Page 11: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/11.jpg)
o que é TDD?
1. Adicione um teste que falhe
2. Faça o teste passar
3. Refatore o código
![Page 12: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/12.jpg)
o que é TDD?
![Page 13: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/13.jpg)
refactoring?!
Martin Fowler
![Page 14: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/14.jpg)
refactoring?!
•Design do software•Fácil compreensão•Escrever código rapidamente•Encontrar bugs
![Page 15: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/15.jpg)
refactoring?!
“Não é preciso ler todo o código para identificar um
código ruim”.
![Page 16: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/16.jpg)
refactoring?!
Principle KISSDRY – Don´t Repeat Yourself
You ain´t gonna need it
Interface Segregation
Principle
Dependency InversionPrinciple
![Page 17: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/17.jpg)
técnicas!
Baby Steps
MocksFake it!
![Page 18: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/18.jpg)
técnicas: Babies steps!
Codificar teste unitárioTestar um comportamento por vezRefatorar
![Page 19: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/19.jpg)
técnicas: Fake it!
Utilizar constantes
Refatorar
Confiança ao refatorar
Aspecto psicológico
ALERTA: Mais testes são
necessários
![Page 20: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/20.jpg)
técnicas: Mock!
Versão falsa do objetoBanco de dados
![Page 21: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/21.jpg)
o que é TDD?
“Todo código é culpado até que prove
ser inocente”.
![Page 22: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/22.jpg)
Hands On!
![Page 23: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/23.jpg)
limitações!
![Page 24: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/24.jpg)
limitações!
Time não acredita na ideia
Tempo curto para o aprendizado
Psicológico do desenvolvedor
Não é possível automatizar testes
![Page 25: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/25.jpg)
Outros Testes?!
Testes de IntegraçãoTestes SistêmicosTestes de Aceitação
![Page 26: TDD: Técnicas, Benefícios e Limitação](https://reader036.fdocuments.net/reader036/viewer/2022062300/55799b2bd8b42ae72b8b52b4/html5/thumbnails/26.jpg)
dúvidas?!