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...
Upcoming SlideShare
Loading in...5
×

Test-Driven Develpment - TDD

339

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
339
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×