Introdução ao Test Driven Development (TDD)

  • View
    66

  • Download
    2

Embed Size (px)

DESCRIPTION

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

Text of Introdução ao Test Driven Development (TDD)

  • 1. e design no mundo real

2. O que TDD? Uma prtica onde os testes so escritos antes do cdigode produo Escreva primeiro o teste, faa o teste falhar, escreva ocdigo para o teste passar e escreva mais um teste, veja ele falhar, faa-opassar e assim por diante. 3. Design incremental Novas funcionalidades so introduzidas em pequenospassos Alm dos testes automatizados, o TDD oferece umfeedback rpido sobre as mudanas no cdigo E tambm d dicas sobre pontos de melhoria no design dasclassesPor isso, TDD mais sobre design de software do quesobre testes 4. Quais as vantagens?Foco nafuncionalidadeAumento dacobertura detestesTestesAutomatizadosCdigo de maiorqualidade(refatorao)Melhora odesign declasses 5. Quais as ferramentas? 6. Porque refatorar?Depois que o teste falha, o objetivo escrever o cdigomais simples possvel para o teste passar.Uma vez que o teste passou, necessrio refatorar ocdigo, buscando aprimor-lo e evitando repetio decdigo.Depois de refatorar, rode o teste novamente 7. Como escrever um teste?1. Escreva um caso de teste para determinadafuncionalidade da classe2. O teste no vai compilar, pois sua classe sequer existe!3. Implemente o suficiente para o teste compilar4. Rode o teste e veja-o falhar5. Implemente o cdigo mais simples pssvel para o testepassar6. Rode o teste e veja-o passar7. Refatore o cdigo em busca de melhorias8. Rode o teste e o veja-o passar novamente9. Repita todos os passos 8. Exemplo - Calculadora1. Escrever o teste que ainda no compila2. Criar a classe para o teste compilar 9. Exemplo - Calculadora3. Rode o teste e veja-o falhar 10. Exemplo - Calculadora4. Escreva o mnimo para o teste passar4. Rode o teste e veja-o passar5. Refatore (se necessrio) e depois escreve mais casosde testes 11. Devo sempre utilizar TDD? Depende. Utilize quando... A classe lida com funcionalidades complexas A soluo do problema no est to clara para odesenvolvedor Dessa forma, o desenvolvedor fica mais focado noproblema que sua classe deve resolver e no seperde com caminhos desnecessrios Talvez no seja muito vantajoso se... A soluo para o problema bastante simples 12. Devo sempre utilizar TDD? TDD uma prtica que ao mesmo tempo auxilia nostestes de unidade de classe E conduz o desenvolvedor a pensar na melhor soluopara o seu problema Resumindo: importante conhecer TDD e suas vantagens. Aexperincia deve dizer quando ser melhor utiliz-loou no 13. Exemplo - CalculadoraDeSalarioRegras de negcio Desenvolvedores: 20% de desconto caso o salrio seja maior que R$ 3000 10% de descontro caso o salrio seja menor que R$ 3000 DBAs e Testadores 25% de desconto caso o salrio seja maior que R$ 2500 15% de desconto caso o salrio seja menor que R$ 2500 14. Exemplo - CalculadoraDeSalario 15. Exemplo - CalculadoraDeSalario Escrevendo um teste que no compila Escreve o mnimo para o teste falhar 16. Exemplo - CalculadoraDeSalario Escrevendo o mnimo para o teste passar 17. Exemplo - CalculadoraDeSalario Refatorando 18. ConclusoTDD no diz respeito somente a testesO desenvolvedor que observa o feedback da prtica,pode aprimorar o design das suas classes seguindo osprincpios de Orientao a Objetos.O conhecimento e experincia do desenvolvedorso essenciais para issoPara uma melhor leitura dos feedbacks que TDD nos dize realizar as as mudanas, o desenvolvedor deveconhecer bem sobre design de projetos OO 19. Bibliografia