Test Driven Development 
Conceitos básicos 
Mateus Parente
O QUE É TDD ?
Por que testar 
um sistema?
Test Driven Development 
Conceito de testes automatizados 
Produtividade?! 
Quantidade x Qualidade
Testes de unidade 
Exemplo
Test Driven Development 
Teste de unidade para nova 
funcionalidade 
Teste 
Falhou 
Código mais simples que 
resolva o pro...
Vantagens 
● Melhora na estrutura e design da Classe 
● Simplificação 
● O Código já nasce testado 
● Feedback constante
Baby Steps 
Qual a idéia 
Exemplificando
Cenário: Salários menores que 3000, têm 10% de desconto
Fazendo o teste passar 
da maneira mais simples 
Melhorando
Cenário: Salários maiores que 3000, têm 20% de desconto
Fazendo o teste passar 
da maneira mais simples 
Melhorando
Qualidade do código de teste 
Carrinho de compras: 
Uma funcionalidade que devolva o valor do item de maior valor 
dentro ...
Exemplificando
Diminuir repetição de código 
@Before
Nomenclatura dos testes 
O que é mais legível ao desenvolvedor? 
ou
Mock Objects 
Conceito de objetos “dublês” 
Testa FuncionarioDAO
Mock Objects 
Usar ou não usar? 
Faz exatamente o que você definir 
Simular todas as dependências 
Difícil manutenção se u...
Semelhança com o mundo real 
Testes unitários TeTsetesste dse u inntietágrriaoçsão Testes de sistema 
Mais caro e mais dif...
Test Driven Development 
E quando não usar TDD? 
Usar TDD em testes de integração? 
Aplicações WEB ? 
Quando não praticar?...
Princípios SOLID 
● Rigidez 
● Fragilidade 
● Imobilidade 
● Viscosidade 
● Repetição desnecessária 
● Opacidade
Apresentação baseada no Livro 
Test Driven Development 
Teste e Design no Mundo Real - Mauricio Aniche 
Outra referências:...
Próximos SlideShares
Carregando em…5
×

Test Driven Development - Conceitos básicos

241 visualizações

Publicada em

Conceitos básicos do uso de TDD no processo de desenvolvimento e testes automatizados.

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

Nenhuma nota no slide

Test Driven Development - Conceitos básicos

  1. 1. Test Driven Development Conceitos básicos Mateus Parente
  2. 2. O QUE É TDD ?
  3. 3. Por que testar um sistema?
  4. 4. Test Driven Development Conceito de testes automatizados Produtividade?! Quantidade x Qualidade
  5. 5. Testes de unidade Exemplo
  6. 6. Test Driven Development Teste de unidade para nova funcionalidade Teste Falhou Código mais simples que resolva o problema Melhoramos o código (se necessário)
  7. 7. Vantagens ● Melhora na estrutura e design da Classe ● Simplificação ● O Código já nasce testado ● Feedback constante
  8. 8. Baby Steps Qual a idéia Exemplificando
  9. 9. Cenário: Salários menores que 3000, têm 10% de desconto
  10. 10. Fazendo o teste passar da maneira mais simples Melhorando
  11. 11. Cenário: Salários maiores que 3000, têm 20% de desconto
  12. 12. Fazendo o teste passar da maneira mais simples Melhorando
  13. 13. Qualidade do código de teste Carrinho de compras: Uma funcionalidade que devolva o valor do item de maior valor dentro desse carrinho de compras. Pensando já nos testes, temos os seguintes cenários: • Se o carrinho só tiver um item • Se o carrinho tiver muitos itens • Um carrinho sem nenhum item
  14. 14. Exemplificando
  15. 15. Diminuir repetição de código @Before
  16. 16. Nomenclatura dos testes O que é mais legível ao desenvolvedor? ou
  17. 17. Mock Objects Conceito de objetos “dublês” Testa FuncionarioDAO
  18. 18. Mock Objects Usar ou não usar? Faz exatamente o que você definir Simular todas as dependências Difícil manutenção se usado em excesso Podem ocultar problemas em dependências que só apareceriam em testes de integração Infraestrutura e testes complicados Intimidade inapropriada TDD ao estilo londrino
  19. 19. Semelhança com o mundo real Testes unitários TeTsetesste dse u inntietágrriaoçsão Testes de sistema Mais caro e mais difícil de ser escrito
  20. 20. Test Driven Development E quando não usar TDD? Usar TDD em testes de integração? Aplicações WEB ? Quando não praticar? Sua classe necessita de um feedback constante?
  21. 21. Princípios SOLID ● Rigidez ● Fragilidade ● Imobilidade ● Viscosidade ● Repetição desnecessária ● Opacidade
  22. 22. Apresentação baseada no Livro Test Driven Development Teste e Design no Mundo Real - Mauricio Aniche Outra referências: http://blog.caelum.com.br/facilitando-seus-testes-de-unidade- no-java-um-pouco-de-mockito/ http://gc.blog.br/2007/08/28/mock-objects-em-excesso-podem- atrapalhar/

×