SlideShare uma empresa Scribd logo
Autores:
Claudenir Freitas (claudenir.machado@sensedia.com)
Jhonas Mutton (jhonas.mutton@sensedia.com)
Data: 11/09/2019
Testes de integração em
Microservices
1
● INTRODUÇÃO
● TESTES UNITÁRIOS
● MOCK, EMBEDDED, COMO TESTAR?
● TESTES DE INTEGRAÇÃO
● DEMO
AGENDA
● BÔNUS: GRAAL VM
CLAUDENIR JHONAS
Introdução
1INTRODUÇÃO
Por que testamos nossas aplicações?
1INTRODUÇÃO
1INTRODUÇÃO
1NÃO PERCA O CONTROLE
1INTRODUÇÃO
1INTRODUÇÃO
Database
1INTRODUÇÃO
Database
1INTRODUÇÃO
Database
1INTRODUÇÃO
Database
1INTRODUÇÃO
Database
1INTRODUÇÃO
Database
“Show me the code!
“Show me the code!
numbers!
1INTRODUÇÃO
Ecossistema do dev: https://www.jetbrains.com/lp/devecosystem-2019/
Testes unitários
1CLASSE DE SERVIÇO: COMO TESTAR?
1TESTE UNITÁRIO BÁSICO
1OK, MAS E AGORA?
1MOCK REPOSITORY
1DATABASE EMBEDDED
Testes de integração
1INTRODUÇÃO
Mas por que fazer testes de integração?
Resource
layer
Service
layer
1INTRODUÇÃO
1TESTES DE INTEGRAÇÃO
● testes unitários garantem apenas as unidades isoladamente
1TESTES DE INTEGRAÇÃO
● testes unitários garantem apenas as unidades isoladamente
● muitos erros podem ocorrer ao interagir com outras partes/sistemas
1TESTES DE INTEGRAÇÃO
● testes unitários garantem apenas as unidades isoladamente
● muitos erros podem ocorrer ao interagir com outras partes/sistemas
● mockar pode não refletir a realidade
1TESTES DE INTEGRAÇÃO
● testes unitários garantem apenas as unidades isoladamente
● muitos erros podem ocorrer ao interagir com outras partes/sistemas
● mockar pode não refletir a realidade
● validar a integração apenas em produção pode custar caro
1TESTES DE INTEGRAÇÃO
Como fazer?
1COMO ENTREGAMOS EM PRODUÇÃO?
1COMO ENTREGAMOS EM PRODUÇÃO?
1COMO ENTREGAMOS EM PRODUÇÃO?
Database
1COMO ENTREGAMOS EM PRODUÇÃO?
Database
1COMO ENTREGAMOS EM PRODUÇÃO?
Database
1TESTES DE INTEGRAÇÃO
Database
1TESTES DE INTEGRAÇÃO
Database
1TESTES DE INTEGRAÇÃO
Database
1TESTES DE INTEGRAÇÃO
Por que fazer?
1TESTES DE INTEGRAÇÃO
1TESTES DE INTEGRAÇÃO
1TESTCONTAINERS
● biblioteca Java para utilizar containers no contexto de aplicação
1TESTCONTAINERS
● biblioteca Java para utilizar containers no contexto de aplicação
● casos de uso:
1TESTCONTAINERS
● biblioteca Java para utilizar containers no contexto de aplicação
● casos de uso:
○ Data access layer integration tests
1TESTCONTAINERS
● biblioteca Java para utilizar containers no contexto de aplicação
● casos de uso:
○ Data access layer integration tests
○ Application integration tests
1TESTCONTAINERS
● biblioteca Java para utilizar containers no contexto de aplicação
● casos de uso:
○ Data access layer integration tests
○ Application integration tests
○ Acceptance tests
1TESTCONTAINERS
● biblioteca Java para utilizar containers no contexto de aplicação
● casos de uso:
○ Data access layer integration tests
○ Application integration tests
○ Acceptance tests
e muito mais!
1TESTCONTAINERS - ARQUITETURA
1TESTCONTAINERS - ARQUITETURA
1TESTCONTAINERS - ARQUITETURA
1TESTCONTAINERS - ARQUITETURA
1TESTCONTAINERS - ARQUITETURA
1TESTCONTAINERS - ARQUITETURA
1TESTCONTAINERS - ARQUITETURA
1LINGUAGENS SUPORTADAS
1MÓDULOS
1MÓDULOS
1MÓDULOS
1It’s demo time!
Conclusão
1TestContainers: Alguns prós e contras
● simplista
● extensível
● projeto open source
● projeto ativo
● estratégia container up
● sintaxe para rodar o initScript
● linguagens suportadas
Reflexão
1Reflexão
GraalVM
1GraalVM: Alguns prós e contras
Compila em linguagem de máquina o/
● Sobe rápido
● Não precisa da JVM
● Usa pouco recurso
● Não suporta Hikari
● Não suporta banco de dados embedded (h2)
● Artefato final grande (80 MB vs 800 KB)
● Compilação demora e exige muita memória
● Não suporta ehCache
● Problemas com reflection
● Não compila com MySQL (Quarkus 0.19.1)
...
Muito
agradecido!
1CONTEÚDOS INTERESSANTES
Testcontainers
https://www.testcontainers.org/
Quarkus: Supersonic Subatomic Java
https://quarkus.io/
GraalVM
https://www.graalvm.org/
Github do projeto (sugestões são welcome!)
https://github.com/ClaudenirFreitas/quarkus-microservice-test
CLAUDENIR JHONAS
@claudenir_cf @jhonas633
CLAUDENIR JHONAS
@claudenir_cf @jhonas633

