SlideShare uma empresa Scribd logo
1 de 52
Baixar para ler offline
Test-Driven Development
para Java EE

      Dairton Bassi
       dbassi@gmail.com




         www.neurobox.com.br
JSP
                                                           Web Services
                                                                 EJB
                                                                       Servlets

Struts Spring     Java Server Faces
          Hibernate    WebWork
 VRaptor Velocity
                        JBoss Seam
By Vince Huang - http://www.flickr.com/photos/s_y_s/2305290082/
Você já fez TDD?
Teste cedo,
    sempre e
automaticamente.

Passou     Falhou
“Encontrar e corrigir um defeito em um software depois
de entregue é 100 vezes mais caro do que encontrá-lo e
corrigi-lo durante as requisições ou na fase de design.”
                               Shull, Basili, Boehm e outros (2002)
Atenção!
TDD não é só testes.


         TDD é,
         especialmente,
         sobre design.
TDD requer de técnica.
O container acrescenta
complexidade ao ciclo de testes.
Construa em
pequenas partes




   Teste em
pequenas partes
Como começar?
Reduza o problema.


   Escreva um
 teste que falha.
Qual a forma mais
simples de fazer o
   teste passar.
Passou nos testes?

Pronto! Terminado.
Que pequena
evolução eu
   posso
acrescentar?
Escreva um
 teste que falha.


Talvez agora seja
preciso refatorar.
Olhando a   Conhecendo       Código
interface    o código    refatorado
Tenha disciplina.
S
    A
  R

    1
EG

         Não escreva código se não for
R



         para fazer algum teste passar.



    2    Não escreva mais testes do que
         o suficiente para falhar.



    3    Escreva só o código necessário
         para fazer os testes passarem.
By Sherlock77 (James)
http://www.flickr.com/photos/sherlock77/84666910/
JUnit Fit EasyMock
JSFUnit HttpUnit
    Selenium TestNG
 HtmlUnit Cactus
StrutsTestCase soapUI
       SpringUnit
 DBUnit      MockEJB
Mate um problema por vez.
Teste o todo:
Testes Funcionais
Teste cada elemento:
Testes Unitários
Teste cada encaixe:
Testes de Integração
Os bugs se
  tornarão evidentes.




By Martin LaBar - http://www.flickr.com/photos/martinlabar/351571176/
Partes testadas
independentemente.

Evidências de qualidade.

Design na medida certa.

Todas as funcionalidades
requeridas.

Somente as funcionalidades
requeridas.
Produza soluções
  entregáveis.
Teoria das Janelas
   Quebradas
Leitura
Recomendada
Ação
Recomendada




              Comece.
Obrigado!
Dairton Bassi
       dbassi@   .com

      : dbassi




                        www.neurobox.com.br

Mais conteúdo relacionado

Mais procurados

TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do MantraDionatan default
 
Falando sobre testes automatizados
Falando sobre testes automatizadosFalando sobre testes automatizados
Falando sobre testes automatizadosBreno Oliveira
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo realWilly Salazar
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realHenrique Schmidt
 
Desenvolvimento Orientado a Testes
Desenvolvimento Orientado a TestesDesenvolvimento Orientado a Testes
Desenvolvimento Orientado a TestesAndre Carlucci
 
TDD - Desenvolvimento Dirigido a Testes
TDD - Desenvolvimento Dirigido a TestesTDD - Desenvolvimento Dirigido a Testes
TDD - Desenvolvimento Dirigido a TestesNetto Cavalcante
 
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilElias Nogueira
 
Testando serviços aws localmente com Localstack e JUnit
Testando serviços aws localmente com Localstack e JUnitTestando serviços aws localmente com Localstack e JUnit
Testando serviços aws localmente com Localstack e JUnitRodrigo Vieira
 
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)Igor Abade
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testeselliando dias
 
Tester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitidoTester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitidoLeonardo Galani
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27Hélio Medeiros
 
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
 
Mtc docker - utilizando no seu dia a dia
Mtc   docker - utilizando no seu dia a diaMtc   docker - utilizando no seu dia a dia
Mtc docker - utilizando no seu dia a diaRafael Chiavegatto
 
Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!Daniel Carvalhinho
 

Mais procurados (20)

TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do Mantra
 
Falando sobre testes automatizados
Falando sobre testes automatizadosFalando sobre testes automatizados
Falando sobre testes automatizados
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo real
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo real
 
Desenvolvimento Orientado a Testes
Desenvolvimento Orientado a TestesDesenvolvimento Orientado a Testes
Desenvolvimento Orientado a Testes
 
TDD
TDDTDD
TDD
 
Palestra TDD Javou! #08 2016
Palestra TDD Javou! #08 2016Palestra TDD Javou! #08 2016
Palestra TDD Javou! #08 2016
 
TDD - Desenvolvimento Dirigido a Testes
TDD - Desenvolvimento Dirigido a TestesTDD - Desenvolvimento Dirigido a Testes
TDD - Desenvolvimento Dirigido a Testes
 
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
 
