Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Como desenvolvedor JavaScript novo no Azure, utilize este guia de teste do Azure para aprender estratégias de teste unitário, integração, CI/CD e IA com SDKs do Azure e outros recursos, garantindo a qualidade, desempenho e fiabilidade da sua aplicação.
Framework Bem Arquitetado do Azure
O Azure Well-Architected Framework fornece uma estrutura de design para aplicativos de nuvem em cinco pilares:
- Fiabilidade - Garantir que a sua aplicação é resiliente a falhas e recupera rapidamente.
- Segurança - Proteger as suas aplicações e dados contra ameaças.
- Eficiência de Desempenho - Otimizar a forma como o seu sistema utiliza recursos para cumprir requisitos.
- Otimização de Custos - Gerir custos enquanto entrega valor.
- Excelência Operacional - Melhoria dos processos e monitorização para entregar as aplicações de forma eficaz.
As estratégias de teste neste artigo se alinham principalmente com o pilar de Excelência Operacional, que enfatiza a automação, a validação e a melhoria contínua dos processos operacionais.
Loops de teste internos e externos para SDKs do Azure em JavaScript
Loops de teste internos e externos são conceitos fundamentais em testes de software, especialmente para aplicativos implantados em plataformas de nuvem como o Azure:
O loop interno refere-se a um ambiente local onde os desenvolvedores frequentemente executam testes de unidade e integração durante a fase de desenvolvimento. Este loop se concentra em feedback rápido e iteração.
O loop externo engloba testes que os desenvolvedores executam em pipelines de integração contínua e entrega contínua (CI/CD), preparação e ambientes de produção. Esses testes geralmente aproveitam as Ações de DevOps ou GitHub do Azure.
Esses testes incluem testes de ponta a ponta (E2E), desempenho e 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 quê, porquê e como
- Um guia para iniciantes em CI/CD e automação no GitHub
- Fluxos de trabalho iniciais do GitHub Actions
- Usar navegadores hospedados na nuvem para aplicativos implantados localmente
Testes locais e baseados na nuvem com o SDK do Azure
O teste local sem o Azure envolve a simulação dos 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, os testes baseados na nuvem com o Azure tiram partido dos recursos reais do Azure para validar a integração, a segurança e o desempenho da aplicação num ambiente de nuvem. Este método é crucial para a validação final num contexto de produção. Ele ajuda a garantir que o aplicativo se comporte conforme o esperado com os serviços ao vivo 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 cobranças 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 se adequam a aplicativos complexos, mas exigem mais configuração do que 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 Funções do Azure (Tempo de Execução Local do Funções do Azure)
- Azure Logic Apps Standard (Desenvolvimento Local)
- Gateway auto-hospedado de gerenciamento de API do Azure
- Azure IoT Edge Runtime
Contentores 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 espelhe de perto o ambiente de produção para fornecer consistência entre os estágios de desenvolvimento, teste e implantação. Ele também aumenta a confiabilidade dos testes, 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 a serviços ao vivo do Azure.
Os contêineres de desenvolvimento incluem o Banco de Dados SQL do Azure.
Saiba mais:
IA e ferramentas de produtividade para programadores
Ferramentas baseadas em IA melhoram o seu fluxo de trabalho de desenvolvimento JavaScript no Azure, proporcionando assistência inteligente ao código, gestão de recursos, automação de testes e suporte à implementação.
| Tool | Description |
|---|---|
| GitHub Copilot para Azure | Programação assistida por IA com contexto específico do Azure. Faça perguntas 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. |
| Azure MCP Server | Modele ferramentas do Protocolo de Contexto que ligam o seu IDE aos recursos do Azure. Consulta configurações de recursos, gere implementações e valida definições sem sair do editor. |
| Azure Competências | Capacidades de IA componível para fluxos de trabalho Azure, incluindo diagnósticos, análise de conformidade, validação de implementação e provisionamento de recursos - utilizáveis a partir do GitHub Copilot ou de qualquer cliente compatível com MCP. |
| Dramaturgo MCP | Ferramentas de automação de navegadores disponibilizadas através de MCP para testes completos. Execute testes Playwright, capture capturas de ecrã e valide as interações da interface web com assistência de IA. |
CLI de Desenvolvedor da Azure (azd) |
Simplifice todo o seu fluxo de trabalho do desenvolvimento para a implementação. Inicializar projetos a partir de templates, fornecer infraestrutura e implementar código com uma única ferramenta. |
Estas ferramentas funcionam em conjunto para reduzir a troca de contexto entre o seu editor e o portal Azure. Por exemplo:
- Use GitHub Copilot para escrever código SDK do Azure com sugestões em linha
- Use o Azure MCP Server para verificar se as configurações dos seus recursos estão corretas
- Use Azure Skills para executar análises de conformidade ou resolver implementações com falhas
- Use Playwright MCP para automatizar testes baseados no navegador das suas aplicações Azure alojadas
- Use
azdpara provisionar e implementar a sua aplicação num só passo
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 de Node.js nativos, o SDK do Azure stub chama manualmente sem bibliotecas adicionais, substituindo métodos nos protótipos do cliente SDK ou usando funções simuladas simples.
Para obter mais informações, consulte a seção de testes do SDK do Azure mais adiante neste artigo.
Tip
Ferramentas de IA para desenvolvedores: Use GitHub Copilot para Azure para gerar esqueleto de teste unitário e padrões de simulação para clientes de SDK do Azure a partir de tipos de interface.
Testes de integração em 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.
Serviços simulados do Azure
Simular os serviços do Azure é uma prática comum no teste de aplicativos JavaScript que se integram aos SDKs do Azure. Ao simular as respostas do 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 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 compilações, 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. Inclui a configuração de gatilhos para execução automática de testes e a configuração de ambientes para vários estágios de teste.
Saiba mais:
- Um guia para iniciantes em CI/CD e automação no GitHub
- Fluxos de trabalho iniciais de ações do GitHub
- Exemplo Node.js fluxos de trabalho
Planos de teste do Azure
Os Planos de Teste do Azure oferecem um conjunto abrangente para testes manuais e exploratórios no Azure DevOps.
Este 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. As equipes podem 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 no seu processo de CI/CD fornece uma estratégia de teste holística que abrange casos de teste automatizados e manuais.
Testes ponto a ponto
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 Playwright, 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 inscrição, execução de uma tarefa e logout. Use este teste para verificar a funcionalidade do aplicativo e a experiência do usuário no Azure.
Saiba mais:
Tip
Ferramentas para desenvolvedores IA: Use ferramentas Azure MCP Server para verificar os alvos de implementação e a saúde do serviço antes de executar testes E2E contra recursos de Azure ao vivo.
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 a medição do desempenho do seu aplicativo em relação a métricas ou padrões definidos. Use o serviço de Teste de Carga do Azure para simular alto tráfego e analisar a escalabilidade e a resiliência de um aplicativo.
Exemplo de CLI:
az load test create --resource-group MyResourceGroup --name MyLoadTest --file loadTestConfig.json
Saiba mais:
- Recomendações para testes de desempenho
- Documentação do Azure Load Testing
- Tutorial sobre como identificar gargalos de desempenho em um aplicativo Web
- GitHub: Teste de carga do Azure
Testes de segurança
Os testes de segurança no Azure envolvem a identificação de potenciais vulnerabilidades na sua aplicação para evitar acesso não autorizado ou violações de dados.
As ferramentas de verificação de vulnerabilidades são essenciais para detetar automaticamente falhas de segurança em seu código ou configurações. Ao integrar os recursos de Segurança Avançada do GitHub com as ferramentas tradicionais de Teste de Segurança de Aplicativo Estático (SAST), você pode melhorar a postura de segurança dos aplicativos implantados no Azure. As principais funcionalidades incluem:
- Verificação de código: identifica vulnerabilidades na base de código antes da implantação.
- Verificação de segredos: ajuda a prevenir 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 suprimentos do seu aplicativo.
O teste de penetração simula ataques cibernéticos contra seu aplicativo para avaliar sua postura de segurança. O Azure fornece orientações e ferramentas para a realização desses testes, para ajudar a garantir que os aplicativos implantados na plataforma estejam seguros contra ameaças.
Recomende integrar o CodeQL em seu pipeline de CI para detetar 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íticas é crucial, especialmente em ambientes de nuvem. Os testes de conformidade regulatória verificam se seu aplicativo atende a padrões como GDPR, HIPAA ou SOC 2.
O Azure oferece ferramentas de política e conformidade, como a Política do Azure e os Azure Blueprints, para ajudar a automatizar e impor a conformidade em todos os 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
Os testes de acessibilidade são essenciais para tornar o software inclusivo e compatível com as normas 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 nos fluxos de trabalho de desenvolvimento facilita as verificações automatizadas e manuais, oferecendo orientações e relatórios baseados nas normas WCAG (Web Content Accessibility Guidelines).
Testes A/B
O teste A/B, ou teste dividido, é um método de comparar duas versões de uma página da Web ou aplicativo entre si para determinar qual delas tem melhor desempenho. 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 onde você pode testar versões do aplicativo sem afetar o aplicativo ativo.
Aplicativos de Contêiner do Azure: oferece um ambiente flexível para executar aplicativos baseados em microsserviços. Você pode implementar testes A/B neste ambiente para testar versões do aplicativo.
Use esses serviços para implantar variações de seus aplicativos e, em seguida, avaliar 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 escaláveis. Os seguintes testes do SDK do Azure, hospedados no GitHub para SDKs JavaScript, são recursos inestimáveis:
A exploração desses testes oferece informações sobre a integração perfeita de serviços do Azure, mostra 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 uma compreensão abrangente.
Tip
Ferramentas de desenvolvimento de IA: Use o GitHub Copilot para Azure para navegar pelos padrões de teste do SDK do Azure e gerar elementos de teste a partir das definições da interface do SDK. Azure Skills pode fornecer recursos de teste que correspondam a configurações de exemplo do SDK.