好色先生TV

Tópicos técnicos

O que é engenharia de desempenho?

Ilustra??o de itens de TI com foco em uma l?mpada

Vis?o geral

A engenharia de desempenho é um teste e monitoramento proativo, contínuo e de ponta a ponta do desempenho de aplicativos. Ela permite a colabora??o perfeita entre equipes, ferramentas e processos por meio de ciclos contínuos de feedback. Aqui, n?o s?o apenas os testadores que s?o responsáveis pela garantia de qualidade, mas também os desenvolvedores, os engenheiros de desempenho, os proprietários de produtos e os analistas de negócios.

Ao aproveitar as ferramentas de tamanho adequado que abrangem desde os desenvolvedores até os engenheiros de desempenho, a engenharia de desempenho permite o teste de desempenho shift-left e o monitoramento de desempenho de aplicativos shift-right. ? difícil avaliar o quanto a engenharia de desempenho é diferente dos testes de desempenho tradicionais sem entender o que s?o os testes de desempenho clássicos.

Engenharia de desempenho

Qual é a diferen?a entre teste de desempenho e engenharia de desempenho?

O teste de desempenho clássico é efetivamente um subconjunto da engenharia de desempenho. Geralmente, ele envolve a execu??o de uma única rodada de testes de carga como parte do ciclo de garantia de qualidade (QA) pós-desenvolvimento. O teste de desempenho envolve a verifica??o da velocidade, da confiabilidade, da escalabilidade, da estabilidade, do tempo de resposta e do uso de recursos de um aplicativo sob a carga de trabalho prevista. Antes de abordarmos as diferen?as entre a engenharia de desempenho e o teste de desempenho, vamos primeiro dar uma olhada no teste de desempenho isolado e por que ele, por si só, n?o é mais sustentável.

  • Primeiro, o teste é visto de forma isolada e tratado como uma reflex?o tardia que só come?a no final do teste funcional.
  • Em segundo lugar, o trabalho em silos causa grandes falhas de comunica??o entre as subequipes do projeto e impede a colabora??o necessária para entregar um produto de alta qualidade.
  • Em terceiro lugar, quando o teste de desempenho é iniciado, a organiza??o já investiu muito tempo, esfor?o e recursos financeiros no design, no desenvolvimento e na promo??o do aplicativo.
  • Em quarto lugar, o teste de desempenho geralmente é tratado como uma reflex?o tardia e n?o é incluído nos critérios de "concluído" antes do lan?amento. Portanto, nesse momento, a empresa precisa do aplicativo em produ??o com urgência e n?o espera atrasos. Nesse contexto, o feedback do controle de qualidade acontece tarde demais para ser corrigido completamente antes do lan?amento. Inevitavelmente, um grande número de problemas de desempenho chegaria desnecessariamente ao ambiente de produ??o apenas para que o lan?amento permanecesse dentro do cronograma. A corre??o de um defeito na produ??o é muito mais cara e prejudicial do que no início do desenvolvimento.
  • Quinto, o teste de desempenho tradicional pode ter sido perfeito para o modelo Waterfall, mas está fora de lugar no mundo atual . O DevOps reduz a taxa de falha de novas vers?es diminuindo o tempo entre o momento em que uma altera??o é confirmada no sistema e o momento em que a altera??o é colocada em produ??o. A integra??o contínua e a entrega contínua (CI/CD) garantem que o software esteja sempre em um estado liberável durante todo o seu ciclo de vida. O DevOps também se concentra no realinhamento da organiza??o para dar suporte à colabora??o de ponta a ponta entre as partes interessadas, as fun??es e as ferramentas. Para atender às demandas de entrega rápida do DevOps, o desenvolvimento de software precisa de uma abordagem de teste de desempenho mais evoluída. Essa nova abordagem é a engenharia de desempenho de software.