Testando serviços aws localmente com Localstack e JUnit
Testando serviços aws localmente com Localstack e JUnitTestando serviços aws localmente com Localstack e JUnit
Testando serviços aws localmente com Localstack e JUnit
 
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testes
 
Tester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitidoTester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitido
 
Unit test & TDD
Unit test & TDDUnit test & TDD
Unit test & TDD
 
Testes
TestesTestes
Testes
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27
 
Introdução a TDD
Introdução a TDDIntrodução a TDD
Introdução a TDD
 
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
 
Mtc docker - utilizando no seu dia a dia
Mtc   docker - utilizando no seu dia a diaMtc   docker - utilizando no seu dia a dia
Mtc docker - utilizando no seu dia a dia
 
Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!
 

Destaque

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
 
SITSP Developers 2016 - ABAP c/ TDD
SITSP Developers 2016 - ABAP c/ TDDSITSP Developers 2016 - ABAP c/ TDD
SITSP Developers 2016 - ABAP c/ TDDJose Nunes
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Daniel Makiyama
 
TDD And Refactoring
TDD And RefactoringTDD And Refactoring
TDD And RefactoringNaresh Jain
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven DevelopmentTung Nguyen Thanh
 
Test-Driven Development (TDD)
Test-Driven Development (TDD)Test-Driven Development (TDD)
Test-Driven Development (TDD)Brian Rasmussen
 
Test Driven Development (TDD)
Test Driven Development (TDD)Test Driven Development (TDD)
Test Driven Development (TDD)David Ehringer
 

Destaque (10)

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
 
SITSP Developers 2016 - ABAP c/ TDD
SITSP Developers 2016 - ABAP c/ TDDSITSP Developers 2016 - ABAP c/ TDD
SITSP Developers 2016 - ABAP c/ TDD
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
 
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
 
Pensando TDD
Pensando TDDPensando TDD
Pensando TDD
 
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 para Java EE: Teste-Driven Development

Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMAdriano Bertucci
 
Testes Unitários: Começando a escrever testes no seu dia-a-dia
Testes Unitários: Começando a escrever testes no seu dia-a-diaTestes Unitários: Começando a escrever testes no seu dia-a-dia
Testes Unitários: Começando a escrever testes no seu dia-a-diaAlex Tercete
 
Greenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaGreenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaRafael Ponte
 
Spring roo produtividade no java
Spring roo produtividade no javaSpring roo produtividade no java
Spring roo produtividade no javaPedro Cavalero
 
Como aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeComo aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeWende Mendes
 
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
 
Implementando Implementando eXtreme treme Programming rogramming em em Java Java
Implementando Implementando eXtreme treme Programming rogramming em em Java JavaImplementando Implementando eXtreme treme Programming rogramming em em Java Java
Implementando Implementando eXtreme treme Programming rogramming em em Java Javaelliando dias
 
Por que você não escreve Testes Unitários?
Por que você não escreve Testes Unitários?Por que você não escreve Testes Unitários?
Por que você não escreve Testes Unitários?Alex Tercete
 
Unit Test JavaScript
Unit Test JavaScriptUnit Test JavaScript
Unit Test JavaScriptDan Vitoriano
 
TDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fislTDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fislAdriano Petrich
 
Navegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo javaNavegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo javaAndrei Tognolo
 
Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012Adriano Bertucci
 
Meus 50 Cents sobre Teste de Software
Meus 50 Cents sobre Teste de SoftwareMeus 50 Cents sobre Teste de Software
Meus 50 Cents sobre Teste de SoftwareVanilton Pinheiro
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end seleniumQualister
 

Semelhante a TDD para Java EE: Teste-Driven Development (20)

Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALM
 
Testes Unitários: Começando a escrever testes no seu dia-a-dia
Testes Unitários: Começando a escrever testes no seu dia-a-diaTestes Unitários: Começando a escrever testes no seu dia-a-dia
Testes Unitários: Começando a escrever testes no seu dia-a-dia
 
Greenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaGreenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresa
 
Testes unitários e Mocks
Testes unitários e MocksTestes unitários e Mocks
Testes unitários e Mocks
 
Spring roo produtividade no java
Spring roo produtividade no javaSpring roo produtividade no java
Spring roo produtividade no java
 
TDC 2011 Trilha de Teste
TDC 2011 Trilha de TesteTDC 2011 Trilha de Teste
TDC 2011 Trilha de Teste
 
Como aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeComo aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipe
 
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
 
Implementando Implementando eXtreme treme Programming rogramming em em Java Java
Implementando Implementando eXtreme treme Programming rogramming em em Java JavaImplementando Implementando eXtreme treme Programming rogramming em em Java Java
Implementando Implementando eXtreme treme Programming rogramming em em Java Java
 
Por que você não escreve Testes Unitários?
Por que você não escreve Testes Unitários?Por que você não escreve Testes Unitários?
Por que você não escreve Testes Unitários?
 