Mais conteúdo relacionado

Mais procurados

3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva 3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva minastestingconference
 
Testes unitários como ferramentas de design de código
Testes unitários como ferramentas de design de códigoTestes unitários como ferramentas de design de código
Testes unitários como ferramentas de design de códigoPaula Grangeiro
 
Django - A sua cápsula de soluções web em python
Django - A sua cápsula de soluções web em pythonDjango - A sua cápsula de soluções web em python
Django - A sua cápsula de soluções web em pythonPaula Grangeiro
 
Como melhoramos a performance dos testes automatizados com py.test e factoryboy
Como melhoramos a performance dos testes automatizados com py.test e factoryboyComo melhoramos a performance dos testes automatizados com py.test e factoryboy
Como melhoramos a performance dos testes automatizados com py.test e factoryboyLeonardo Galani
 
Tdc2014 - Guia do Tester Técnico das Galáxias
Tdc2014 - Guia do Tester Técnico das GaláxiasTdc2014 - Guia do Tester Técnico das Galáxias
Tdc2014 - Guia do Tester Técnico das GaláxiasLeonardo Galani
 
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...As Zone
 
PHPUnit e teste de software
PHPUnit e teste de softwarePHPUnit e teste de software
PHPUnit e teste de softwarericardophp
 
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...Rogério Moraes de Carvalho
 
Testando Aplicações Django: Quando, Como e Onde?
Testando Aplicações Django: Quando, Como e Onde?Testando Aplicações Django: Quando, Como e Onde?
Testando Aplicações Django: Quando, Como e Onde?Bernardo Fontes
 
Ferramenta Flow - Análise estática de códigos javascript
Ferramenta Flow - Análise estática de códigos javascriptFerramenta Flow - Análise estática de códigos javascript
Ferramenta Flow - Análise estática de códigos javascriptRodrigo Ferreira
 
Testes com javascript
Testes com javascriptTestes com javascript
Testes com javascriptLaís Lima
 
Django Channels - Aplicações real time com Django
Django Channels - Aplicações real time com DjangoDjango Channels - Aplicações real time com Django
Django Channels - Aplicações real time com DjangoPaula Grangeiro
 
TDD em JavaScript, rola?
TDD em JavaScript, rola?TDD em JavaScript, rola?
TDD em JavaScript, rola?Renan Siravegna
 
Testes e depuração de código com Python
Testes e depuração de código com PythonTestes e depuração de código com Python
Testes e depuração de código com PythonDorneles Treméa
 
TDC2016POA | Trilha JavaScript - Porque eu deveria usar TypeScript?
TDC2016POA | Trilha JavaScript - Porque eu deveria usar TypeScript?TDC2016POA | Trilha JavaScript - Porque eu deveria usar TypeScript?
TDC2016POA | Trilha JavaScript - Porque eu deveria usar TypeScript?tdc-globalcode
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...minastestingconference
 
Incluindo Ferramentas de Segurança no Pipeline
Incluindo Ferramentas de Segurança no PipelineIncluindo Ferramentas de Segurança no Pipeline
Incluindo Ferramentas de Segurança no PipelineClaudio Romao
 

Mais procurados (19)

3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva 3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
 
Testes unitários como ferramentas de design de código
Testes unitários como ferramentas de design de códigoTestes unitários como ferramentas de design de código
Testes unitários como ferramentas de design de código
 
Django - A sua cápsula de soluções web em python
Django - A sua cápsula de soluções web em pythonDjango - A sua cápsula de soluções web em python
Django - A sua cápsula de soluções web em python
 
