SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
http://www.flickr.com/photos/jacques_daigneault/3100967998/sizes/o/




 Testes de
Integração

       André Faria
http://www.flickr.com/photos/cuppini/3211910657/




 O que os
  testes
unitários
   não
resolvem?
http://www.flickr.com/photos/14646075@N03/3498450536/sizes/o/


   O que testar ?
      Ser vice Layer
     Domain Objects
         Aspects
      Web Tier Code
       SQL Queries
Interation with JEE APIs
http://www.flickr.com/photos/14646075@N03/3498450536/sizes/o/


        Non-Java Code
  Store Procedures / Scripts

        Database Schema
         Views, Triggers

Spring and Other Configurations
        XML, Properties

         O/R Mapping
     JSPs and Other Views
http://www.flickr.com/photos/sveinhal/2729087260/sizes/l/


Testando Código de Persistência


       O que não testar?
      Connections Leaks
  Use Spring JDBC, JPA, etc...

        O que testar?
       SQL, HQL, JP QL

      Testes Localizados
     DAO interface layer
http://www.flickr.com/photos/colorblindpicaso/3399410617/sizes/o/



Teste sem depender do
       servidor
                 + rápido
            Mesmo do que Tomcat ou Jetty



          Fácil de debugar

       Possibilidade de rodar
      testes individualmente

  Rode de sua IDE ou Build Script
Como o Spring pode te Ajudar com isso?
http://www.flickr.com/photos/dm-set/3846819118/sizes/l/


Spring Integration
Testing
O pacote org.springframework.test
(spring-mock.jar)


JUnit Superclasses

Spring Context Loading e Caching
Injeção de Dependências
http://www.flickr.com/photos/vgm8383/4061536522/sizes/l/


 Data Access e Transaction Management
 (Criação e Rollback Automático, você não
precisar escrever isso no setup e teardown)
http://www.flickr.com/photos/stephenpoff/2913508009/sizes/l/




 Alta Performance
Média de 100 à 1000
 testes por minuto
http://www.flickr.com/photos/soldiersmediacenter/4097699857/sizes/l/


                                    Teste Triggers,
                                      Sequences,
                                   Store Procedures,
                                   Código JDBC, etc.
Context Caching
bet ween many Test Cases

 Importante quando se usa
  Hibernate devido ao alto
custo da criação da Session
          Factory
http://www.flickr.com/photos/jamimages/121750129/sizes/l/



                     Você não
                 precisa alterar
                 absolutamente
                  nada nos seus
                   objetos DAO
                 entre os testes
                   e a entrega
http://www.flickr.com/photos/libraryman/95516793/



         Arquivo de
       Configuração do
      Spring específico
      para Testes para
         configurar
       Recursos como
       Banco de Dados
        por exemplo
Na Prática


       @RunWith(SpringJUnit4ClassRunner.class)

            @ContextConfiguration(locations =
      { "/applicationContext-resources-test.xml" })

    @TransactionConfiguration(defaultRollback = true)
http://www.flickr.com/photos/gavinbell/35378445/sizes/o/




                            “Nos Testes de
                         Integração sempre
                         que possível prefira
                           usar o banco de
                         dados real ao invés
                            de abordagens
                         baseadas em Java
                           DB ou HSQL DB”
http://www.flickr.com/photos/heypaul/107326157/sizes/l/




   Annotations
         @Timed(mills=1000)

                  @Repeat(5)

@ExpectedException(Exception.class)

            @DirtiesContext
      //Rebuild   the Context after the test
http://www.flickr.com/photos/heypaul/107326157/sizes/l/




+ Annotations
   @BeforeTransaction
       @Before
        @Test
       @After
  @AfterTransaction

  @NotTransactional
   @Rollback(false)
Entenda os diferentes tipos de
   testes e seus objetivos
Testes Unitários e Testes de
Integração não são exclusivos
Pirâmide de Testes
        Aceitação



      Integração


   Unitários
Aprofunde-se



Palestra do Rod Johnson no No Fluff Just Stuff Symposiums em 2007
http://www.infoq.com/presentations/system-integration-testing-with-spring
OBRIGADO

Mais conteúdo relacionado

Mais procurados

Aprendizagem por reforço
Aprendizagem por reforçoAprendizagem por reforço
Aprendizagem por reforço
Luís Nunes
 
