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

Testando serviços aws localmente com Localstack e JUnit

  • 1.
    R O DR 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 soueu? • 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 DIZERSOBRE TESTES DE SOFTWARE? • É algo que nos preocupamos desde …. 1995 4
  • 5.
    O QUE DIZERSOBRE TESTES DE SOFTWARE? • Não pera…..1975! 5
  • 6.
    O QUE DIZERSOBRE TESTES DE SOFTWARE? • Cada vez mais falamos sobre isso 6
  • 7.
    O QUE DIZERSOBRE 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 DIZERSOBRE 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 EDAÍ? (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 deexistir 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 sehouvesse uma única ferramenta que suportasse a simulação de todas as tecnologias da AWS? 12
  • 13.
    LOCALSTACK • Pode serinstalado localmente ou via docker • Integração com JUnit: • sobe o container com a infra necessária • roda os testes • derruba o container 13
  • 14.
  • 15.
    DEMO • Docker eclient 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
  • 17.
  • 18.