Agora, vamos nos aprofundar nas principais diferen?as entre engenharia de desempenho e teste de desempenho.

  • Em primeiro lugar, o teste de desempenho é uma verifica??o de qualidade do manuseio da carga e da capacidade de resposta do aplicativo. Ele estabelece a capacidade do sistema de suportar uma carga de produ??o e antecipa os problemas que podem surgir durante condi??es de carga pesada. A engenharia de desempenho busca projetar o aplicativo desde o início com as métricas de desempenho em mente e facilitar a descoberta de problemas no início do desenvolvimento.
  • Em segundo lugar, o teste de desempenho é um processo de controle de qualidade que geralmente ocorre quando uma rodada de desenvolvimento de software é concluída. A engenharia de desempenho é um processo contínuo que está incorporado em todas as fases do ciclo de desenvolvimento de software, desde o projeto, passando pelo desenvolvimento, até a experiência do usuário final.
  • Terceiro, o teste de desempenho é conduzido pela equipe de controle de qualidade, enquanto a engenharia de desempenho envolve o RND e o controle de qualidade.

Conceitos de engenharia de desempenho

Por meio dos conceitos a seguir, o DevOps e a engenharia de desempenho fornecem resultados consistentes de desempenho de produ??o, permitindo que os clientes implantem aplicativos de forma eficiente com mais confian?a e implementem softwares estáveis e de alto desempenho que atendam às expectativas dos usuários.

Otimiza??o de ponta a ponta

A engenharia de desempenho oferece otimiza??o do sistema de ponta a ponta por meio de um processo contínuo de teste e monitoramento. Isso transfere o desempenho e os testes de carga para o processo de desenvolvimento. Isso é diferente dos testes de desempenho tradicionais, em que os testes eram realizados depois que os testes funcionais eram estabilizados e o código liberado.

Depois que o código é liberado, a engenharia de desempenho rastreia o aplicativo em produ??o, aproveitando as ferramentas de monitoramento de desempenho de aplicativos (APM).

Equipe multifuncional de partes interessadas no desempenho

A engenharia de desempenho permite a colabora??o entre os participantes do projeto, desde os analistas de negócios até os desenvolvedores. Manter altos níveis de desempenho que melhorem a experiência do cliente, acompanhar o ritmo dos negócios e gerenciar o desempenho de ponta a ponta faz com que todos, e n?o apenas os engenheiros de QA/desempenho, sejam responsáveis pelo desempenho do produto. Veja como.

Centro de excelência em testes

O Centro de Excelência em Testes (CoE) atua como consultor de testes confiável e guardi?o das práticas recomendadas. O CoE oferece suporte a diferentes unidades de negócios, diferentes métodos de teste (como DevOps e Agile) e tem a flexibilidade de recomendar testes de desempenho e ferramentas de teste, conforme necessário. Para criar modelos de teste melhores e aprimorar a qualidade do teste, o CoE atua como ponto único de consolida??o e reutiliza??o de dados de teste gerados e coletados em várias unidades de negócios ao longo do tempo.

Engenheiro de desempenho

O engenheiro de desempenho oferece uma vis?o holística de todo o código em desenvolvimento para garantir que os critérios de teste de desempenho sejam abrangentes, contemplem o panorama geral e considerem todas as partes distintas do código em desenvolvimento. O engenheiro de desempenho é o principal usuário das ferramentas de teste de desempenho e tem um alto grau de especializa??o em criar scripts, projetar, executar e analisar resultados de testes. A engenharia de desempenho traz o engenheiro de desempenho para a fase inicial do desenvolvimento, onde ele pode fornecer métricas de desempenho e cenários necessários para que o código seja considerado pronto para lan?amento. O envolvimento precoce significa que o engenheiro de desempenho pode garantir que a solu??o satisfa?a as expectativas de desempenho definidas no início do desenvolvimento. Ele também confirma que a arquitetura e o design s?o consistentes durante todo o desenvolvimento.

Desenvolvedor de software

Os desenvolvedores s?o especialistas em codifica??o, mas geralmente n?o têm experiência em testes funcionais e de desempenho. Eles trabalham em seu ambiente de desenvolvimento integrado (IDE) e tendem a usar suas ferramentas preferidas, com pouca inclina??o para aprender novas ferramentas. A engenharia de desempenho desloca os testes de desempenho para a área de responsabilidade do desenvolvedor de software. Com a contribui??o do engenheiro de desempenho, os desenvolvedores de software podem executar testes de desempenho enquanto escrevem o código. O desenvolvedor n?o libera seu código antes que ele passe nos critérios de teste de desempenho.

