SlideShare uma empresa Scribd logo
1 de 84
Baixar para ler offline
Test Driven Development
 Teste automatizado é uma
  documentação executável.
 Testes automáticos geram Feed Back
  rápido e fácil (1 click).
 Teste de software é qualidade de
  software.
 Teste de caixa preta (Funcional), é
  cansativo para o ser humano.
   Integração
   Regressão
   Aceitação
   Stress / Carga
   Funcional / Caixa Preta
   Unitários
   Criado por Kent Back
   Em 2003
   XP (Extreme Programming)
   Manifesto Ágil
Keep It Simple, Stupid
You Ain’t Gonna Need It
Don´t repeat yourself
     Duplicate is Evil
Desenha   Implementa   Testa
Desenha   Testa   Implementa   Testa
Desenha




Testa                Testa




        Implementa
Desenha




Testa                Testa




        Implementa
Entenda o
           Bug




Teste               Teste




        Corrija o
          Bug
   Encontre o foco do problema que gera o Bug
   Transforme-o em um teste
   Teste. Ele deve falhar
   Corrija o bug
   Teste novamente. Ele deve passar
   Tente fazer com que os próprios usuários
    submetam testes
   Examine o código e encontre possíveis Bugs
    semelhantes
Não importa se foi feito essa manhã.
Anh? =/




Teste             Teste




        Ahh! =)
   Analise o código
   Construa o teste e veja se você entendeu o
    problema
   Teste
   Adapte o teste (Iterativamente)
   Teste
   Siga para a próxima parte
   Entenda
   Documente
   Refatore
   Remova excessos
   Padronize
   Faça-o seguro e robusto
   CUIDADO!
   Vá devagar
   Esteja pronto para desfazer tudo
 Elevação   do comprometimento
  do time
 Planejamento mais rápido
 Sãoconsiderados Scrum e
 TDD na discussão do que é
 ou não entregável
SCRUM                       TDD
Agilidade e Transparência   Qualidade
MITOS                           REALIDADES

TDD pode gerar um conjunto de       Componentes de terceiros às
testes 100% aplicáveis para         vezes deixam de ter testes e até o
qualquer aplicação                  código-fonte.



Você só precisa fazer teste de      É preciso aplicar outras técnicas
unidade                             de testes, mesmo para sistemas
                                    simples.

                                    TDD contemplam apenas o teste
TDD é suficiente para testar tudo   entre o desenvolvedor e a
                                    unidade.

TDD não é escalável                 O TDD encoraja o refactoring, o
                                    que torna o código escalável.
   Os riscos aumentam

   Demora mais na entrega e muito menos na
    correção
   Ou o problema não foi entendido

   Ou utiliza um grande inimigo o Ctrl+C,
    Ctrl+V
   É como se não conhecesse uma biblioteca e
    isso o impedisse de testar

   Trata apenas de programação coisa que já
    estamos acostumados
   Sem fundamento

   Se o cenário é inédito existe a comunidade
    que pode ajudar
   Testes devem ser escritos antes do código

   Não significa abrir mão de uma poderosa
    ferramenta
   Escreva um teste que não irá funcionar.

   Faça com que esse teste funcione com a
    implementação mais óbvia e rápida possível.

   Repita esse ciclo iterativamente refatorando o
    código eliminando o desnecessário.
   Bruno Eustáquio
   Juliana Villas Boas
   Marcelo Nascimento
   Thiago Funghi
   Thiago Ribeiro

PO - Márcio Sete

Mais conteúdo relacionado

Mais procurados

Test-Driven Develpment - TDD
Test-Driven Develpment - TDDTest-Driven Develpment - TDD
Test-Driven Develpment - TDDKleber Bernardo
 
TDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao testeTDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao testeRafaela Prado
 
TDD direto das trincheiras
TDD direto das trincheirasTDD direto das trincheiras
TDD direto das trincheirasLuiz Borba
 
Coding Dojo - Funcionamento
Coding Dojo - FuncionamentoCoding Dojo - Funcionamento
Coding Dojo - Funcionamentothiagodp
 
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Developer Academy
 
Programe a eficácia do seu código
Programe a eficácia do seu códigoPrograme a eficácia do seu código
Programe a eficácia do seu códigoAna Claudia Nogueira
 
1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de softwareHeider Lopes
 
TDD - Workshop Pyladies SP
TDD - Workshop Pyladies SPTDD - Workshop Pyladies SP
TDD - Workshop Pyladies SPJessyka Lage
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testeselliando dias
 

Mais procurados (19)