Como melhoramos a performance dos testes automatizados com py.test e factoryboy
Como melhoramos a performance dos testes automatizados com py.test e factoryboyComo melhoramos a performance dos testes automatizados com py.test e factoryboy
Como melhoramos a performance dos testes automatizados com py.test e factoryboy
 
Tdc2014 - Guia do Tester Técnico das Galáxias
Tdc2014 - Guia do Tester Técnico das GaláxiasTdc2014 - Guia do Tester Técnico das Galáxias
Tdc2014 - Guia do Tester Técnico das Galáxias
 
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
 
PHPUnit e teste de software
PHPUnit e teste de softwarePHPUnit e teste de software
PHPUnit e teste de software
 
TDD com Python
TDD com PythonTDD com Python
TDD com Python
 
Jclouds jug vale
Jclouds jug valeJclouds jug vale
Jclouds jug vale
 
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
 
Testando Aplicações Django: Quando, Como e Onde?
Testando Aplicações Django: Quando, Como e Onde?Testando Aplicações Django: Quando, Como e Onde?
Testando Aplicações Django: Quando, Como e Onde?
 
Ferramenta Flow - Análise estática de códigos javascript
Ferramenta Flow - Análise estática de códigos javascriptFerramenta Flow - Análise estática de códigos javascript
Ferramenta Flow - Análise estática de códigos javascript
 
Testes com javascript
Testes com javascriptTestes com javascript
Testes com javascript
 
Django Channels - Aplicações real time com Django
Django Channels - Aplicações real time com DjangoDjango Channels - Aplicações real time com Django
Django Channels - Aplicações real time com Django
 
TDD em JavaScript, rola?
TDD em JavaScript, rola?TDD em JavaScript, rola?
TDD em JavaScript, rola?
 
Testes e depuração de código com Python
Testes e depuração de código com PythonTestes e depuração de código com Python
Testes e depuração de código com Python
 
TDC2016POA | Trilha JavaScript - Porque eu deveria usar TypeScript?
TDC2016POA | Trilha JavaScript - Porque eu deveria usar TypeScript?TDC2016POA | Trilha JavaScript - Porque eu deveria usar TypeScript?
TDC2016POA | Trilha JavaScript - Porque eu deveria usar TypeScript?
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
 
Incluindo Ferramentas de Segurança no Pipeline
Incluindo Ferramentas de Segurança no PipelineIncluindo Ferramentas de Segurança no Pipeline
Incluindo Ferramentas de Segurança no Pipeline
 

Semelhante a Testes de integração em microservices

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
 
Teste de Integração - Unidade III
Teste de Integração - Unidade IIITeste de Integração - Unidade III
Teste de Integração - Unidade IIIJoão Lourenço
 
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeAndré Abe Vicente
 
Java enterprise - testcontainers
Java enterprise - testcontainersJava enterprise - testcontainers
Java enterprise - testcontainersSandro Giacomozzi
 
TDC2018SP | Trilha Java Enterprise - Facilitando os testes de integracao com ...
TDC2018SP | Trilha Java Enterprise - Facilitando os testes de integracao com ...TDC2018SP | Trilha Java Enterprise - Facilitando os testes de integracao com ...
TDC2018SP | Trilha Java Enterprise - Facilitando os testes de integracao com ...tdc-globalcode
 
Android: testes automatizados e TDD
Android: testes automatizados e TDDAndroid: testes automatizados e TDD
Android: testes automatizados e TDDDextra
 
Teste de Software - Especialização Univem
Teste de Software - Especialização UnivemTeste de Software - Especialização Univem
Teste de Software - Especialização UnivemAndré Abe Vicente
 
Testes de unidade - RP Tec Com
Testes de unidade - RP Tec ComTestes de unidade - RP Tec Com
Testes de unidade - RP Tec ComIgor Rozani
 
6. apresentacao rp tec com 2018 igor rozani e felipe muniz
6. apresentacao rp tec com 2018 igor rozani e felipe muniz6. apresentacao rp tec com 2018 igor rozani e felipe muniz
6. apresentacao rp tec com 2018 igor rozani e felipe munizMatheus de Lara Calache
 
Gerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2aGerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2aLeonardo Molinari
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsSamanta Cicilia
 
PDC - Testes - Usando o Testlink
PDC - Testes - Usando o TestlinkPDC - Testes - Usando o Testlink
PDC - Testes - Usando o Testlinkslides_teltools
 
