À medida que as empresas de desenvolvimento de software correm para entregar recursos geralmente disponíveis (GA), a ênfase na garantia de qualidade (QA) torna-se mais crítica do que nunca. Além das metodologias de teste tradicionais, diversificar os tipos de teste é fundamental para garantir o sucesso dos recursos de GA.

Na Okta, a equipe de produto é responsável por manter a qualidade e garantir uma implementação perfeita. Neste blog, exploraremos a importância da diversificação nos testes para salvaguardar a qualidade dos recursos GA e investigaremos a necessidade de monitoramento contínuo e validação pós-implantação para uma excelência sustentada.

A paisagem em constante evolução dos testes de software

O controle de qualidade (QA) evoluiu muito além das metodologias de teste tradicionais. No entanto, as complexidades das aplicações modernas e as crescentes expectativas dos usuários finais exigem uma abordagem de teste mais abrangente. 

Métodos para diversificar as abordagens de teste para recursos GA incluem:

1. Conjunto de validação funcional:

  • Teste de unidade é um método de teste de software no qual unidades ou componentes individuais de uma aplicação de software são testados isoladamente para validar se cada unidade funciona conforme o esperado.
    • Escopo: Funções ou métodos individuais.
    • Objetivo: Verificar a correção de pequenas unidades de código isoladas.
    • Benefícios: Detec ção precoce de bugs, depura ção mais fácil e melhor manutenibilidade do código.
    • Ferramentas: Frameworks como JUnit para Java, pytest para Python, NUnit para .NET, etc.
       
  • O teste de integração garante uma interação perfeita entre diferentes componentes, protegendo contra problemas de integração que possam surgir em um ambiente do mundo real.
    • Escopo: Interação entre múltiplas unidades/módulos.
    • Propósito: Verificar se os componentes funcionam juntos como esperado.
    • Benefícios: Identificar problemas relacionados à integração de componentes.
    • Ferramentas: Dependendo do stack de tecnologia, os testes de integração podem ser escritos usando frameworks como TestNG, Jasmine ou ferramentas como Postman.
       
  • Testes de ponta a ponta (End-to-end testing) verificam principalmente se todos os componentes e sistemas funcionam juntos de forma coesa como pretendido, simulando cenários de usuário do mundo real e garantindo a integração suave de vários módulos ou camadas dentro do aplicativo.
    • Escopo: Aplicação inteira ou uma parte significativa dela.
    • Objetivo: Verificar o comportamento geral do sistema da perspectiva do usuário.
    • Benefícios: Garantir que todos os componentes trabalhem juntos para atender aos requisitos do usuário.
    • Ferramentas: Selenium para aplicações web, Appium para aplicações móveis, Cypress para aplicações web modernas, etc.
       
  • Teste de compatibilidade entre navegadores e dispositivos garante uma funcionalidade consistente em diferentes navegadores da web e dispositivos para fornecer uma experiência perfeita para os usuários, independentemente de suas preferências de navegador e dispositivo.
    • Escopo: Garantir um desempenho consistente em diferentes navegadores e dispositivos da web.
    • Objetivo: Identificar e resolver problemas relacionados à renderiza ção, funcionalidade e experiência do usuário em vários navegadores e dispositivos.
    • Exemplos: Testes em navegadores populares (Chrome, Firefox, Safari, Edge, etc.) e diferentes dispositivos (desktops, laptops, tablets e telefones celulares)
    • Ferramentas: Ferramentas de teste entre navegadores (por exemplo, BrowserStack, CrossBrowserTesting, Sauce Labs) e laboratórios de teste de dispositivos

2. Dimensões não funcionais:

  • Teste de desempenho envolve avaliar o desempenho dos recursos GA sob várias condições, incluindo teste de estresse e teste de carga. Isso garante um desempenho ideal, mesmo durante o pico de uso.
    • Escopo: Avaliar o desempenho do sistema sob várias condições.
    • Objetivo: Avaliar o desempenho do sistema em relação à velocidade, capacidade de resposta e estabilidade.
    • Exemplos: Teste de carga, teste de estresse e teste de escalabilidade
    • Ferramentas: JMeter, Apache Benchmark, Gatling para teste de carga; Apache JMeter, Locust para teste de estresse; e ferramentas específicas para o stack de tecnologia
       
  • O teste de segurança deve ser completo para ajudar a identificar e mitigar vulnerabilidades, proteger dados confidenciais e garantir a resiliência do recurso contra potenciais ameaças de segurança.
    • Escopo: Identificar vulnerabilidades e garantir que o sistema está seguro.
    • Objetivo: Avaliar os recursos de segurança do aplicativo, incluindo proteção de dados e controles de acesso.
    • Exemplos: Teste de penetração, varredura de vulnerabilidades e análise de código
    • Ferramentas: OWASP ZAP, Burp Suite, Nessus e várias ferramentas de análise de código
       
  • Teste de escalabilidade avalia a capacidade do recurso de acomodar bases de usuários crescentes. O teste de escalabilidade é crucial para manter o desempenho à medida que o número de usuários aumenta.
    • Escopo: Garantir a confiabilidade e estabilidade do sistema em condições normais e extremas.
    • Objetivo: Avaliar o quão bem o sistema se recupera de falhas e lida com erros.
    • Exemplos: Teste de tolerância a falhas, teste de recuperação e teste de confiabilidade.
    • Ferramentas: Scripts personalizados, Chaos Monkey para sistemas distribuídos.

