SlideShare una empresa de Scribd logo
1 de 22
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 problema 
Melhoramos o 
código 
(se necessário)
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 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
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 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
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
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?
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: 
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/

Más contenido relacionado

La actualidad más candente

Agile Testing - entregando valor do início a fim
Agile Testing - entregando valor do início a fimAgile Testing - entregando valor do início a fim
Agile Testing - entregando valor do início a fimElias Nogueira
 
ALM - Testes Exploratórios
ALM - Testes ExploratóriosALM - Testes Exploratórios
ALM - Testes ExploratóriosAlan Carlos
 
Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...
Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...
Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...Walmyr Lima e Silva Filho
 
Test driven development teste e design no mundo real by mauricio aniche (z-li...
Test driven development teste e design no mundo real by mauricio aniche (z-li...Test driven development teste e design no mundo real by mauricio aniche (z-li...
Test driven development teste e design no mundo real by mauricio aniche (z-li...GessdaSilvaMachado
 
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing
Acredite, você pode agilizar feedbacks aplicando Dev Box TestingAcredite, você pode agilizar feedbacks aplicando Dev Box Testing
Acredite, você pode agilizar feedbacks aplicando Dev Box TestingAriane Izac
 
Falando sobre testes automatizados
Falando sobre testes automatizadosFalando sobre testes automatizados
Falando sobre testes automatizadosBreno Oliveira
 
Introdução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anosIntrodução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anosDionatan default
 
Test driven development
Test driven developmentTest driven development
Test driven developmentclauvane1708
 
PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD
PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDDPHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD
PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDDDiana Ungaro Arnos
 
Testes: existe vida antes do TDD
Testes: existe vida antes do TDDTestes: existe vida antes do TDD
Testes: existe vida antes do TDDDiana Ungaro Arnos
 
ALM - Testes Exploratórios no Microsoft Test Manager
ALM - Testes Exploratórios no Microsoft Test ManagerALM - Testes Exploratórios no Microsoft Test Manager
ALM - Testes Exploratórios no Microsoft Test ManagerAlan Carlos
 
Desenvolvimento orientado a testes
Desenvolvimento orientado a testesDesenvolvimento orientado a testes
Desenvolvimento orientado a testesCarlos Santana
 
IBM Rational Piores Práticas em Testes
IBM Rational Piores Práticas em TestesIBM Rational Piores Práticas em Testes
IBM Rational Piores Práticas em TestesFelipe Freire
 
ALM - Testes Manuais no Microsoft Test Manager
ALM - Testes Manuais no Microsoft Test ManagerALM - Testes Manuais no Microsoft Test Manager
ALM - Testes Manuais no Microsoft Test ManagerAlan Carlos
 
Apresentação Artigo SBQS 2015 - Um Comparativo na Execução de Testes Manuais ...
Apresentação Artigo SBQS 2015 - Um Comparativo na Execução de Testes Manuais ...Apresentação Artigo SBQS 2015 - Um Comparativo na Execução de Testes Manuais ...
Apresentação Artigo SBQS 2015 - Um Comparativo na Execução de Testes Manuais ...Vanilton Pinheiro
 

La actualidad más candente (20)

Agile Testing - entregando valor do início a fim
Agile Testing - entregando valor do início a fimAgile Testing - entregando valor do início a fim
Agile Testing - entregando valor do início a fim
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
ALM - Testes Exploratórios
ALM - Testes ExploratóriosALM - Testes Exploratórios
ALM - Testes Exploratórios
 
Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...
Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...
Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...
 
Testes unitários e Mocks
Testes unitários e MocksTestes unitários e Mocks
Testes unitários e Mocks
 
Test driven development teste e design no mundo real by mauricio aniche (z-li...
Test driven development teste e design no mundo real by mauricio aniche (z-li...Test driven development teste e design no mundo real by mauricio aniche (z-li...
Test driven development teste e design no mundo real by mauricio aniche (z-li...
 
Agile testing
Agile testingAgile testing
Agile testing
 
TDD e Refactoring
TDD e RefactoringTDD e Refactoring
TDD e Refactoring
 
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing
Acredite, você pode agilizar feedbacks aplicando Dev Box TestingAcredite, você pode agilizar feedbacks aplicando Dev Box Testing
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing
 
Falando sobre testes automatizados
Falando sobre testes automatizadosFalando sobre testes automatizados
Falando sobre testes automatizados
 
Test day 2012
Test day 2012Test day 2012
Test day 2012
 
Introdução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anosIntrodução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anos
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD
PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDDPHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD
PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD
 
Testes: existe vida antes do TDD
Testes: existe vida antes do TDDTestes: existe vida antes do TDD
Testes: existe vida antes do TDD
 
ALM - Testes Exploratórios no Microsoft Test Manager
ALM - Testes Exploratórios no Microsoft Test ManagerALM - Testes Exploratórios no Microsoft Test Manager
ALM - Testes Exploratórios no Microsoft Test Manager
 
Desenvolvimento orientado a testes
Desenvolvimento orientado a testesDesenvolvimento orientado a testes
Desenvolvimento orientado a testes
 
IBM Rational Piores Práticas em Testes
IBM Rational Piores Práticas em TestesIBM Rational Piores Práticas em Testes
IBM Rational Piores Práticas em Testes
 
ALM - Testes Manuais no Microsoft Test Manager
ALM - Testes Manuais no Microsoft Test ManagerALM - Testes Manuais no Microsoft Test Manager
ALM - Testes Manuais no Microsoft Test Manager
 
Apresentação Artigo SBQS 2015 - Um Comparativo na Execução de Testes Manuais ...
Apresentação Artigo SBQS 2015 - Um Comparativo na Execução de Testes Manuais ...Apresentação Artigo SBQS 2015 - Um Comparativo na Execução de Testes Manuais ...
Apresentação Artigo SBQS 2015 - Um Comparativo na Execução de Testes Manuais ...
 

Similar a Test Driven Development - Conceitos básicos

Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesCamilo Ribeiro
 
Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?Maurício Aniche
 
TDD para "meros mortais"
TDD para "meros mortais"TDD para "meros mortais"
TDD para "meros mortais"thiagobapt
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Diego Pacheco
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaRogerio Fontes
 
TDD - Pós Graduação em Engenharia de Software Ágil
TDD - Pós Graduação em Engenharia de Software ÁgilTDD - Pós Graduação em Engenharia de Software Ágil
TDD - Pós Graduação em Engenharia de Software ÁgilBruno Eustáquio
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do MantraDionatan default
 
Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...Thiago Faria de Andrade
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...Isaac de Souza
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27Hélio Medeiros
 
Tente desenvolver diferente com TDD
Tente desenvolver diferente com TDDTente desenvolver diferente com TDD
Tente desenvolver diferente com TDDWebgoal
 
Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Raphael Paiva
 

Similar a Test Driven Development - Conceitos básicos (20)

Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?
 
TDD
TDDTDD
TDD
 
TDD para "meros mortais"
TDD para "meros mortais"TDD para "meros mortais"
TDD para "meros mortais"
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis Uberlândia
 
Tdd x testes unidades
Tdd x testes unidadesTdd x testes unidades
Tdd x testes unidades
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
TDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVATDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVA
 
TDD - Pós Graduação em Engenharia de Software Ágil
TDD - Pós Graduação em Engenharia de Software ÁgilTDD - Pós Graduação em Engenharia de Software Ágil
TDD - Pós Graduação em Engenharia de Software Ágil
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do Mantra
 
Tdd na veia
Tdd na veiaTdd na veia
Tdd na veia
 
Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27
 
Tente desenvolver diferente com TDD
Tente desenvolver diferente com TDDTente desenvolver diferente com TDD
Tente desenvolver diferente com TDD
 
Ctai Teste De Software Aula 1
Ctai Teste De Software Aula 1Ctai Teste De Software Aula 1
Ctai Teste De Software Aula 1
 
Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?
 
Unit test & TDD
Unit test & TDDUnit test & TDD
Unit test & TDD
 

Test Driven Development - Conceitos básicos

  • 1. Test Driven Development Conceitos básicos Mateus Parente
  • 2. O QUE É TDD ?
  • 3. Por que testar um sistema?
  • 4. Test Driven Development Conceito de testes automatizados Produtividade?! Quantidade x Qualidade
  • 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. Vantagens ● Melhora na estrutura e design da Classe ● Simplificação ● O Código já nasce testado ● Feedback constante
  • 8. Baby Steps Qual a idéia Exemplificando
  • 9. Cenário: Salários menores que 3000, têm 10% de desconto
  • 10. Fazendo o teste passar da maneira mais simples Melhorando
  • 11. Cenário: Salários maiores que 3000, têm 20% de desconto
  • 12. Fazendo o teste passar da maneira mais simples Melhorando
  • 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
  • 15. Diminuir repetição de código @Before
  • 16. Nomenclatura dos testes O que é mais legível ao desenvolvedor? ou
  • 17. Mock Objects Conceito de objetos “dublês” Testa FuncionarioDAO
  • 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. 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. 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. Princípios SOLID ● Rigidez ● Fragilidade ● Imobilidade ● Viscosidade ● Repetição desnecessária ● Opacidade
  • 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/