Projeto de Software com Testes Unitários e TDD Lucas Nazário dos Santos
Apesar do seu nome, “ test driven ” ou “ test first ” development não é na realidade uma técnica de teste. TDD força o pro...
TDD foca a atenção do programador na interface e no comportamento do software. Organizações reconhecerão os benefícios do ...
É uma estratégia de desenvolvimento que endereça tanto o projeto quanto o teste. TDD afeta a qualidade interna do projeto ...
 
Agenda <ul><li>Teste unitário </li></ul><ul><li>TDD (Test-driven development) </li></ul><ul><li>Projetando software com TD...
Teste unitário é simples. Qualquer um pode utilizar. Teste unitário
Você não precisa de nada sofisticado. Teste unitário
Os testes unitários cooperam com a gerência de risco Teste unitário
Os testes unitários exercitam o software Teste unitário
Os testes unitários documentam as funcionalidades Teste unitário
Teste unitário
Test-driven development Red Green Refactor Adiciona um teste que falha Adiciona qualquer código Refatora o código conforme...
Test-driven development: exemplo
Test-driven development: exemplo
Test-driven development: exemplo
Test-driven development: exemplo
Test-driven development: exemplo
Projetando software com TDD Durante os primeiros dias de cada iteração, nós  discutimos as  stories com o cliente . Nós ut...
Projetando software com TDD Etapa 1: Análise Disponibilizar uma opção para ordenação dos itens do carrinho de compras (por...
Etapa 2: Projeto Projetando software com TDD Disponibilizar uma opção para ordenação dos itens do carrinho de compras (por...
Projetando software com TDD Etapa 2: Projeto
Projetando software com TDD Etapa 2: Projeto
Projetando software com TDD Etapa 2: Projeto - programação pelos pares
Projetando software com TDD Etapa 2: Projeto - revisão pelos pares
Projetando software com TDD Etapa 3: Codificação – 1º cenário Projeta Codifica Projetista/Programador
Projetando software com TDD Etapa 3: Codificação – 2º cenário Projeta Codifica Projetista Programador
Projetando software com TDD Etapa 4: Teste Recebe Testa Testador
Projetando software com TDD Etapa 4: Teste “ Estudos revelaram que programadores utilizando TDD produzem código que passam...
Limitações Projeto de interfaces
Limitações Projeto de componentes intimamente relacionados a  containers
Onde procurar a partir daqui? http://retriever.stela.org.br/
Onde procurar a partir daqui? http://www.junit.org/
Onde procurar a partir daqui?
Onde procurar a partir daqui? Referência para os artigos
MUITO OBRIGADO! Lucas Nazário dos Santos TDD foca a atenção do programador na interface e no comportamento do software. Qu...
Próximos SlideShares
Carregando em…5
×

Instituto Stela S&T#001, Projeto de software com testes unitários

1.227 visualizações

Publicada em

Show & Tell #1, por Lucas Nazário dos Santos.
Hora e local: TER 16/09/08 12 h, sala VC, Instituto Stela

Publicada em: Tecnologia
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
1.227
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
20
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Instituto Stela S&T#001, Projeto de software com testes unitários

  1. 1. Projeto de Software com Testes Unitários e TDD Lucas Nazário dos Santos
  2. 2. Apesar do seu nome, “ test driven ” ou “ test first ” development não é na realidade uma técnica de teste. TDD força o programador a pensar em vários aspectos da funcionalidade antes de implementá-la. Muitas equipes utilizam “ customer facing ”, ou “ story ” tests para ajudar no desenvolvimento do código. Esses testes ilustram os requisitos e regras de negócio. Programadores escrevem código para fazer os testes passarem, o que mostra ao cliente que o código entregue endereça suas expectativas. TDD produz código com muito menos unit-level bugs , menos bugs funcionais e uma probabilidade exponencial de endereçar as expectativas dos stakeholders .
  3. 3. TDD foca a atenção do programador na interface e no comportamento do software. Organizações reconhecerão os benefícios do TDD tanto como uma técnica de teste como de projeto de software. Quando se escreve o teste antes do código, o programador decide não somente sobre a interface do software, mas também sobre o seu comportamento. TDD foca em como a técnica guia a análise, projeto e decisões de programação.
  4. 4. É uma estratégia de desenvolvimento que endereça tanto o projeto quanto o teste. TDD afeta a qualidade interna do projeto de software.
  5. 6. Agenda <ul><li>Teste unitário </li></ul><ul><li>TDD (Test-driven development) </li></ul><ul><li>Projetando software com TDD </li></ul><ul><li>Limitações </li></ul><ul><li>O que procurar a partir daqui? </li></ul>
  6. 7. Teste unitário é simples. Qualquer um pode utilizar. Teste unitário
  7. 8. Você não precisa de nada sofisticado. Teste unitário
  8. 9. Os testes unitários cooperam com a gerência de risco Teste unitário
  9. 10. Os testes unitários exercitam o software Teste unitário
  10. 11. Os testes unitários documentam as funcionalidades Teste unitário
  11. 12. Teste unitário
  12. 13. Test-driven development Red Green Refactor Adiciona um teste que falha Adiciona qualquer código Refatora o código conforme necessário
  13. 14. Test-driven development: exemplo
  14. 15. Test-driven development: exemplo
  15. 16. Test-driven development: exemplo
  16. 17. Test-driven development: exemplo
  17. 18. Test-driven development: exemplo
  18. 19. Projetando software com TDD Durante os primeiros dias de cada iteração, nós discutimos as stories com o cliente . Nós utilizamos toda a informação capturada através das interações com os clientes para escrever high-level test cases para cada story . Quando o desenvolvedor inicia a codificação de uma story, ele estuda os test cases para garantir que as funcionalidades básicas foram entendidas. Assim que a codificação inicia, é escrito um teste executável simples para a story . O programador escreve código para fazer o teste passar e então mais testes unitários podem ser adicionados para adequar a cobertura.
  19. 20. Projetando software com TDD Etapa 1: Análise Disponibilizar uma opção para ordenação dos itens do carrinho de compras (por ordem de inserção e alfabética). High-level test cases User stories
  20. 21. Etapa 2: Projeto Projetando software com TDD Disponibilizar uma opção para ordenação dos itens do carrinho de compras (por ordem de inserção e alfabética).
  21. 22. Projetando software com TDD Etapa 2: Projeto
  22. 23. Projetando software com TDD Etapa 2: Projeto
  23. 24. Projetando software com TDD Etapa 2: Projeto - programação pelos pares
  24. 25. Projetando software com TDD Etapa 2: Projeto - revisão pelos pares
  25. 26. Projetando software com TDD Etapa 3: Codificação – 1º cenário Projeta Codifica Projetista/Programador
  26. 27. Projetando software com TDD Etapa 3: Codificação – 2º cenário Projeta Codifica Projetista Programador
  27. 28. Projetando software com TDD Etapa 4: Teste Recebe Testa Testador
  28. 29. Projetando software com TDD Etapa 4: Teste “ Estudos revelaram que programadores utilizando TDD produzem código que passam com sucesso entre 18% e 50% mais casos de uso externo do que código produzido por grupos que não utilizam TDD.” Software Architecture Improvement through Test-Driven Development (ACM Press, 2005)
  29. 30. Limitações Projeto de interfaces
  30. 31. Limitações Projeto de componentes intimamente relacionados a containers
  31. 32. Onde procurar a partir daqui? http://retriever.stela.org.br/
  32. 33. Onde procurar a partir daqui? http://www.junit.org/
  33. 34. Onde procurar a partir daqui?
  34. 35. Onde procurar a partir daqui? Referência para os artigos
  35. 36. MUITO OBRIGADO! Lucas Nazário dos Santos TDD foca a atenção do programador na interface e no comportamento do software. Quando se escreve o teste antes do código, o programador decide não somente sobre a interface do software, mas também sobre o seu comportamento. Conclusão

×