Share
Embed
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.
Elias Nogueira
April 16, 2021
Transcript
32 slides
-
Como a nuvem pode te ajudar na qualidade da sua
aplicação @eliasnogueira -
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 -
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 -
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. -
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. -
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 -
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. -
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 -
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 -
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) -
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 -
Script de Teste Envia Capacidades HUB Entende a capacidade e
envia para o nó correto { so: “Linux” browser:”chrome” screenSize: “1200x800” } Funcionamento geral -
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 -
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. -
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 -
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 -
Principais provedores Qualquer Cloud provider Implementando a solução apresentada anteriormente
Blazemeter https://www.blazemeter.com Gatling https://gatling.io -
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 -
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 -
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 -
Funcionamento geral Script de Teste Envia Capacidades HUB Entende a
capacidade e envia para o nó correto { device:”iphone12-mini” } -
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 -
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 -
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 -
CREDITS: This presentation template was created by Slidesgo, including icons
by Flaticon, infographics & images by Freepik and illustrations by Stories Obrigado! eliasnogueira