Be React. Do Tests!
Be React. Do Tests!Be React. Do Tests!
Be React. Do Tests!
 
Unit Test JavaScript
Unit Test JavaScriptUnit Test JavaScript
Unit Test JavaScript
 
TDD com Python (Completo)
TDD com Python (Completo)TDD com Python (Completo)
TDD com Python (Completo)
 
TDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fislTDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fisl
 
Navegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo javaNavegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo java
 
Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012
 
Meus 50 Cents sobre Teste de Software
Meus 50 Cents sobre Teste de SoftwareMeus 50 Cents sobre Teste de Software
Meus 50 Cents sobre Teste de Software
 
Testes - Para que?
Testes - Para que?Testes - Para que?
Testes - Para que?
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end selenium
 
Teste Driven Development
Teste Driven DevelopmentTeste Driven Development
Teste Driven Development
 

Mais de Dairton Bassi

Como se tornar um Agile Jedi
Como se tornar um Agile JediComo se tornar um Agile Jedi
Como se tornar um Agile JediDairton Bassi
 
Atingindo Objetivos com OKRs
Atingindo Objetivos com OKRsAtingindo Objetivos com OKRs
Atingindo Objetivos com OKRsDairton Bassi
 
Melhores práticas para reuniões altamente eficazes
Melhores práticas para reuniões altamente eficazesMelhores práticas para reuniões altamente eficazes
Melhores práticas para reuniões altamente eficazesDairton Bassi
 
Práticas do Extreme Agile
Práticas do Extreme AgilePráticas do Extreme Agile
Práticas do Extreme AgileDairton Bassi
 
Práticas do Extreme Agile
Práticas do Extreme AgilePráticas do Extreme Agile
Práticas do Extreme AgileDairton Bassi
 
Combinando MVPs e Continuous Delivery com Análise de Negócios
Combinando MVPs e Continuous Delivery com Análise de NegóciosCombinando MVPs e Continuous Delivery com Análise de Negócios
Combinando MVPs e Continuous Delivery com Análise de NegóciosDairton Bassi
 
Estatísticas do Agile Trends 2013
Estatísticas do Agile Trends 2013Estatísticas do Agile Trends 2013
Estatísticas do Agile Trends 2013Dairton Bassi
 
Entendendo Scrum, Kanban e Programação Extrema
Entendendo Scrum, Kanban e Programação ExtremaEntendendo Scrum, Kanban e Programação Extrema
Entendendo Scrum, Kanban e Programação ExtremaDairton Bassi
 
Abertura AgileBrazil 2012
Abertura AgileBrazil 2012Abertura AgileBrazil 2012
Abertura AgileBrazil 2012Dairton Bassi
 
Como manter sua equipe produtiva e motivada
Como manter sua equipe produtiva e motivadaComo manter sua equipe produtiva e motivada
Como manter sua equipe produtiva e motivadaDairton Bassi
 

Mais de Dairton Bassi (11)

Como se tornar um Agile Jedi
Como se tornar um Agile JediComo se tornar um Agile Jedi
Como se tornar um Agile Jedi
 
Atingindo Objetivos com OKRs
Atingindo Objetivos com OKRsAtingindo Objetivos com OKRs
Atingindo Objetivos com OKRs
 
Melhores práticas para reuniões altamente eficazes
Melhores práticas para reuniões altamente eficazesMelhores práticas para reuniões altamente eficazes
Melhores práticas para reuniões altamente eficazes
 
Práticas do Extreme Agile
Práticas do Extreme AgilePráticas do Extreme Agile
Práticas do Extreme Agile
 
Práticas do Extreme Agile
Práticas do Extreme AgilePráticas do Extreme Agile
Práticas do Extreme Agile
 
Combinando MVPs e Continuous Delivery com Análise de Negócios
Combinando MVPs e Continuous Delivery com Análise de NegóciosCombinando MVPs e Continuous Delivery com Análise de Negócios
Combinando MVPs e Continuous Delivery com Análise de Negócios
 
Estatísticas do Agile Trends 2013
Estatísticas do Agile Trends 2013Estatísticas do Agile Trends 2013
Estatísticas do Agile Trends 2013
 
Entendendo Scrum, Kanban e Programação Extrema
Entendendo Scrum, Kanban e Programação ExtremaEntendendo Scrum, Kanban e Programação Extrema
Entendendo Scrum, Kanban e Programação Extrema
 
Abertura AgileBrazil 2012
Abertura AgileBrazil 2012Abertura AgileBrazil 2012
Abertura AgileBrazil 2012
 
Como manter sua equipe produtiva e motivada
Como manter sua equipe produtiva e motivadaComo manter sua equipe produtiva e motivada
Como manter sua equipe produtiva e motivada
 
O sistema Kanban
O sistema KanbanO sistema Kanban
O sistema Kanban
 

TDD para Java EE: Teste-Driven Development