Test-Driven Develpment - TDD
Test-Driven Develpment - TDDTest-Driven Develpment - TDD
Test-Driven Develpment - TDD
 
TDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao testeTDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao teste
 
TDD
TDDTDD
TDD
 
TDD direto das trincheiras
TDD direto das trincheirasTDD direto das trincheiras
TDD direto das trincheiras
 
Tdd x testes unidades
Tdd x testes unidadesTdd x testes unidades
Tdd x testes unidades
 
Coding Dojo - Funcionamento
Coding Dojo - FuncionamentoCoding Dojo - Funcionamento
Coding Dojo - Funcionamento
 
TDD com Python
TDD com PythonTDD com Python
TDD com Python
 
Desenvolvimento Guiado Por Testes
Desenvolvimento Guiado Por TestesDesenvolvimento Guiado Por Testes
Desenvolvimento Guiado Por Testes
 
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
 
JUnit Sample
JUnit SampleJUnit Sample
JUnit Sample
 
Minicurso de TDD
Minicurso de TDDMinicurso de TDD
Minicurso de TDD
 
Programe a eficácia do seu código
Programe a eficácia do seu códigoPrograme a eficácia do seu código
Programe a eficácia do seu código
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software
 
RealDay: Introduction to TDD
RealDay: Introduction to TDDRealDay: Introduction to TDD
RealDay: Introduction to TDD
 
Testes - Para que?
Testes - Para que?Testes - Para que?
Testes - Para que?
 
TDD - Workshop Pyladies SP
TDD - Workshop Pyladies SPTDD - Workshop Pyladies SP
TDD - Workshop Pyladies SP
 
Testes Unitários
Testes UnitáriosTestes Unitários
Testes Unitários
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testes
 

Destaque

Destaque (9)

Pensando TDD
Pensando TDDPensando TDD
Pensando TDD
 
SITSP Developers 2016 - ABAP c/ TDD
SITSP Developers 2016 - ABAP c/ TDDSITSP Developers 2016 - ABAP c/ TDD
SITSP Developers 2016 - ABAP c/ TDD
 
TDD para Java EE
TDD para Java EETDD para Java EE
TDD para Java EE
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
TDD And Refactoring
TDD And RefactoringTDD And Refactoring
TDD And Refactoring
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Test-Driven Development (TDD)
Test-Driven Development (TDD)Test-Driven Development (TDD)
Test-Driven Development (TDD)
 
TDD - Agile
TDD - Agile TDD - Agile
TDD - Agile
 
Test Driven Development (TDD)
Test Driven Development (TDD)Test Driven Development (TDD)
Test Driven Development (TDD)
 

Semelhante a TDD - Pós Graduação em Engenharia de Software Ágil

Os Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de softwareOs Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de softwareDextra Sistemas / Etec Itu
 
Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de UnidadeAline Ferreira
 
Desenvolvimento orientado a testes - TDD
Desenvolvimento orientado a testes - TDDDesenvolvimento orientado a testes - TDD
Desenvolvimento orientado a testes - TDDwashingtonlslima
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Diego Pacheco
 
Teste Unitários e TDD
Teste Unitários e TDDTeste Unitários e TDD
Teste Unitários e TDDDiogo Damiani
 
Lightning talk Test-Driven Development - TDD
Lightning talk Test-Driven Development - TDDLightning talk Test-Driven Development - TDD
Lightning talk Test-Driven Development - TDDWillians De Paula Pereira
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesCamilo Ribeiro
 
Palestra tdd - rsjug
Palestra tdd - rsjugPalestra tdd - rsjug
Palestra tdd - rsjugBruno Maomeh
 
Paletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojoPaletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojoflavio1110
 
TDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do TesteTDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do TesteAislan Fernandes
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitDomingos Teruel
 
Tdd not sure if testing or developing
Tdd  not sure if testing or developingTdd  not sure if testing or developing
Tdd not sure if testing or developingRenato Oliveira
 
Tdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalTdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalAdriano Petrich
 
XP Programming
XP ProgrammingXP Programming
XP ProgrammingCJR, UnB
 

Semelhante a TDD - Pós Graduação em Engenharia de Software Ágil (20)

Os Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de softwareOs Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de software
 
Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de Unidade
 
Desenvolvimento orientado a testes - TDD
Desenvolvimento orientado a testes - TDDDesenvolvimento orientado a testes - TDD
Desenvolvimento orientado a testes - TDD
 
TDD com Python (Completo)
TDD com Python (Completo)TDD com Python (Completo)
TDD com Python (Completo)
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1
 