Planejamento de Testes
Planejamento de TestesPlanejamento de Testes
Planejamento de Testes
elliando dias
 
Testes De Software - Uma Visão Geral
Testes De Software - Uma Visão GeralTestes De Software - Uma Visão Geral
Testes De Software - Uma Visão Geral
paulo peres
 

Mais procurados (20)

Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
 
Testing with JUnit 5 and Spring - Spring I/O 2022
Testing with JUnit 5 and Spring - Spring I/O 2022Testing with JUnit 5 and Spring - Spring I/O 2022
Testing with JUnit 5 and Spring - Spring I/O 2022
 
Aprendizagem por reforço
Aprendizagem por reforçoAprendizagem por reforço
Aprendizagem por reforço
 
ALM - Testes Exploratórios
ALM - Testes ExploratóriosALM - Testes Exploratórios
ALM - Testes Exploratórios
 
ATDD Using Robot Framework
ATDD Using Robot FrameworkATDD Using Robot Framework
ATDD Using Robot Framework
 
Code Quality in Ruby and Java
Code Quality in Ruby and JavaCode Quality in Ruby and Java
Code Quality in Ruby and Java
 
DevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágilDevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágil
 
Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
 
Plano de teste
Plano de testePlano de teste
Plano de teste
 
Planejamento de Testes
Planejamento de TestesPlanejamento de Testes
Planejamento de Testes
 
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet AgileLes cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
 
Testing with JUnit 5 and Spring
Testing with JUnit 5 and SpringTesting with JUnit 5 and Spring
Testing with JUnit 5 and Spring
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de Software
 
Aula - Teste de Software
Aula - Teste de SoftwareAula - Teste de Software
Aula - Teste de Software
 
TDD com Python (Completo)
TDD com Python (Completo)TDD com Python (Completo)
TDD com Python (Completo)
 
Testes De Software - Uma Visão Geral
Testes De Software - Uma Visão GeralTestes De Software - Uma Visão Geral
Testes De Software - Uma Visão Geral
 
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
 
Automação e virtualização de serviços
Automação e virtualização de serviçosAutomação e virtualização de serviços
Automação e virtualização de serviços
 

Semelhante a Testes de Integração

Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Allyson Barros
 
Spring + Tapestry Um novo paradigma de desenvolvimento web
Spring + Tapestry Um novo paradigma de desenvolvimento webSpring + Tapestry Um novo paradigma de desenvolvimento web
Spring + Tapestry Um novo paradigma de desenvolvimento web
elliando dias
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Framework
elliando dias
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias Web
Elenilson Vieira
 

Semelhante a Testes de Integração (20)

Power mock
Power mockPower mock
Power mock
 
Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018
 
Desenvolvimento Web com JSF
Desenvolvimento Web com JSFDesenvolvimento Web com JSF
Desenvolvimento Web com JSF
 
Testes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosTestes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizados
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com Python
 
Nem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot FrameworkNem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot Framework
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
 
Teste de Integração - Unidade III
Teste de Integração - Unidade IIITeste de Integração - Unidade III
Teste de Integração - Unidade III
 
Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Como escolher o Framework Java para web?
Como escolher o Framework Java para web?
 
JasperReports Tecnicas de geracao_de_relatorios1
JasperReports  Tecnicas de geracao_de_relatorios1JasperReports  Tecnicas de geracao_de_relatorios1
JasperReports Tecnicas de geracao_de_relatorios1
 
Apresentação sobre MVVMC
Apresentação sobre MVVMCApresentação sobre MVVMC
Apresentação sobre MVVMC
 
Spring + Tapestry Um novo paradigma de desenvolvimento web
Spring + Tapestry Um novo paradigma de desenvolvimento webSpring + Tapestry Um novo paradigma de desenvolvimento web
Spring + Tapestry Um novo paradigma de desenvolvimento web
 
Aula JPA
Aula JPAAula JPA
Aula JPA
 
Treinamento Testes Unitários - parte 2
Treinamento Testes Unitários - parte 2Treinamento Testes Unitários - parte 2
Treinamento Testes Unitários - parte 2
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Framework
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias Web
 
JavaScript Model-View no Frontend
JavaScript Model-View no FrontendJavaScript Model-View no Frontend
JavaScript Model-View no Frontend
 
Automação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e MobileAutomação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e Mobile
 
