Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Como um desenvolvedor javaScript novo para Azure, use este guia de teste Azure para aprender estratégias de teste de unidade, integração, CI/CD e IA com SDKs do Azure e outros recursos para garantir a qualidade, o desempenho e a confiabilidade do aplicativo.
Estrutura de Well-Architected do Azure
O Azure Well-Architected Framework fornece uma estrutura de design para aplicativos de nuvem em cinco pilares:
- Confiabilidade – garantir que seu aplicativo seja resiliente a falhas e se recupere rapidamente.
- Segurança – Protegendo seus aplicativos e dados contra ameaças.
- Eficiência de desempenho – otimizando como seu sistema usa recursos para atender aos requisitos.
- Otimização de Custos – Gerenciamento de custos durante a entrega de valor.
- Excelência Operacional – Aprimorando processos e monitoramento para fornecer aplicativos com eficiência.
As estratégias de teste neste artigo se alinham principalmente ao pilar de Excelência Operacional, que enfatiza a automação, a validação e o aprimoramento contínuo dos processos operacionais.
Loops de teste interno e externo para SDKs do Azure em JavaScript
Loops de teste internos e externos são conceitos fundamentais no teste de software, especialmente para aplicativos implantados em plataformas de nuvem como o Azure:
O loop interno refere-se a um ambiente local em que os desenvolvedores frequentemente executam testes de unidade e integração durante a fase de desenvolvimento. Esse ciclo se concentra em retorno rápido e iteração.
O loop externo abrange testes que os desenvolvedores executam em pipelines de integração contínua e entrega contínua (CI/CD), ambientes de preparo e ambientes de produção. Esses testes geralmente aproveitam o Azure DevOps ou o GitHub Actions.
Esses testes incluem E2E (ponta a ponta), desempenho e testes de segurança. Eles validam o comportamento do aplicativo em ambientes que espelham de perto ou são idênticos ao ambiente de produção final. Estratégias de teste eficientes usam ambos os loops para ajudar a garantir uma cobertura abrangente e garantia de qualidade antes e depois da implantação.
Saiba Mais:
- CI/CD: o que, por que e como
- Um guia iniciante para CI/CD e automação no GitHub
- Fluxos de trabalho iniciais do GitHub Actions
- Usar navegadores hospedados na nuvem para aplicativos implantados localmente
Teste local e baseado em nuvem com o SDK do Azure
O teste local sem o Azure envolve a simulação de serviços do Azure. Use essa abordagem para testar as alterações rapidamente sem incorrer nos custos ou latência de rede associados aos serviços reais do Azure.
Por outro lado, o teste baseado em nuvem com o Azure aproveita os recursos reais do Azure para validar a integração, a segurança e o desempenho do aplicativo em um ambiente de nuvem. Esse método é crucial para a validação final em uma configuração semelhante à produção. Isso ajuda a garantir que o aplicativo se comporte conforme o esperado com os serviços dinâmicos do Azure.
Emuladores e contêineres de desenvolvimento aprimoram o desenvolvimento local com os serviços do Azure de forma diferente. Os emuladores imitam os serviços do Azure para testes econômicos e em estágio inicial sem encargos do Azure, mas podem não replicar totalmente os recursos de serviço ao vivo. Os contêineres de desenvolvimento replicam o ambiente de produção mais de perto, incluindo dependências e serviços de aplicativos, para ajudar a facilitar uma transição perfeita para a produção. Os contêineres de desenvolvimento atendem a aplicativos complexos, mas exigem mais configuração do que os emuladores.
Emuladores
Os emuladores incluem:
- Azurite (Emulador de Armazenamento do Azure)
- Emulador do Azure Cosmos DB
- Emulador do Azure SignalR
- Emulador de Hubs de Eventos do Azure
- Ferramentas principais do Azure Functions (Runtime local do Azure Functions)
- Padrão dos Aplicativos Lógicos do Azure (Desenvolvimento Local)
- Gateway auto-hospedado do Gerenciamento de API do Azure
- Azure IoT Edge Runtime
Contêineres de desenvolvimento
Os contêineres de desenvolvimento oferecem uma alternativa poderosa ao uso de emuladores para desenvolvimento local, especialmente no trabalho com os serviços do Azure.
Ao executar serviços em contêineres, crie um ambiente local que espelha de perto o ambiente de produção para fornecer consistência nos estágios de desenvolvimento, teste e implantação. Ele também aprimora a confiabilidade do teste simulando condições do mundo real com mais precisão.
Configure contêineres para replicar as configurações e os dados dos serviços do Azure. Dessa forma, os contêineres fornecem uma plataforma robusta para desenvolver e testar aplicativos sem a sobrecarga de se conectar aos serviços dinâmicos do Azure.
Os contêineres de desenvolvimento incluem o Banco de Dados SQL do Azure.
Saiba Mais:
Ferramentas de produtividade para IA e desenvolvedores
As ferramentas alimentadas por IA aprimoram o fluxo de trabalho de desenvolvimento do JavaScript no Azure fornecendo assistência de código inteligente, gerenciamento de recursos, teste de automação e suporte à implantação.
| Tool | Description |
|---|---|
| GitHub Copilot para Azure | Codificação assistida por IA com contexto específico de Azure. Tire dúvidas sobre os serviços do Azure, gere código de infraestrutura e obtenha ajuda com o uso do SDK do Azure diretamente no VS Code. |
| Servidor MCP do Azure | Ferramentas de Protocolo de Contexto de Modelo que conectam seu IDE a recursos de Azure. Consulte configurações de recursos, gerencie implantações e valide as configurações sem sair do editor. |
| Azure Skills | Recursos de IA composáveis para fluxos de trabalho Azure, incluindo diagnóstico, verificação de conformidade, validação de implantação e provisionamento de recursos – utilizáveis de GitHub Copilot ou de qualquer cliente compatível com MCP. |
| Playwright MCP | Ferramentas de automação do navegador expostas por meio do MCP para testes de ponta a ponta. Execute testes do Playwright, tire capturas de tela e valide as interações da interface web com a assistência de IA. |
Azure Developer CLI (azd) |
Simplifique todo o fluxo de trabalho de desenvolvimento para implantação. Inicialize projetos de modelos, provisione a infraestrutura e implante o código com uma única ferramenta. |
Essas ferramentas funcionam em conjunto para reduzir a alternância de contexto entre o editor e o portal Azure. Por exemplo:
- Use GitHub Copilot para escrever o código do SDK do Azure com sugestões inline
- Use o servidor MCP Azure para verificar se as configurações de recursos estão corretas
- Use Azure Skills para executar verificações de conformidade ou solucionar problemas de implantações com falha
- Use Playwright MCP para automatizar o teste baseado em navegador de seus aplicativos hospedados Azure
- Use
azdpara provisionar e implantar seu aplicativo em uma etapa
Testes de unidade em JavaScript
O teste de unidade com SDKs do Azure em JavaScript geralmente usa estruturas como Jest ou Vitest para isolar e testar componentes ou funções individuais.
Para testes nativos de Node.js, simule chamadas do SDK do Azure manualmente, sem bibliotecas adicionais, substituindo os métodos nos protótipos de cliente do SDK ou usando funções simples de simulação.
Para obter mais informações, consulte a seção de testes do SDK do Azure mais adiante neste artigo.
Dica
AI developer tools: Use GitHub Copilot para Azure para gerar código padrão de testes de unidade e padrões de mock para clientes do SDK do Azure a partir de tipos de interface.
Testes de integração no JavaScript
O teste de integração avalia a interação entre seu aplicativo e os serviços do Azure, para ajudar a garantir que os componentes trabalhem juntos conforme o esperado.
Configure testes de integração automatizados usando o Azure Pipelines no Azure DevOps ou fluxos de trabalho no GitHub Actions. Essa abordagem automatiza a implantação e o teste de componentes em um ambiente de nuvem. Ele ajuda a identificar problemas que podem não ser aparentes durante o teste de unidade, como latência de rede ou erros de configuração de serviço.
Simular serviços do Azure
Zombar dos serviços do Azure é uma prática comum no teste de aplicativos JavaScript que se integram aos SDKs do Azure. Simulando respostas de serviço do Azure, isole a lógica do aplicativo de dependências externas, o que ajuda a garantir que os testes sejam executados de forma rápida e confiável.
Saiba mais sobre como testar as integrações do SDK do Azure.
Testes de integração contínua
O teste de CI envolve a execução automática de testes sempre que uma alteração é feita na base de código. Ferramentas de CI, como o Azure DevOps, fornecem ambientes integrados para automatizar builds, testes e implantações. Configurar pipelines para incluir testes automatizados ajuda a garantir que todas as alterações sejam verificadas, o que reduz a probabilidade de bugs e regressões.
A configuração adequada do pipeline é crucial para processos de CI eficientes. Ele inclui a configuração de gatilhos para execução automática de teste e configuração de ambientes para vários estágios de teste.
Saiba Mais:
- Um guia iniciante para CI/CD e automação no GitHub
- Fluxos de trabalho iniciais do GitHub Ação
- Exemplo Node.js fluxos de trabalho
Azure Test Plans
Os Planos de Teste do Azure oferecem um pacote abrangente para testes manuais e exploratórios no Azure DevOps.
Esse serviço pode ajudar em cenários que exigem julgamento humano ou são difíceis de automatizar, fornecendo uma abordagem estruturada para testes manuais. O Teams pode usá-lo para planejar, executar e acompanhar atividades de teste, incluindo a captura de dados avançados, como capturas de tela e vídeos, para ajudar no relatório de bugs. A integração dos Planos de Teste do Azure ao processo de CI/CD fornece uma estratégia de teste holística que abrange casos de teste automatizados e manuais.
Testes de ponta a ponta
O teste de ponta a ponta valida a operação completa de um aplicativo em um ambiente que simula cenários reais do usuário. Usando estruturas como o Dramaturgo, você pode automatizar testes baseados em navegador para interagir com seus aplicativos como os usuários fariam.
O teste baseado em cenário envolve a criação de casos de teste para fluxos de usuário completos, como inscrever-se, executar uma tarefa e sair. Use este teste para verificar a funcionalidade do aplicativo e a experiência do usuário no Azure.
Saiba Mais:
Dica
AI developer tools: Use as ferramentas do Azure MCP Server para verificar os destinos de implantação e a integridade do serviço antes de executar testes E2E em recursos do Azure em tempo real.
Testes de desempenho
O teste de desempenho é essencial para aplicativos implantados no Azure para ajudar a garantir que eles possam lidar com as cargas esperadas e ter um bom desempenho sob estresse.
O benchmarking envolve medir o desempenho do aplicativo em relação a métricas ou padrões definidos. Use o serviço de Teste de Carga do Azure para simular o alto tráfego e analisar a escalabilidade e a resiliência de um aplicativo.
Exemplo da CLI:
az load test create --resource-group MyResourceGroup --name MyLoadTest --file loadTestConfig.json
Saiba Mais:
- Recomendações para testes de desempenho
- documentação do Teste de Carga do Azure
- Tutorial sobre como identificar gargalos de desempenho em um aplicativo Web
- GitHub: Teste de Carga do Azure
Teste de segurança
O teste de segurança no Azure envolve a identificação de possíveis vulnerabilidades em seu aplicativo para evitar acesso não autorizado ou violações de dados.
As ferramentas de verificação de vulnerabilidade são essenciais para detectar automaticamente pontos fracos de segurança em seu código ou configurações. Ao integrar os recursos de Segurança Avançada do GitHub com ferramentas tradicionais de SAST (Teste de Segurança de Aplicativo Estático), você pode melhorar a postura de segurança dos aplicativos implantados no Azure. Os principais recursos incluem:
- Verificação de código: identifica vulnerabilidades na base de código antes da implantação.
- Verificação secreta: ajuda a evitar a exposição de dados confidenciais.
- Monitoramento da cadeia de suprimentos: ajuda a proteger contra dependências potencialmente comprometidas.
Essas medidas de segurança integradas podem ajudá-lo a identificar vulnerabilidades antecipadamente, evitar violações de dados e garantir a integridade da cadeia de fornecimento do aplicativo.
O teste de penetração simula ataques cibernéticos contra seu aplicativo para avaliar sua postura de segurança. O Azure fornece diretrizes e ferramentas para realizar esses testes, para ajudar a garantir que os aplicativos implantados na plataforma estejam seguros contra ameaças.
É recomendável integrar o CodeQL ao pipeline de CI para capturar vulnerabilidades antecipadamente.
Saiba Mais:
Testes de conformidade e governança
Garantir que os aplicativos estejam em conformidade com os requisitos legais, regulatórios e de política é crucial, especialmente em ambientes de nuvem. O teste de conformidade regulatória verifica se seu aplicativo atende a padrões como GDPR, HIPAA ou SOC 2.
O Azure oferece ferramentas de política e conformidade, como o Azure Policy e o Azure Blueprints, para ajudar a automatizar e impor a conformidade em seus recursos do Azure. Essas ferramentas simplificam o processo de manutenção de padrões de governança e conformidade em suas implantações de aplicativos.
Saiba Mais:
- Governança, segurança e conformidade no Azure
- Implementar testes de conformidade com o Terraform e o Azure
Testes de acessibilidade
O teste de acessibilidade é essencial para tornar o software inclusivo e compatível com padrões legais. Ferramentas como o Accessibility Insights ajudam a identificar e corrigir problemas de acessibilidade em aplicativos Web e móveis. A integração do Accessibility Insights em fluxos de trabalho de desenvolvimento facilita verificações automatizadas e manuais, oferecendo diretrizes e relatórios com base nos padrões de WCAG (Diretrizes de Acessibilidade de Conteúdo da Web).
Testes A/B
O teste A/B, ou teste dividido, é um método de comparação de duas versões de uma página da Web ou aplicativo entre si para determinar qual delas tem um desempenho melhor. O Azure fornece os seguintes serviços que dão suporte a testes A/B:
Serviço de Aplicativo do Azure: oferece slots de implantação para permitir ambientes de preparo em que você pode testar versões do aplicativo sem afetar o aplicativo dinâmico.
Aplicativos de Contêiner do Azure: oferece um ambiente flexível para executar aplicativos baseados em microsserviços. Você pode implementar testes A/B nesse ambiente para testar as versões do aplicativo.
Use esses serviços para implantar variações de seus aplicativos e, em seguida, medir a resposta e a eficácia do usuário.
Testes do SDK do Azure
Para desenvolvedores que trabalham com serviços do Azure, obter proficiência com os SDKs do Azure é essencial para criar aplicativos robustos e escalonáveis. Os seguintes testes do SDK do Azure, hospedados no GitHub para os SDKs javaScript, são recursos inestimáveis:
- Armazenamento do Azure
- Grid de Eventos do Azure
- Azure Key Vault
- Hub IoT do Azure
Explorar esses testes oferece insights sobre a integração perfeita de serviços do Azure, apresenta as práticas recomendadas para a interação de recursos do Azure e ajuda a garantir implementações eficientes e seguras. Explore uma gama mais ampla de exemplos de SDK para obter uma compreensão abrangente.
Dica
Ferramentas de desenvolvimento de IA: Use o GitHub Copilot for Azure para navegar pelos padrões de teste do SDK do Azure e gerar ambientes de teste a partir das definições de interface do SDK. Azure Skills pode provisionar recursos de teste correspondentes às configurações de exemplo do SDK.