Test-Driven Development
TDD
Sumário
 Manifesto Ágil
 O que é?
 Ciclo do TDD
 Vantagens
 Aplicabilidade
 APIs e Sistemas
 Bugfixes
 Sistemas Le...
Manifesto Ágil
 Indivíduos e interações > Processos e ferramentas
 Software em funcionamento > Documentação abrangente
...
O que é?
 “Escrever os testes para o código antes de escrever o
código em si”
 É comum no desenvolvimento ágil
 Pode se...
O que é?
 Princípios do TDD – F.I.R.S.T. Principles:
 Fast – Testes devem ser executados em < 1 segundo
 Isolated – Fal...
Ciclo do TDD
Vantagens
 Antecipa o comportamento do código
 Reduz os custos de desenvolvimento e de
manutenção
 Educa o programador ...
Vantagens
 Desenvolvimento como um processo de
aprendizado
 Aperfeiçoamento do código: Refatoração
 Foco na aceitação, ...
Aplicabilidade
 Se livrando de Bugs:
 Relatório de Bug
 Teste que reproduz o Bug: Fail
 Correção do Bug
 Execução do ...
Aplicabilidade
 Sistemas Legados
 Funcionalidade Duvidosa: ???
 Escreva um teste para ver se você entendeu: Fail
 Adap...
Aplicabilidade
 Testes servem como documentação
 Auxilia no design
 Se adapta a qualquer metodologia de
desenvolvimento...
Ferramentas para Testes
 JUnit – Java
 NUnit, MsTest – .NET
 PyUnit – Python
 Perl – Test::More
 PHPUnit – PHP
 Test...
Caso de Uso com TDD
 Como usuário eu gostaria de me cadastrar
fornecendo: nome, email, senha, confirmação
 Condição:
 O...
Caso de Uso com TDD
14
Criando o Teste Falho
Caso de Uso com TDD
15
Implementado
Caso de Uso com TDD
16
Teste Passa
Caso de Uso com TDD
17
Adicionando novas Falhas
Caso de Uso com TDD
18
Implementação
Caso de Uso com TDD
19
Teste Passa
Caso de Uso com TDD
20
Caso de uso ainda incompleto
Caso de Uso com TDD
21
Nova implementação
Caso de Uso com TDD
22
Teste Passa
Caso de Uso com TDD
23
Nova Falha – Refatoração
Caso de Uso com TDD
24
Implementação
Caso de Uso com TDD
25
Teste Passa: Fim de Caso de Uso
Bibliografia Recomendada
 TDD – Desenvolvimento Guiado por Testes. Kent Beck
 Desenvolvimento de Software Orientado a Ob...
Obrigado!!!
Créditos:
http://www.slideshare.net/Pigor/palestra-tddcompleta-5460534
http://www.slideshare.net/Skud/test-dri...
Próximos SlideShares
Carregando em…5
×

Test-Driven Develpment - TDD

584 visualizações

Publicada em

Apresentação sobre o TDD:
* Introdução
* Conceitos
* Aplicabilidade
* Ferramentas

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

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

Nenhuma nota no slide

Test-Driven Develpment - TDD

  1. 1. Test-Driven Development TDD
  2. 2. Sumário  Manifesto Ágil  O que é?  Ciclo do TDD  Vantagens  Aplicabilidade  APIs e Sistemas  Bugfixes  Sistemas Legados  Ferramentas para Testes  Caso de Uso com TDD  Bibliografia Recomendada
  3. 3. Manifesto Ágil  Indivíduos e interações > Processos e ferramentas  Software em funcionamento > Documentação abrangente  Colaboração com o cliente > Negociação de contratos  Resposta a mudanças > Seguir um plano
  4. 4. O que é?  “Escrever os testes para o código antes de escrever o código em si”  É comum no desenvolvimento ágil  Pode ser usada em qualquer tipo de desenvolvimento, até em pesquisas  Desenvolvimento como um processo de Aprendizado
  5. 5. O que é?  Princípios do TDD – F.I.R.S.T. Principles:  Fast – Testes devem ser executados em < 1 segundo  Isolated – Falhas são claramente isoladas  Repeatable – Comportamento constante  Self-verifying – Passa ou Falha  Timely – 1 mudança de código = 1 teste
  6. 6. Ciclo do TDD
  7. 7. Vantagens  Antecipa o comportamento do código  Reduz os custos de desenvolvimento e de manutenção  Educa o programador a pensar e criar códigos “limpos”  Componentes livremente acoplados  Desestimula recursos desnecessários
  8. 8. Vantagens  Desenvolvimento como um processo de aprendizado  Aperfeiçoamento do código: Refatoração  Foco na aceitação, integração e unidade  Blindagem do código  Combate a Síndrome Nostradamus
  9. 9. Aplicabilidade  Se livrando de Bugs:  Relatório de Bug  Teste que reproduz o Bug: Fail  Correção do Bug  Execução do teste: Pass 9
  10. 10. Aplicabilidade  Sistemas Legados  Funcionalidade Duvidosa: ???  Escreva um teste para ver se você entendeu: Fail  Adapte o teste (iterativamente)  Execução do teste: Pass  Cuidado, Vá devagar  Esteja preparado para desfazer as mudanças 10
  11. 11. Aplicabilidade  Testes servem como documentação  Auxilia no design  Se adapta a qualquer metodologia de desenvolvimento de software 11
  12. 12. Ferramentas para Testes  JUnit – Java  NUnit, MsTest – .NET  PyUnit – Python  Perl – Test::More  PHPUnit – PHP  Test::Unit – Ruby  Test.More – Javascript 12
  13. 13. Caso de Uso com TDD  Como usuário eu gostaria de me cadastrar fornecendo: nome, email, senha, confirmação  Condição:  O usuário deve possuir uma senha válida  Ação:  Verificar se a confirmação da senha é válida, senão enviar mensagem de erro adequada 13
  14. 14. Caso de Uso com TDD 14 Criando o Teste Falho
  15. 15. Caso de Uso com TDD 15 Implementado
  16. 16. Caso de Uso com TDD 16 Teste Passa
  17. 17. Caso de Uso com TDD 17 Adicionando novas Falhas
  18. 18. Caso de Uso com TDD 18 Implementação
  19. 19. Caso de Uso com TDD 19 Teste Passa
  20. 20. Caso de Uso com TDD 20 Caso de uso ainda incompleto
  21. 21. Caso de Uso com TDD 21 Nova implementação
  22. 22. Caso de Uso com TDD 22 Teste Passa
  23. 23. Caso de Uso com TDD 23 Nova Falha – Refatoração
  24. 24. Caso de Uso com TDD 24 Implementação
  25. 25. Caso de Uso com TDD 25 Teste Passa: Fim de Caso de Uso
  26. 26. Bibliografia Recomendada  TDD – Desenvolvimento Guiado por Testes. Kent Beck  Desenvolvimento de Software Orientado a Objetos, Guiado por Testes. Steve Freeman, Nat Pryce.  Professional Test Driven Development with C#. James Bender, Jeff McWherter  Código Limpo (Clean Code): Habilidades Práticas do Agile Software. Robert C Martin
  27. 27. Obrigado!!! Créditos: http://www.slideshare.net/Pigor/palestra-tddcompleta-5460534 http://www.slideshare.net/Skud/test-driven-development-tutorial Contato: franciscobernardo@great.ufc.br www.great.ufc.br

×