Slide 1

Slide 1 text

Como a nuvem pode te ajudar na qualidade da sua aplicação @eliasnogueira

Slide 2

Slide 2 text

Elias Nogueira Eu ajudo engenheiros de software (backend, frontend, qa) a desenvolver a mentalidade de qualidade e entregar software livre de erros para se tornarem melhores e serem contratados para as melhores posições no mercado. 🏢 Backbase 👨💻 Principal Software Engineer 📍 Utrecht, the Netherlands 🌐 eliasnogueira.com 🐦 @eliasnogueira bit.ly/eliasnogueira

Slide 3

Slide 3 text

Definições importantes Conceituação Web, Mobile e Performance Dicas de como usar a nuvem para estes tipos de teste Ambientes Como podemos criar ambientes efêmeros 01 02 03 Agenda

Slide 4

Slide 4 text

Cloud Testing

Slide 5

Slide 5 text

Utilização de infraestrutura na nuvem para ações relacionadas a teste de software, desde a disponibilização de ferramentas que darão o suporte necessário ao ciclo de vida do desenvolvimento, bem como à execução de testes em qualquer nível.

Slide 6

Slide 6 text

Cloud Testing Os recursos que utilizaremos na nuvem podem variar • hardware • software • infraestrutura A sua adoção nos ajuda a acelerar a adoção e uso de práticas de qualidade de software de forma escalar e sob demanda.

Slide 7

Slide 7 text

Cloud Testing Environment Uma das formas mais efetivas de reduzir tempo e dinheiro em infraestruturas de teste é migrando o ambiente para a nuvem. Há duas pré-condições para que essa redução seja efetiva, bem como para o bom uso desses ambientes: • testes automatizados • automação da infraestrutura

Slide 8

Slide 8 text

Benefícios Customização Ao invés de investimento em hardware, podemos customizar qualquer tipo de serviço na nuvem para comportar as mudanças necessárias. Diminuição de custos Muitos servidores de teste não precisam executar 24x7, apenas sob demanda, diminuindo os custos de utilização da infraestrutura para testes. Escalabilidade Podemos facilmente escalar containers ou servidores e gerar diferentes versões para ações preventivas ou corretivas.

Slide 9

Slide 9 text

Passo para o possível sucesso Defina o seu entendimento de Cloud Construa sua Estratégia de Teste Planeja a sua infraestrutura Selecione provedores Execute os testes Monitore e Analise os resultados

Slide 10

Slide 10 text

Web Como dar velocidade no feedback do desenvolvimento e teste em web apps

Slide 11

Slide 11 text

Principais problemas sobre teste em web apps A fragmentação de browser e diferentes resoluções torna os testes torna a execução de teste mais lenta dada a gama de cobertura que deve ser aplicada. Smartphones > Tablets > Notebooks. > Desktops

Slide 12

Slide 12 text

Tipos de Teste Podemos ter a ajuda da nuvem para cobrir alguns tipos de teste para a web app: • Funcional / E2E • Visual Regression Test • Compatibilidade (browser/SO/resolução)

Slide 13

Slide 13 text

Possíveis adoções Utilizando máquinas reais utilizando combinações de SO, versão do browser e resolução Criação de uma grid local, com o uso de containers, para dar velocidade Nuvem Local 01 02

Slide 14

Slide 14 text

Script de Teste Envia Capacidades HUB Entende a capacidade e envia para o nó correto { so: “Linux” browser:”chrome” screenSize: “1200x800” } Funcionamento geral

Slide 15

Slide 15 text

Principais provedores SourceLabs https://saucelabs.com Browserstack https://www.browserstack.com LambdaTest https://www.lambdatest.com

Slide 16

Slide 16 text

Benefícios Maior cobertura Correção de bugs Feedback Podemos, facilmente, cobrir versões, tamanho de tela e diferentes browsers Podemos re-testar na mesma combinação do usuário Podemos executar o mesmo teste em diferentes dispositivos paralelamente

Slide 17

Slide 17 text

Performance Simulação infinita de usuários... (será?)

Slide 18

Slide 18 text

Principal problema sobre teste de performance Existem vários desafios de forma local: • replicação do ambiente de produção • máquinas locais para controlar a distribuir carga Muitas empresas acabam ou não executando ou efetuando em um subset menor, que pode não trazer o resultado real.

Slide 19

Slide 19 text

Possíveis adoções Utilizando um provedor ou mesmo adorando a solução 01 na nuvem Criar containers para o gerenciamento e distribuição de carga Nuvem Local 01 02

Slide 20

Slide 20 text

Como implementar uma solução na nuvem sem um provedor específico Cloud Provider Main Distributor 1 Distributor 2 Distributor 3 https://www.blazemeter.com/blog/jmeter-distributed-testing-with-docker https://dragoscampean.medium.com/how-to-build-a-distributed-load-testing-infrastructure-with-aws-docker-and-jmeter-accf3c2aa3a3

Slide 21

Slide 21 text

Principais provedores Qualquer Cloud provider Implementando a solução apresentada anteriormente Blazemeter https://www.blazemeter.com Gatling https://gatling.io

Slide 22

Slide 22 text

Benefícios Maior carga Redução de custos Escala A quantidade de usuários será determinada pela aumento da infra A gosto com infraestrutura depende do número de usuários Podemos criar mais usuários, auto-escalar distribuidores ou qualquer outro recurso

Slide 23

Slide 23 text

Mobile Como dar velocidade no feedback do desenvolvimento e teste em mobile apps

Slide 24

Slide 24 text

Principal problema sobre teste em apps mobile A fragmentação de dispositivos torna a cobertura de testes para devices cada vez mais problemática. Android: 24,093+ devices diferentes* iOS: 7 iPhones – 14 iPads * OpenSignal report 2015: https://www.opensignal.com/sites/opensignal-com/files/data/reports/global/data-2015- 08/2015_08_fragmentation_report.pdf

Slide 25

Slide 25 text

Possíveis adoções Utilizando dispositivos reais sob demanda sem a necessidade possui-los Diretamente em dispositivos físicos de forma singular ou em uma grid Nuvem Local 01 02

Slide 26

Slide 26 text

Funcionamento geral Script de Teste Envia Capacidades HUB Entende a capacidade e envia para o nó correto { device:”iphone12-mini” }

Slide 27

Slide 27 text

Principais provedores Soucelabs https://saucelabs.com Browserstack https://www.browserstack.com Perfecto https://www.perfecto.io

Slide 28

Slide 28 text

Benefícios Maior cobertura Correção de bugs Feedback Podemos, facilmente, cobrir os dispositivos mais utilizados Podemos testar aquele problema no Galaxy S2 mini Podemos executar o mesmo teste em diferentes dispositivos paralelamente

Slide 29

Slide 29 text

Ambientes Podemos criar ambientes (se nossa app for cloud native)

Slide 30

Slide 30 text

Conceituação Com a adoção da abordagem de cloud native podemos criar ambientes baseados “em qualquer coisa” que faça sentido: • commit • branch • versão

Slide 31

Slide 31 text

Aplicação Cloud Native Aplicação Cloud Native Aplicação Cloud Native Container gerado a partir de: • commit • branch • versão Obtenção e orquestração das apps Disponibilização em um provedor High-Level Diagram

Slide 32

Slide 32 text

CREDITS: This presentation template was created by Slidesgo, including icons by Flaticon, infographics & images by Freepik and illustrations by Stories Obrigado! eliasnogueira