Saltar para o conteúdo
BigTree108

Serviços de testes de desempenho e de carga

Serviços de testes de desempenho e de carga: testes de carga, de stress, de pico e de soak em k6, JMeter, Gatling e Locust, planeamento de capacidade antes de lançamentos e picos de vendas, análise de estrangulamentos no código, nas bases de dados e na infraestrutura, desempenho do front end e Core Web Vitals, e testes de desempenho em CI, com engenheiros de desempenho dedicados para a sua equipa ou projetos de testes de desempenho entregues de ponta a ponta.

Testes de desempenho que realizamos

  • Testes de carga

    O tráfego esperado, modelado a partir de registos de produção e de análises como percursos de utilizador com tempo de reflexão e dados realistas, executado até que os tempos de resposta, as taxas de erro e a utilização de recursos mostrem em que ponto o sistema se encontra face aos seus objetivos.

  • Testes de stress e de pico

    Carga aumentada para além do pico esperado para encontrar o ponto de rutura e o que falha primeiro, e subidas súbitas, como um e-mail de marketing ou o lançamento de bilhetes, para ver se o autoscaling reage a tempo e se o sistema recupera sozinho.

  • Testes de soak e de resistência

    Carga constante mantida durante horas ou dias para encontrar fugas de memória, pools de ligações esgotados, filas a crescer e discos a encher-se de registos, os problemas que um teste curto nunca alcança.

  • Scripts k6, JMeter, Gatling e Locust

    Grafana k6 em JavaScript, Apache JMeter para planos de teste existentes e protocolos para além do HTTP, Gatling em Java ou TypeScript e Locust em Python, com os scripts mantidos no repositório junto do código que testam.

  • Análise de estrangulamentos

    Resultados analisados em conjunto com traces, métricas e perfis no Grafana, Datadog, New Relic ou Application Insights, de modo que uma resposta lenta seja rastreada até à query, ao bloqueio, ao thread pool ou à chamada externa que a causa, e cada correção seja testada de novo sob a mesma carga.

  • Planeamento de capacidade para lançamentos e picos

    Testes de carga dimensionados para um lançamento, um pico de vendas ou uma campanha, com o número de instâncias e os limites de autoscaling que aguentam essa carga documentados e o custo de operar no pico estimado antes do dia.

  • Desempenho do front end e Core Web Vitals

    Largest Contentful Paint, Interaction to Next Paint e Cumulative Layout Shift acompanhados a partir de dados de campo de utilizadores reais, com Lighthouse e WebPageTest em laboratório para encontrar a causa, e depois melhorados através de alterações em imagens, scripts, tipos de letra e cache.

  • Testes de desempenho em CI

    Testes de carga curtos, com limiares de aprovação e de falha, em cada release no GitHub Actions, GitLab CI ou Azure Pipelines, execuções maiores no Grafana Cloud k6, Azure Load Testing ou BlazeMeter, e cada execução comparada com a build anterior, para que uma regressão seja detetada antes de os utilizadores a sentirem.

  • Testes de resiliência e de failover

    Instâncias, zonas e dependências desligadas sob carga com o AWS Fault Injection Service, o Azure Chaos Studio ou o Chaos Mesh, para verificar que o failover, as repetições e os circuit breakers funcionam e que a recuperação cumpre o seu objetivo.

Contratar engenheiros de desempenho

  • engenheiros de desempenho dedicados

    Engenheiros de desempenho que integram a sua equipa a tempo inteiro, trabalham nas suas ferramentas e no seu processo, e reportam ao seu responsável. A sua empresa entrevista-os; nós assumimos o contrato ucraniano, o processamento salarial, a faturação e as férias.

  • Projetos de Testes de desempenho

    Uma parcela definida de testes de desempenho, com âmbito, plano fixo e um responsável identificado do nosso lado, que responde pelo resultado e reporta o progresso nos seus canais.

  • testes de desempenho em regime contínuo

    Testes de desempenho como serviço contínuo: as mesmas pessoas todos os meses, um backlog que a sua empresa prioriza e horas que pode consultar no nosso portal e na fatura.