3. Validação centrada no usuário:

  • Testes de usabilidade (Usability testing) avaliam a facilidade de uso dos recursos de Disponibilidade Geral (GA), incorporando feedback real do usuário para refinar a experiência do usuário.
    • Escopo: Avalie a interface do usuário e a experiência geral do usuário.
    • Objetivo: Avaliar o quão amigável e intuitiva a aplicação é.
    • Exemplos: Teste de interface do usuário, teste de experiência do usuário e teste de acessibilidade.
    • Ferramentas: O teste de usabilidade pode envolver processos automatizados e manuais, incluindo ferramentas como UserTesting para teste de usabilidade remoto
  • Acessibilidade teste garante que indivíduos com diversas habilidades possam usar facilmente os recursos GA.
    • Escopo: Avaliar a acessibilidade da aplicação para usuários com deficiência.
    • Objetivo: Garantir que a aplicação esteja em conformidade com os padrões e diretrizes de acessibilidade (por exemplo, WCAG — Web Content Accessibility Guidelines - Diretrizes de Acessibilidade para Conteúdo Web).
    • Exemplos: Teste de navega ção por teclado, teste de leitor de tela, teste de contraste de cores
    • Ferramentas: Ferramentas automatizadas de teste de acessibilidade (por exemplo, Axe, Google Lighthouse, WAVE) e testes manuais com tecnologias assistivas

4. Monitoramento contínuo e pós-implantação 

  • Vigilância proativa usando verificações de saúde: Implemente o monitoramento em tempo real em ambientes de teste, pré-produção e produção para detectar problemas à medida que surgem. A vigilância proativa ajuda a identificar e resolver prontamente problemas potenciais antes que eles afetem os usuários finais.
    • Objetivo: As verifica ções periódicas de saúde envolvem avalia ções regulares da saúde geral e do desempenho do sistema em intervalos predeterminados.
    • Cronograma: Essas verificações são conduzidas em horários agendados, frequentemente como parte da manutenção de rotina ou gerenciamento do sistema.
    • Escopo: Eles são mais amplos em escopo, com o objetivo de identificar problemas potenciais, gargalos ou degradação de desempenho ao longo do tempo.
      • Monitoramento pós-implantação (Post-deployment monitoring):
        • Objetivo: O monitoramento pós-implantação se concentra em observar o comportamento e o desempenho do sistema imediatamente após uma nova versão ou implantação de atualização.
        • Tempo: Começa imediatamente após a implanta ção e continua por um período específico para capturar insights em tempo real sobre a estabilidade e o desempenho do sistema.
        • Escopo: O foco está na detecção de problemas decorrentes da implantação recente, como bugs, erros ou comportamento inesperado.
    • Casos de uso: O monitoramento pós-implanta ção é fundamental para garantir que as últimas altera ções introduzidas em uma nova versão não afetem negativamente o desempenho do sistema ou a experiência do usuário.

​​​​​​​5. Verificação pós-implantação

  • Propósito: A verificação pós-implantação garante que o processo de implantação seja bem-sucedido e que a versão recém-lançada funcione como esperado.
  • Cronograma: Isso ocorre imediatamente após a implantação e envolve um conjunto de testes predefinidos para confirmar se a aplicação está acessível, se os recursos funcionam corretamente e se não existem erros críticos.
  • Escopo: O escopo é mais estreito, concentrando-se em confirmar a funcionalidade básica e a estabilidade da versão recém-implantada.

​​​​​​​Para saber mais sobre a verificação pós-implantação, leia keys-to-high-quality-service-releases-at-okta.

Além da implantação

O processo de entrega de recursos de Disponibilidade Geral (GA) resilientes se estende além da implantação; requer uma dedicação contínua à qualidade. Através da diversificação dos tipos de teste em desenvolvimento e da integração do monitoramento contínuo e da validação pós-implantação, as equipes de desenvolvimento podem estabelecer um ecossistema de Garantia de Qualidade (QA) robusto. Isso protege a qualidade inicial dos recursos de Disponibilidade Geral (GA) e garante sua excelência duradoura no reino em constante evolução do uso de software.

Tem perguntas sobre esta postagem do blog? Entre em contato conosco em eng_blogs@okta.com.

Explore mais Engineering Blogs perspicazes da Okta para expandir seu conhecimento.

Pronto para se juntar à nossa equipe apaixonada de engenheiros excepcionais? Visite nossa página de carreiras.

Desbloqueie o potencial do gerenciamento de identidade moderno e sofisticado para sua organização. Contate o departamento de vendas para obter mais informações.

Continue sua jornada de identidade