Cloudformation
CloudformationCloudformation
Cloudformation
 
Conceitos de Java Web
Conceitos de Java WebConceitos de Java Web
Conceitos de Java Web
 

Mais de André Faria Gomes

Mais de André Faria Gomes (20)

Meetup Escale - Gestão para Equipes de Alta Performance
Meetup Escale - Gestão para Equipes de Alta PerformanceMeetup Escale - Gestão para Equipes de Alta Performance
Meetup Escale - Gestão para Equipes de Alta Performance
 
Protagonistas da inovação - Como criar e gerir os negócios do futuro
Protagonistas da inovação - Como criar e gerir os negócios do futuroProtagonistas da inovação - Como criar e gerir os negócios do futuro
Protagonistas da inovação - Como criar e gerir os negócios do futuro
 
A Mobilidade como Propulsor da Transformação Digital
A Mobilidade como Propulsor da Transformação DigitalA Mobilidade como Propulsor da Transformação Digital
A Mobilidade como Propulsor da Transformação Digital
 
Além da Agilidade 2019 - KickOff Wow
Além da Agilidade 2019 - KickOff WowAlém da Agilidade 2019 - KickOff Wow
Além da Agilidade 2019 - KickOff Wow
 
Modern systems architectures: Uber, Lyft, Cabify
Modern systems architectures: Uber, Lyft, CabifyModern systems architectures: Uber, Lyft, Cabify
Modern systems architectures: Uber, Lyft, Cabify
 
Breaking the monolith
Breaking the monolithBreaking the monolith
Breaking the monolith
 
Agilidade - APAS
Agilidade - APASAgilidade - APAS
Agilidade - APAS
 
Principles and Radical Transparency - Lessons Learned from Ray Dalio
Principles and Radical Transparency - Lessons Learned from Ray DalioPrinciples and Radical Transparency - Lessons Learned from Ray Dalio
Principles and Radical Transparency - Lessons Learned from Ray Dalio
 
Bluesoft @ AWS re:Invent 2017 + AWS 101
Bluesoft @ AWS re:Invent 2017 + AWS 101Bluesoft @ AWS re:Invent 2017 + AWS 101
Bluesoft @ AWS re:Invent 2017 + AWS 101
 
Boas Práticas da Rede Supermercadista Wegmans
Boas Práticas da Rede Supermercadista WegmansBoas Práticas da Rede Supermercadista Wegmans
Boas Práticas da Rede Supermercadista Wegmans
 
Boas Práticas para Supermercadistas inspiradas no Whole Foods, Sprouts Marke...
Boas Práticas para Supermercadistas inspiradas no Whole Foods, Sprouts Marke...Boas Práticas para Supermercadistas inspiradas no Whole Foods, Sprouts Marke...
Boas Práticas para Supermercadistas inspiradas no Whole Foods, Sprouts Marke...
 
Change management - Kotter’s eight-step model
Change management - Kotter’s eight-step model Change management - Kotter’s eight-step model
Change management - Kotter’s eight-step model
 
Palestra na Uninove sobre Agilidade
Palestra na Uninove sobre AgilidadePalestra na Uninove sobre Agilidade
Palestra na Uninove sobre Agilidade
 
Pensando Rápido e Devagar
Pensando Rápido e DevagarPensando Rápido e Devagar
Pensando Rápido e Devagar
 
What happened to Google Reader?
What happened to Google Reader?What happened to Google Reader?
What happened to Google Reader?
 
Gestão Ágil com Management 3.0
Gestão Ágil com Management 3.0Gestão Ágil com Management 3.0
Gestão Ágil com Management 3.0
 
Lições aprendidas em 10 anos de agilidade
Lições aprendidas em 10 anos de agilidadeLições aprendidas em 10 anos de agilidade
Lições aprendidas em 10 anos de agilidade
 
Os 7 hábitos das pessoas altamente eficazes
Os 7 hábitos das pessoas altamente eficazesOs 7 hábitos das pessoas altamente eficazes
Os 7 hábitos das pessoas altamente eficazes
 
Objetividade: A Virtude Esquecida
Objetividade: A Virtude EsquecidaObjetividade: A Virtude Esquecida
Objetividade: A Virtude Esquecida
 
Bematech IFRS
Bematech IFRSBematech IFRS
Bematech IFRS
 

Testes de Integração