A engenharia de desempenho é um teste e monitoramento proativo, contínuo e completo de desempenho de aplicações. Ela permite a colaboração perfeita entre equipes, ferramentas e processos por meio de ciclos de feedback contínuos. Aqui, não são apenas os testadores que são responsáveis pela garantia de qualidade, mas também os desenvolvedores, engenheiros de desempenho, proprietários de produtos e analistas de negócios.
"A engenharia de desempenho é uma mudança cultural na maneira como as organizações veem seus processos essenciais. A engenharia de desempenho abrange práticas e recursos que geram qualidade e desempenho em toda a organização." - Joe Colantonio do podcast Test Guild: Seis principais tendências de desempenho em 2020 e além
Ao aproveitar as ferramentas do tamanho certo que abrangem os desenvolvedores até os engenheiros de desempenho, o Performance Engineering permite testes de desempenho antecipados e o adiamento do monitoramento de desempenho de aplicações. É difícil avaliar a diferença entre engenharia de desempenho e teste de desempenho tradicional sem entender o teste de desempenho clássico.
O teste de desempenho clássico é efetivamente um subconjunto da engenharia de desempenho. Normalmente, 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, confiabilidade, escalabilidade, estabilidade, tempo de resposta, e uso de recursos de uma aplicação sob a carga de trabalho prevista. Antes de entrarmos nas diferenças entre engenharia de desempenho e teste de desempenho, primeiro vamos dar uma olhada no teste de desempenho isoladamente e por que ele, por si só, não é mais sustentável.
Agora, vamos nos aprofundar nas principais diferenças entre a engenharia de desempenho e os testes 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 aplicações de maneira eficiente com mais confiança e implementem software estável e de alto desempenho que atenda às expectativas do usuário.
A engenharia de desempenho oferece otimização completa do sistema por meio de um processo contínuo de teste e monitoramento. Isso antecipa os testes de carga e desempenho para o processo de desenvolvimento. Isso é diferente dos testes de desempenho tradicionais, em que os testes foram realizados após a estabilização do teste funcional e a liberação do código.
Assim que o código é liberado, a engenharia de desempenho rastreia a aplicação em produção, aproveitando as ferramentas de monitoramento de desempenho da aplicação (APM).
A engenharia de desempenho permite a colaboração entre as partes interessadas do projeto, de analistas de negócios a desenvolvedores. Manter altos níveis de desempenho que aprimoram a experiência do cliente, acompanhar o ritmo dos negócios e gerenciar o desempenho de ponta a ponta faz com que todos, não apenas os engenheiros de controle de qualidade/desempenho, sejam responsáveis pelo desempenho do produto. Veja como.
O Centro de Excelência (CoE) de testes serve como consultor de testes confiável e guardião das melhores práticas. O CoE suporta diferentes unidades de negócios, diferentes métodos de teste (como DevOps e Agile) e tem a flexibilidade de recomendar ferramentas de teste e teste de desempenho conforme necessário. Para construir melhores modelos de teste e melhorar a qualidade do teste, o CoE atua como o único ponto de consolidação e reutilização de dados de teste que foram gerados e coletados em várias unidades de negócios ao longo do tempo.
O engenheiro de desempenho fornece uma visão holística de todo o código em desenvolvimento para garantir que os critérios de teste de desempenho sejam abrangentes, englobem o quadro geral e levem em consideração todas as partes distintas do código em desenvolvimento. O engenheiro de desempenho é o principal usuário das ferramentas de teste de desempenho e possui um alto grau de experiência em scripts, design, execução e análise de resultados de teste. A engenharia de desempenho leva o engenheiro de desempenho para a fase inicial de desenvolvimento, onde ele pode fornecer métricas e cenários de desempenho 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 estabelecidas no início do desenvolvimento. Eles também asseguram que a arquitetura e o projeto sejam consistentes durante todo o desenvolvimento.
Os desenvolvedores são especialistas em codificação, mas geralmente são eficientes 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 muda o teste de desempenho que o leva à á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 códigos. O desenvolvedor não libera seu código antes de passar pelos critérios de teste de desempenho.
O testador de dispositivos não atua em testes de desempenho clássicos, pois há distinções claras entre desenvolvedores de software e engenheiros de desempenho. Com a engenharia de desempenho, o testador de dispositivos emerge como uma parte interessada que conecta as equipes de engenharia de desempenho e desenvolvedores. Eles preenchem a lacuna com suas habilidades sólidas de codificação e teste, embora não no mesmo nível de experiência do desenvolvedor e do engenheiro de desempenho. Eles podem executar testes rapidamente e têm uma flexibilidade muito maior do que os desenvolvedores no uso de ferramentas diferentes conforme necessário.
Ao adiar os testes, a engenharia de desempenho traz analistas de negócios e engenheiros de aplicação integrados. Isso garante que os requisitos de desempenho de negócios e aplicações que definem a qualidade da experiência do usuário sejam incorporados aos critérios de desempenho. Essas duas funções monitoram a aplicação em produção para garantir o desempenho da aplicação de alto nível em todos os momentos.
A engenharia de desempenho está transformando o cenário de desenvolvimento de software, bem como as responsabilidades de trabalho de todos os envolvidos. E com um número maior de funções envolvidas, a necessidade de ferramentas e tecnologia para simplificar o processo é maior do que nunca. A engenharia de desempenho exige integração e colaboração integral, 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 Micro Focus tem a experiência comprovada e as soluções tecnológicas para converter o caos do teste em ordem projetada.
A arquitetura aberta de engenharia de desempenho da Micro Focus suporta testes em qualquer protocolo e tipo de aplicação em qualquer ambiente de desenvolvimento. Ela permite que as partes interessadas, de desenvolvedores a analistas de negócios, usem vários fornecedores e ferramentas de código-fonte aberto para permitir a integração completa de CI/CD em escala. As integrações de ferramentas da Micro Focus fornecem a capacidade de eliminar rapidamente o tempo de espera do desenvolvimento e os testes que retardam a entrega de aplicações. As integrações fazem isso permitindo a rápida criação de simulações realistas de APIs, condições de rede e serviços virtuais. As soluções de engenharia de desempenho da Micro Focus se baseiam na infraestrutura local ou na nuvem existente 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árias aplicações em toda a empresa.
O teste de desempenho tradicional não começou até que o teste funcional fosse concluído e não começou a identificar defeitos e causas raiz até o final do teste de desempenho. A engenharia de desempenho da Micro Focus envolve medição e análise contínuas e completas 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 "conclusão". A análise em tempo real da Micro Focus ajuda o engenheiro de desempenho a fornecer feedback ao desenvolvedor rapidamente para iniciar a solução de problemas no início do processo de desenvolvimento. O monitoramento sintético e o monitoramento real do usuário na produção fornecem insights sobre problemas de desempenho que escaparam dos testes e devem ser corrigidos na próxima versão. A captura e análise do sentimento do usuário final de uma perspectiva de desempenho fornece um feedback mais específico aos desenvolvedores para otimizar a aplicação para um melhor desempenho.
Saiba como adotar uma abordagem combinada de engenharia de desempenho de antecipação e adiamento para criar uma organização de desenvolvimento de software altamente produtiva.