Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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.

Elias Nogueira

April 16, 2021
Tweet

More Decks by Elias Nogueira

Other Decks in Technology

Transcript

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

    View Slide

  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

    View Slide

  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

    View Slide

  4. Cloud
    Testing

    View Slide

  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.

    View Slide

  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.

    View Slide

  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

    View Slide

  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.

    View Slide

  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

    View Slide

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

    View Slide

  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

    View Slide

  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)

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

  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.

    View Slide

  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

    View Slide

  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

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

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

    View Slide