SlideShare uma empresa Scribd logo
R O D R I G O V I E I R A P I N T O
2 0 1 9
TESTANDO SERVIÇOS AWS LOCALMENTE
COM LOCALSTACK E JUNIT
1
AGENDA
• Quem sou eu?
• O que dizer sobre testes de software?
• Motivação
• O que já existe por ai?
• Localstack
• Demo
• Referências
2
QUEM SOU EU?
• Engenheiro de Software no Elo7
• Professor de Técnicas de Programação Web na Bandtec
• Instrutor nos cursos de Java na Caelum e Alura
• Mestre em Engenharia de Software - IPT
• Pós Graduado em Engenharia de Software - PUC
• Bacharel em Ciência da Computação - USJT
• Amante de software bem escrito ☺
3
O QUE DIZER SOBRE TESTES DE
SOFTWARE?
• É algo que nos preocupamos desde …. 1995
4
O QUE DIZER SOBRE TESTES DE
SOFTWARE?
• Não pera…..1975!
5
O QUE DIZER SOBRE TESTES DE
SOFTWARE?
• Cada vez mais falamos sobre isso
6
O QUE DIZER SOBRE TESTES DE
SOFTWARE?
• A academia também:
• TDD diminui em 50% a quantidade de erros encontrados em testes caixa-
preta
• 87,5% dos programadores acreditam que TDD facilitou o entendimento
dos requisitos
• 95,8% acreditam que TDD reduziu o tempo gasto com debug
• Resultados de projetos na Microsoft e IBM indicaram que o número de
defeitos de quatro produtos diminuiu entre 40% a 90%, mas aumentaram o
tempo inicial de desenvolvimento entre 15% a 35%
• Tres diferentes grupos de alunos (cada um deles usando uma abordagem
diferente: TDD, test-last e sem testes) mostrou que o código produzido pelo
time que fez TDD usou melhor conceitos de orientação a objetos e as
responsabilidades foram melhor separadas entre as classes, enquanto que
os outros times produziram um código mais procedural.
• Estudos com estudantes mostraram que o código produzido com TDD tem
45% menos defeitos e faz com que o programador se sinta mais a vontade
com ele
7
O QUE DIZER SOBRE TESTES DE
SOFTWARE?
• Podemos dizer que, no mínimo, testes são
importantes para que escrevamos cada vez menos
bugs!
• Mas mais do que isso: testes nos ajudam a
desenvolver software extensível e manutenível!
• Desenvolvimento Guiado por Testes é uma forma
de administrar o medo durante a programação -
Kenk Beck
• O júri chegou, a controvérsia acabou, GOTO é
prejudicial, e TDD funciona! - Robert C. Martin
8
TÁ, MAS E DAÍ? (OU: MOTIVAÇÃO)
AWS é líder quando o assunto é computação em nuvem
Existe desde 2006 (Grande know-how)
9
MOTIVAÇÃO
10
• Apesar de existir há mais de 10 anos, não possui
soluções que:
• favoreçam o desenvolvimento
local
• com testes automatizados
• e sem a necessidade de infra
estrutura externa
• custos que poderiam ser
evitados
O QUE JÁ EXISTE POR AI?
• Minio (para S3)
• DynamoDB (local)
• SQS-Local (para SQS)
• Outras ferramentas que suportam apenas uma ou
outra tecnologia específica da AWS
11
• E se houvesse uma única ferramenta que suportasse
a simulação de todas as tecnologias da AWS?
12
LOCALSTACK
• Pode ser instalado
localmente ou via
docker
• Integração com JUnit:
• sobe o container com a
infra necessária
• roda os testes
• derruba o container
13
LOCALSTACK
14
DEMO
• Docker e client Java;
• Integração com JUnit 4
• Versão 2 do SDK da AWS
15
REFERÊNCIAS
• http://localstack.cloud
• https://github.com/localstack/localstack
• http://gabrielfeitosa.com/simulando-aws-com-localstack
• https://docs.aws.amazon.com/sdk-for-java/v2/
developer-guide/s3-examples.html
• http://blog.locaweb.com.br/artigos/tecnologia/tdd-
realmente-ajuda/
16
ESTAMOS CONTRATANDO!
https://elo7.gupy.io/
17
Obrigado!
Contatos:
rodrigovieirapinto@gmail.com
br.linkedin.com/in/rodrigovp
@rvieirapinto
18

Mais conteúdo relacionado

Mais procurados

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
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)Renato Groff
 
Cafe agil em Recife - Agile and Design
Cafe agil em Recife - Agile and DesignCafe agil em Recife - Agile and Design
Cafe agil em Recife - Agile and DesignThoughtworks
 
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
 
Minas Testing Conference 2016 - Testes de Carga com Locust
Minas Testing Conference 2016 - Testes de Carga com LocustMinas Testing Conference 2016 - Testes de Carga com Locust
Minas Testing Conference 2016 - Testes de Carga com LocustStefan Teixeira
 
