Save 37% off PRO during our Black Friday Sale! »

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

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

Palestra ministrada no Cloud Conference Day - Rio dia 16/04/2021 mostrando como a nuvem pode te ajudar na qualidade de sua aplicação com três focos específicos: web, mobile e performance.

Baaa72bd2671a244ba9211e015f72d28?s=128

Elias Nogueira

April 16, 2021
Tweet

Transcript

  1. Como a nuvem pode te ajudar na qualidade da sua

    aplicação @eliasnogueira
  2. 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
  3. 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
  4. Cloud Testing

  5. 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.
  6. 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.
  7. 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
  8. 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.
  9. 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
  10. Web Como dar velocidade no feedback do desenvolvimento e teste

    em web apps
  11. 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
  12. 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)
  13. 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
  14. Script de Teste Envia Capacidades HUB Entende a capacidade e

    envia para o nó correto { so: “Linux” browser:”chrome” screenSize: “1200x800” } Funcionamento geral
  15. Principais provedores SourceLabs https://saucelabs.com Browserstack https://www.browserstack.com LambdaTest https://www.lambdatest.com

  16. 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
  17. Performance Simulação infinita de usuários... (será?)

  18. 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.
  19. 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
  20. 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
  21. Principais provedores Qualquer Cloud provider Implementando a solução apresentada anteriormente

    Blazemeter https://www.blazemeter.com Gatling https://gatling.io
  22. 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
  23. Mobile Como dar velocidade no feedback do desenvolvimento e teste

    em mobile apps
  24. 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
  25. 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
  26. Funcionamento geral Script de Teste Envia Capacidades HUB Entende a

    capacidade e envia para o nó correto { device:”iphone12-mini” }
  27. Principais provedores Soucelabs https://saucelabs.com Browserstack https://www.browserstack.com Perfecto https://www.perfecto.io

  28. 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
  29. Ambientes Podemos criar ambientes (se nossa app for cloud native)

  30. 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
  31. 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
  32. CREDITS: This presentation template was created by Slidesgo, including icons

    by Flaticon, infographics & images by Freepik and illustrations by Stories Obrigado! eliasnogueira