TDD (Resumo)
TDD (Resumo)TDD (Resumo)
TDD (Resumo)
 
Teste Unitários e TDD
Teste Unitários e TDDTeste Unitários e TDD
Teste Unitários e TDD
 
Lightning talk Test-Driven Development - TDD
Lightning talk Test-Driven Development - TDDLightning talk Test-Driven Development - TDD
Lightning talk Test-Driven Development - TDD
 
eXtreme Programming
eXtreme ProgrammingeXtreme Programming
eXtreme Programming
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
Teste Driven Development
Teste Driven DevelopmentTeste Driven Development
Teste Driven Development
 
Palestra tdd - rsjug
Palestra tdd - rsjugPalestra tdd - rsjug
Palestra tdd - rsjug
 
Paletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojoPaletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojo
 
TDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do TesteTDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do Teste
 
Clean Code
Clean CodeClean Code
Clean Code
 
Introdução a TDD
Introdução a TDDIntrodução a TDD
Introdução a TDD
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
 
Tdd not sure if testing or developing
Tdd  not sure if testing or developingTdd  not sure if testing or developing
Tdd not sure if testing or developing
 
Tdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalTdd em django sem desculpas versao final
Tdd em django sem desculpas versao final
 
XP Programming
XP ProgrammingXP Programming
XP Programming
 

Mais de Bruno Eustáquio

Empreendedorismo, Tecnologia e as Oportunidades Disfarçadas
Empreendedorismo, Tecnologia e as Oportunidades DisfarçadasEmpreendedorismo, Tecnologia e as Oportunidades Disfarçadas
Empreendedorismo, Tecnologia e as Oportunidades DisfarçadasBruno Eustáquio
 
Inbound Marketing - Saiba Porquê sua Empresa já Deveria ter uma Estratégia de...
Inbound Marketing - Saiba Porquê sua Empresa já Deveria ter uma Estratégia de...Inbound Marketing - Saiba Porquê sua Empresa já Deveria ter uma Estratégia de...
Inbound Marketing - Saiba Porquê sua Empresa já Deveria ter uma Estratégia de...Bruno Eustáquio
 
UFV 2013 - 10 dicas para criar uma empresa inovadora de sucesso... Ou não.
UFV 2013 - 10 dicas para criar uma empresa inovadora de sucesso... Ou não.UFV 2013 - 10 dicas para criar uma empresa inovadora de sucesso... Ou não.
UFV 2013 - 10 dicas para criar uma empresa inovadora de sucesso... Ou não.Bruno Eustáquio
 
UNA 2013 - 10 dicas para criar uma empresa inovadora de sucesso... Ou não.
UNA 2013 - 10 dicas para criar uma empresa inovadora de sucesso... Ou não.UNA 2013 - 10 dicas para criar uma empresa inovadora de sucesso... Ou não.
UNA 2013 - 10 dicas para criar uma empresa inovadora de sucesso... Ou não.Bruno Eustáquio
 
Mídias sociais para profissionais de RH
Mídias sociais para profissionais de RHMídias sociais para profissionais de RH
Mídias sociais para profissionais de RHBruno Eustáquio
 
SEO, Como e porque otimizar seu website - Semana da Informática UFV
SEO, Como e porque otimizar seu website - Semana da Informática UFVSEO, Como e porque otimizar seu website - Semana da Informática UFV
SEO, Como e porque otimizar seu website - Semana da Informática UFVBruno Eustáquio
 

Mais de Bruno Eustáquio (7)

Empreendedorismo, Tecnologia e as Oportunidades Disfarçadas
Empreendedorismo, Tecnologia e as Oportunidades DisfarçadasEmpreendedorismo, Tecnologia e as Oportunidades Disfarçadas
Empreendedorismo, Tecnologia e as Oportunidades Disfarçadas
 
Inbound Marketing - Saiba Porquê sua Empresa já Deveria ter uma Estratégia de...
Inbound Marketing - Saiba Porquê sua Empresa já Deveria ter uma Estratégia de...Inbound Marketing - Saiba Porquê sua Empresa já Deveria ter uma Estratégia de...
Inbound Marketing - Saiba Porquê sua Empresa já Deveria ter uma Estratégia de...
 
UFV 2013 - 10 dicas para criar uma empresa inovadora de sucesso... Ou não.
UFV 2013 - 10 dicas para criar uma empresa inovadora de sucesso... Ou não.UFV 2013 - 10 dicas para criar uma empresa inovadora de sucesso... Ou não.
UFV 2013 - 10 dicas para criar uma empresa inovadora de sucesso... Ou não.
 