Teste Ágil - Fazendo pirâmides com node.js
Teste Ágil - Fazendo pirâmides com node.jsTeste Ágil - Fazendo pirâmides com node.js
Teste Ágil - Fazendo pirâmides com node.jsDiogo Andrade Miranda
 
DevSecOps: Não é simples, mas é possível!
DevSecOps: Não é simples, mas é possível!DevSecOps: Não é simples, mas é possível!
DevSecOps: Não é simples, mas é possível!Fabio Gomes Ferreira
 
DevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a QualidadeDevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a QualidadeKamilla Queiroz Xavier
 
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
 
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
 
TDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em voce
TDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em voceTDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em voce
TDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em vocetdc-globalcode
 
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
 
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
 
Semana da Computação UFRJ - Testes Automatizados: bruxaria ou não?
Semana da Computação UFRJ - Testes Automatizados: bruxaria ou não?Semana da Computação UFRJ - Testes Automatizados: bruxaria ou não?
Semana da Computação UFRJ - Testes Automatizados: bruxaria ou não?Stefan Teixeira
 
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
 

Mais procurados (20)

TDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVATDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVA
 
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
 
TDD
TDDTDD
TDD
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)
 
Cafe agil em Recife - Agile and Design
Cafe agil em Recife - Agile and DesignCafe agil em Recife - Agile and Design
Cafe agil em Recife - Agile and Design
 
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
 
Minas Testing Conference 2016 - Testes de Carga com Locust
Minas Testing Conference 2016 - Testes de Carga com LocustMinas Testing Conference 2016 - Testes de Carga com Locust
Minas Testing Conference 2016 - Testes de Carga com Locust
 
Teste automatizados e tdd
Teste automatizados e tddTeste automatizados e tdd
Teste automatizados e tdd
 
Teste Ágil - Fazendo pirâmides com node.js
Teste Ágil - Fazendo pirâmides com node.jsTeste Ágil - Fazendo pirâmides com node.js
Teste Ágil - Fazendo pirâmides com node.js
 
DevSecOps: Não é simples, mas é possível!
DevSecOps: Não é simples, mas é possível!DevSecOps: Não é simples, mas é possível!
DevSecOps: Não é simples, mas é possível!
 
DevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a QualidadeDevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a Qualidade
 
RealDay: Introduction to TDD
RealDay: Introduction to TDDRealDay: Introduction to TDD
RealDay: Introduction to TDD
 
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...
 
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
 
TDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em voce
TDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em voceTDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em voce
TDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em voce
 
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?
 
Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?
 
Semana da Computação UFRJ - Testes Automatizados: bruxaria ou não?
Semana da Computação UFRJ - Testes Automatizados: bruxaria ou não?Semana da Computação UFRJ - Testes Automatizados: bruxaria ou não?
Semana da Computação UFRJ - Testes Automatizados: bruxaria ou não?
 
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
 
Metralhando sua API
Metralhando sua APIMetralhando sua API
Metralhando sua API
 

Semelhante a Testando serviços aws localmente com Localstack e JUnit

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
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27Hélio Medeiros
 
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwarePesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwareAdolfo Neto
 
Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013André Borgonovo
 
Test-Driven Development - Introdução
Test-Driven Development - IntroduçãoTest-Driven Development - Introdução
Test-Driven Development - IntroduçãoHélio Costa e Silva
 
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
 
A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorMarcos Pereira
 
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
 
TDC 2016 SP - Desmistificando cobertura de código como métrica de qualidade
TDC 2016 SP - Desmistificando cobertura de código como métrica de qualidadeTDC 2016 SP - Desmistificando cobertura de código como métrica de qualidade
TDC 2016 SP - Desmistificando cobertura de código como métrica de qualidadeStefan Teixeira
 
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
 
Introdução a DevOps e Continuous delivery agileday
Introdução a DevOps e Continuous delivery   agiledayIntrodução a DevOps e Continuous delivery   agileday
Introdução a DevOps e Continuous delivery agiledayCarlos Felippe Cardoso
 
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
 
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian FerrariDrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian FerrariTaller Negócio Digitais
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do MantraDionatan default
 
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
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven DevelopmentOtavio Augusto
 

Semelhante a Testando serviços aws localmente com Localstack e JUnit (20)

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
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27
 
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwarePesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
 
Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013
 
Test-Driven Development - Introdução
Test-Driven Development - IntroduçãoTest-Driven Development - Introdução
Test-Driven Development - Introdução
 
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
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao Sênior
 
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
 
Introdução a TDD
Introdução a TDDIntrodução a TDD
Introdução a TDD
 
TDC 2016 SP - Desmistificando cobertura de código como métrica de qualidade
TDC 2016 SP - Desmistificando cobertura de código como métrica de qualidadeTDC 2016 SP - Desmistificando cobertura de código como métrica de qualidade
TDC 2016 SP - Desmistificando cobertura de código como métrica de qualidade
 
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
 