DevTester

O devtester n?o existe no teste de desempenho clássico, pois há distin??es claras entre os desenvolvedores de software e os engenheiros de desempenho. Com a engenharia de desempenho, o devtester surge como uma parte interessada que conecta a engenharia de desempenho e as equipes de desenvolvedores. Ele preenche a lacuna ao ter habilidades sólidas de codifica??o e teste, embora n?o esteja no mesmo nível de especializa??o que o desenvolvedor e o engenheiro de desempenho. Eles podem executar testes rapidamente e têm muito mais flexibilidade do que os desenvolvedores no uso de diferentes ferramentas, conforme necessário.

Analistas de negócios e engenheiros de aplicativos

Ao deslocar diretamente os testes, a engenharia de desempenho traz analistas de negócios e engenheiros de aplicativos. Isso garante que os requisitos de desempenho dos negócios e dos aplicativos que definem a qualidade da experiência do usuário sejam incorporados aos critérios de desempenho. Essas duas fun??es monitoram o aplicativo em produ??o para garantir sempre o melhor desempenho do aplicativo.


Obtenha o parceiro certo de engenharia de desempenho

A engenharia de desempenho está transformando o cenário de desenvolvimento de software, bem como as descri??es de cargos de todos os que est?o envolvidos nele. E com um número maior de fun??es envolvidas, a necessidade de ferramentas e tecnologia para otimizar o processo é maior do que nunca. A engenharia de desempenho exige integra??o e colabora??o de ponta a ponta, da direita para a esquerda e da esquerda para a direita, além de insights e análises em tempo real. Os fornecedores tradicionais de testes de desempenho n?o est?o adequadamente equipados para lidar com essa onda de mudan?as caóticas. No entanto, a 好色先生TV tem experiência comprovada e solu??es tecnológicas para converter o caos dos testes em ordem de engenharia.

好色先生TV A arquitetura aberta da engenharia de desempenho oferece suporte a testes em qualquer protocolo e tipo de aplicativo em qualquer ambiente de desenvolvimento. Ela permite que as partes interessadas, desde os desenvolvedores até os analistas de negócios, usem várias ferramentas de fornecedores e de código aberto para possibilitar a integra??o completa de CI/CD em escala. 好色先生TV As integra??es de ferramentas oferecem a capacidade de eliminar rapidamente o tempo de espera do desenvolvimento e os testes que retardam o fornecimento de aplicativos. As integra??es fazem isso permitindo a cria??o rápida de simula??es realistas de APIs, condi??es de rede e servi?os virtuais. 好色先生TV As solu??es de engenharia de desempenho se baseiam na infraestrutura existente no local ou na nuvem e promovem a reutiliza??o de ativos para aproveitar os investimentos existentes. Isso ajuda a dimensionar rapidamente para atender às demandas de testes de desempenho de vários aplicativos em toda a empresa.

Os testes de desempenho tradicionais n?o come?avam até que os testes funcionais estivessem concluídos e n?o come?avam a identificar os defeitos e as causas-raiz até o final dos testes de desempenho. 好色先生TV A engenharia de desempenho envolve a medi??o contínua de ponta a ponta e a análise de defeitos para identificar a causa-raiz em tempo real, mesmo antes do término do teste de desempenho. Os critérios de desempenho est?o incluídos na defini??o e nos requisitos de "concluído". 好色先生TV A análise em tempo real ajuda o engenheiro de desempenho a fornecer feedback ao desenvolvedor rapidamente, de modo a iniciar a solu??o de problemas no início do processo de desenvolvimento. O monitoramento sintético e o monitoramento de usuários reais na produ??o fornecem insights sobre problemas de desempenho que escaparam aos testes e devem ser corrigidos na próxima vers?o. A captura e a análise do sentimento do usuário final a partir de uma perspectiva de desempenho fornecem um feedback mais específico aos desenvolvedores para otimizar o aplicativo a fim de melhorar o desempenho.

Notas de rodapé