TDC 2014 - Trilha de Testes - Palestra "Quando meus testes terminam, se os b...
TDC 2014  - Trilha de Testes - Palestra "Quando meus testes terminam, se os b...TDC 2014  - Trilha de Testes - Palestra "Quando meus testes terminam, se os b...
TDC 2014 - Trilha de Testes - Palestra "Quando meus testes terminam, se os b...Welington Monteiro
 
TDCPOA2018 - Trilha Python - Testes de Performance com Locust
TDCPOA2018 - Trilha Python - Testes de Performance com LocustTDCPOA2018 - Trilha Python - Testes de Performance com Locust
TDCPOA2018 - Trilha Python - Testes de Performance com LocustMayara Fernandes
 
DNAD 2009 - Injeção de Dependência (por Leandro Daniel)
DNAD 2009 - Injeção de Dependência (por Leandro Daniel)DNAD 2009 - Injeção de Dependência (por Leandro Daniel)
DNAD 2009 - Injeção de Dependência (por Leandro Daniel)Leandro Daniel
 
Palestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitPalestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitRobinson Castilho
 
Quando tdd não é o suficiente
Quando tdd não é o suficienteQuando tdd não é o suficiente
Quando tdd não é o suficienteCamilo Ribeiro
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Diego Pacheco
 
Testes O que são e para que servem? - LadyTalks
Testes O que são e para que servem? - LadyTalksTestes O que são e para que servem? - LadyTalks
Testes O que são e para que servem? - LadyTalksDiana Ungaro Arnos
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiMayara Fernandes
 

Semelhante a Testes de integração em microservices (20)

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 ...
 
Teste de Integração - Unidade III
Teste de Integração - Unidade IIITeste de Integração - Unidade III
Teste de Integração - Unidade III
 
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
 
Java enterprise - testcontainers
Java enterprise - testcontainersJava enterprise - testcontainers
Java enterprise - testcontainers
 
TDC2018SP | Trilha Java Enterprise - Facilitando os testes de integracao com ...
TDC2018SP | Trilha Java Enterprise - Facilitando os testes de integracao com ...TDC2018SP | Trilha Java Enterprise - Facilitando os testes de integracao com ...
TDC2018SP | Trilha Java Enterprise - Facilitando os testes de integracao com ...
 
Android: testes automatizados e TDD
Android: testes automatizados e TDDAndroid: testes automatizados e TDD
Android: testes automatizados e TDD
 
Teste de Software - Especialização Univem
Teste de Software - Especialização UnivemTeste de Software - Especialização Univem
Teste de Software - Especialização Univem
 
Testes de unidade - RP Tec Com
Testes de unidade - RP Tec ComTestes de unidade - RP Tec Com
Testes de unidade - RP Tec Com
 
6. apresentacao rp tec com 2018 igor rozani e felipe muniz
6. apresentacao rp tec com 2018 igor rozani e felipe muniz6. apresentacao rp tec com 2018 igor rozani e felipe muniz
6. apresentacao rp tec com 2018 igor rozani e felipe muniz
 
Gerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2aGerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2a
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOps
 
PDC - Testes - Usando o Testlink
PDC - Testes - Usando o TestlinkPDC - Testes - Usando o Testlink
PDC - Testes - Usando o Testlink
 
TDC 2014 - Trilha de Testes - Palestra "Quando meus testes terminam, se os b...
TDC 2014  - Trilha de Testes - Palestra "Quando meus testes terminam, se os b...TDC 2014  - Trilha de Testes - Palestra "Quando meus testes terminam, se os b...
TDC 2014 - Trilha de Testes - Palestra "Quando meus testes terminam, se os b...
 
TDCPOA2018 - Trilha Python - Testes de Performance com Locust
TDCPOA2018 - Trilha Python - Testes de Performance com LocustTDCPOA2018 - Trilha Python - Testes de Performance com Locust
TDCPOA2018 - Trilha Python - Testes de Performance com Locust
 
DNAD 2009 - Injeção de Dependência (por Leandro Daniel)
DNAD 2009 - Injeção de Dependência (por Leandro Daniel)DNAD 2009 - Injeção de Dependência (por Leandro Daniel)
DNAD 2009 - Injeção de Dependência (por Leandro Daniel)
 
Palestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitPalestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnit
 
Quando tdd não é o suficiente
Quando tdd não é o suficienteQuando tdd não é o suficiente
Quando tdd não é o suficiente
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1
 
Testes O que são e para que servem? - LadyTalks
Testes O que são e para que servem? - LadyTalksTestes O que são e para que servem? - LadyTalks
Testes O que são e para que servem? - LadyTalks
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
 

Testes de integração em microservices