Introdução a DevOps e Continuous delivery agileday
Introdução a DevOps e Continuous delivery   agiledayIntrodução a DevOps e Continuous delivery   agileday
Introdução a DevOps e Continuous delivery agileday
 
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...
 
Criando uma Arquitetura Testável
Criando uma Arquitetura TestávelCriando uma Arquitetura Testável
Criando uma Arquitetura Testável
 
Testes de unidade - Conhecendo e aplicando
Testes de unidade - Conhecendo e aplicandoTestes de unidade - Conhecendo e aplicando
Testes de unidade - Conhecendo e aplicando
 
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian FerrariDrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do Mantra
 
Lightning talk Test-Driven Development - TDD
Lightning talk Test-Driven Development - TDDLightning talk Test-Driven Development - TDD
Lightning talk Test-Driven Development - TDD
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 

Testando serviços aws localmente com Localstack e JUnit

  • 1. R O D R I G O V I E I R A P I N T O 2 0 1 9 TESTANDO SERVIÇOS AWS LOCALMENTE COM LOCALSTACK E JUNIT 1
  • 2. AGENDA • Quem sou eu? • O que dizer sobre testes de software? • Motivação • O que já existe por ai? • Localstack • Demo • Referências 2
  • 3. QUEM SOU EU? • Engenheiro de Software no Elo7 • Professor de Técnicas de Programação Web na Bandtec • Instrutor nos cursos de Java na Caelum e Alura • Mestre em Engenharia de Software - IPT • Pós Graduado em Engenharia de Software - PUC • Bacharel em Ciência da Computação - USJT • Amante de software bem escrito ☺ 3
  • 4. O QUE DIZER SOBRE TESTES DE SOFTWARE? • É algo que nos preocupamos desde …. 1995 4
  • 5. O QUE DIZER SOBRE TESTES DE SOFTWARE? • Não pera…..1975! 5
  • 6. O QUE DIZER SOBRE TESTES DE SOFTWARE? • Cada vez mais falamos sobre isso 6
  • 7. O QUE DIZER SOBRE TESTES DE SOFTWARE? • A academia também: • TDD diminui em 50% a quantidade de erros encontrados em testes caixa- preta • 87,5% dos programadores acreditam que TDD facilitou o entendimento dos requisitos • 95,8% acreditam que TDD reduziu o tempo gasto com debug • Resultados de projetos na Microsoft e IBM indicaram que o número de defeitos de quatro produtos diminuiu entre 40% a 90%, mas aumentaram o tempo inicial de desenvolvimento entre 15% a 35% • Tres diferentes grupos de alunos (cada um deles usando uma abordagem diferente: TDD, test-last e sem testes) mostrou que o código produzido pelo time que fez TDD usou melhor conceitos de orientação a objetos e as responsabilidades foram melhor separadas entre as classes, enquanto que os outros times produziram um código mais procedural. • Estudos com estudantes mostraram que o código produzido com TDD tem 45% menos defeitos e faz com que o programador se sinta mais a vontade com ele 7
  • 8. O QUE DIZER SOBRE TESTES DE SOFTWARE? • Podemos dizer que, no mínimo, testes são importantes para que escrevamos cada vez menos bugs! • Mas mais do que isso: testes nos ajudam a desenvolver software extensível e manutenível! • Desenvolvimento Guiado por Testes é uma forma de administrar o medo durante a programação - Kenk Beck • O júri chegou, a controvérsia acabou, GOTO é prejudicial, e TDD funciona! - Robert C. Martin 8
  • 9. TÁ, MAS E DAÍ? (OU: MOTIVAÇÃO) AWS é líder quando o assunto é computação em nuvem Existe desde 2006 (Grande know-how) 9
  • 10. MOTIVAÇÃO 10 • Apesar de existir há mais de 10 anos, não possui soluções que: • favoreçam o desenvolvimento local • com testes automatizados • e sem a necessidade de infra estrutura externa • custos que poderiam ser evitados
  • 11. O QUE JÁ EXISTE POR AI? • Minio (para S3) • DynamoDB (local) • SQS-Local (para SQS) • Outras ferramentas que suportam apenas uma ou outra tecnologia específica da AWS 11
  • 12. • E se houvesse uma única ferramenta que suportasse a simulação de todas as tecnologias da AWS? 12
  • 13. LOCALSTACK • Pode ser instalado localmente ou via docker • Integração com JUnit: • sobe o container com a infra necessária • roda os testes • derruba o container 13
  • 15. DEMO • Docker e client Java; • Integração com JUnit 4 • Versão 2 do SDK da AWS 15
  • 16. REFERÊNCIAS • http://localstack.cloud • https://github.com/localstack/localstack • http://gabrielfeitosa.com/simulando-aws-com-localstack • https://docs.aws.amazon.com/sdk-for-java/v2/ developer-guide/s3-examples.html • http://blog.locaweb.com.br/artigos/tecnologia/tdd- realmente-ajuda/ 16