UNA 2013 - 10 dicas para criar uma empresa inovadora de sucesso... Ou não.
UNA 2013 - 10 dicas para criar uma empresa inovadora de sucesso... Ou não.UNA 2013 - 10 dicas para criar uma empresa inovadora de sucesso... Ou não.
UNA 2013 - 10 dicas para criar uma empresa inovadora de sucesso... Ou não.
 
Introdução ao ERP
Introdução ao ERPIntrodução ao ERP
Introdução ao ERP
 
Mídias sociais para profissionais de RH
Mídias sociais para profissionais de RHMídias sociais para profissionais de RH
Mídias sociais para profissionais de RH
 
SEO, Como e porque otimizar seu website - Semana da Informática UFV
SEO, Como e porque otimizar seu website - Semana da Informática UFVSEO, Como e porque otimizar seu website - Semana da Informática UFV
SEO, Como e porque otimizar seu website - Semana da Informática UFV
 

TDD - Pós Graduação em Engenharia de Software Ágil

  • 2.  Teste automatizado é uma documentação executável.  Testes automáticos geram Feed Back rápido e fácil (1 click).  Teste de software é qualidade de software.  Teste de caixa preta (Funcional), é cansativo para o ser humano.
  • 3.
  • 4. Integração  Regressão  Aceitação  Stress / Carga  Funcional / Caixa Preta  Unitários
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. Criado por Kent Back  Em 2003  XP (Extreme Programming)  Manifesto Ágil
  • 11.
  • 12. Keep It Simple, Stupid
  • 13. You Ain’t Gonna Need It
  • 14.
  • 15. Don´t repeat yourself Duplicate is Evil
  • 16.
  • 17.
  • 18.
  • 19. Desenha Implementa Testa
  • 20. Desenha Testa Implementa Testa
  • 21. Desenha Testa Testa Implementa
  • 22. Desenha Testa Testa Implementa
  • 23.
  • 24.
  • 25.
  • 26. Entenda o Bug Teste Teste Corrija o Bug
  • 27. Encontre o foco do problema que gera o Bug  Transforme-o em um teste  Teste. Ele deve falhar  Corrija o bug  Teste novamente. Ele deve passar
  • 28. Tente fazer com que os próprios usuários submetam testes  Examine o código e encontre possíveis Bugs semelhantes
  • 29.
  • 30.
  • 31.
  • 32. Não importa se foi feito essa manhã.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37. Anh? =/ Teste Teste Ahh! =)
  • 38. Analise o código  Construa o teste e veja se você entendeu o problema  Teste  Adapte o teste (Iterativamente)  Teste  Siga para a próxima parte
  • 39. Entenda  Documente  Refatore  Remova excessos  Padronize  Faça-o seguro e robusto
  • 40. CUIDADO!  Vá devagar  Esteja pronto para desfazer tudo
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.  Elevação do comprometimento do time  Planejamento mais rápido
  • 55.  Sãoconsiderados Scrum e TDD na discussão do que é ou não entregável
  • 56.
  • 57.
  • 58.
  • 59.
  • 60. SCRUM TDD Agilidade e Transparência Qualidade
  • 61. MITOS REALIDADES TDD pode gerar um conjunto de Componentes de terceiros às testes 100% aplicáveis para vezes deixam de ter testes e até o qualquer aplicação código-fonte. Você só precisa fazer teste de É preciso aplicar outras técnicas unidade de testes, mesmo para sistemas simples. TDD contemplam apenas o teste TDD é suficiente para testar tudo entre o desenvolvedor e a unidade. TDD não é escalável O TDD encoraja o refactoring, o que torna o código escalável.
  • 62.
  • 63. Os riscos aumentam  Demora mais na entrega e muito menos na correção
  • 64. Ou o problema não foi entendido  Ou utiliza um grande inimigo o Ctrl+C, Ctrl+V
  • 65. É como se não conhecesse uma biblioteca e isso o impedisse de testar  Trata apenas de programação coisa que já estamos acostumados
  • 66. Sem fundamento  Se o cenário é inédito existe a comunidade que pode ajudar
  • 67. Testes devem ser escritos antes do código  Não significa abrir mão de uma poderosa ferramenta
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82. Escreva um teste que não irá funcionar.  Faça com que esse teste funcione com a implementação mais óbvia e rápida possível.  Repita esse ciclo iterativamente refatorando o código eliminando o desnecessário.
  • 83.
  • 84. Bruno Eustáquio  Juliana Villas Boas  Marcelo Nascimento  Thiago Funghi  Thiago Ribeiro PO - Márcio Sete