A página da equipa dedicada explica como os especialistas integram a sua equipa, e a página de outsourcing aborda a entrega de projetos, as tomadas a cargo e a forma como cobramos.

Quem trabalha em testes de desempenho para a sua empresa

  • Engenheiros de desempenho

    Modelos de carga, scripts e análise

  • Engenheiros de site reliability

    Monitorização, autoscaling e capacidade

  • Programadores de back-end

    Correções em código, queries e cache

  • Administradores de bases de dados

    Planos de execução, índices e limites de ligações

  • Programadores front end

    Melhorias nos Core Web Vitals

Como conduzimos os testes de desempenho

Cada teste parte de um objetivo escrito: o número de utilizadores ou de pedidos, o tempo de resposta no percentil 95 ou 99, a taxa de erro aceitável e o custo. A carga é modelada com base no tráfego de produção, os dados de teste são gerados com o volume de produção e o teste corre num ambiente dimensionado como a produção, ou na própria produção numa janela acordada.

Os resultados vêm acompanhados de uma explicação, e não apenas de um gráfico: que componente atingiu o limite, porquê e que alteração o desloca, com cada correção confirmada por uma nova execução sob a mesma carga. Os scripts, os geradores de dados e os limiares ficam no seu repositório, para que a sua equipa possa executar os mesmos testes antes de cada release.

Outros serviços de testes de software

Visão geral de Testes de software e QA

Perguntas sobre testes de desempenho e de carga

Em que setores trabalham os engenheiros de desempenho?

Sobretudo comércio eletrónico e retalho, antes de picos de vendas e campanhas; fintech e banca, onde os sistemas de pagamentos e de negociação têm objetivos de latência; produtos SaaS empresariais que recebem clientes maiores; serviços de media e streaming cujo tráfego chega todo de uma vez; e operadores de telecomunicações, cloud e alojamento a dimensionar as suas plataformas.

Fazem testes de carga em produção?

Sim, quando o ambiente de staging não consegue reproduzir o sistema real. O teste corre numa janela de baixo tráfego acordada, aumenta a carga por fases com condições de paragem baseadas na taxa de erro e na latência, usa contas e dados de teste que são removidos depois, e tem um contacto identificado de cada lado a acompanhá-lo.

k6, JMeter ou Gatling?

k6 para a maioria dos trabalhos novos: os testes são escritos em JavaScript, executados a partir da linha de comandos e integram-se bem num pipeline. JMeter quando já existem planos de teste ou o protocolo não é HTTP, como JDBC, JMS ou TCP simples. Gatling para equipas que trabalham em Java ou TypeScript, e Locust para equipas Python. Trabalhamos também com a ferramenta que a sua equipa já utilizar.

Em quanto tempo podem começar engenheiros de desempenho?

Quando o engenheiro de desempenho adequado está disponível, o arranque depende apenas da sua entrevista, do NDA e da cedência de propriedade intelectual. Caso contrário, fazemos uma pesquisa, que normalmente produz perfis de candidatos em duas a três semanas, e ninguém começa antes de a sua empresa dar o seu acordo.

Como contratamos engenheiros de desempenho através da BigTree108?

Diga-nos qual é o trabalho, a senioridade e o horário de que precisa. Propomos uma ou duas pessoas com os respetivos perfis, a sua empresa entrevista-as como entrevistaria uma contratação própria, e assina um único contrato com a BIG TREE 108 LLC e recebe uma fatura por mês.

A quem pertence o trabalho que produzem?

A sua empresa. Cada especialista tem um contrato assinado com a BigTree108 que atribui à empresa todo o trabalho produzido, e o nosso contrato com a sua empresa atribui-lho. O código, os designs e os documentos são entregues nos seus próprios repositórios e ferramentas, e não mantidos onde só nós os podemos alterar.

Espera mais tráfego?

Diga-nos o que faz o sistema, quanto tráfego recebe hoje e quanto espera vir a receber. Recebe resposta no prazo de um dia útil: um plano de testes com objetivos, perfis de candidatos ou um âmbito para um primeiro teste de carga.