8 ‐ Testes e Qualidade - mateus-lora/byte-box GitHub Wiki

Para assegurar o funcionamento esperado do Byte Box, implementamos um robusto conjunto de práticas de teste e validação de qualidade ao longo do seu desenvolvimento. Este documento descreve os tipos de testes aplicados, sua abrangência e as ferramentas utilizadas.

Tipos de Testes (por Prioridade)

1. Testes Unitários

Objetivo:
Validar o comportamento de métodos e classes isoladas, tanto no backend quanto em componentes do React Native.

Ferramentas:

  • Backend: JUnit, Mockito
  • Frontend: Jest, React Native Testing Library

2. Testes de Integração

Objetivo:
Testar a comunicação entre módulos internos do backend e a integração entre frontend ↔ API.

Ferramentas:

  • Java: Spring Test, TestContainers
  • API: REST Assured, Postman

3. Testes de Funcionalidades (E2E)

Objetivo:
Verificar fluxos completos da aplicação em dispositivos reais/simulados.

Ferramentas:

  • React Native: Detox, Appium

4. Testes de Regressão

Objetivo:
Assegurar que alterações no código não quebrem funcionalidades já existentes.

Ferramentas:

  • Automatização com Jest, Detox, JUnit
  • Execução via CI/CD com GitHub Actions

5. Testes de Aceitação

Objetivo:
Garantir que os critérios de aceite definidos pelo cliente ou product owner sejam atendidos.

Ferramentas:

  • Cucumber (BDD com Java)
  • TestRail (gerenciamento de casos de teste)

6. Testes de Segurança

Objetivo:
Identificar e corrigir vulnerabilidades como XSS, SQL Injection e falhas de autenticação.

Ferramentas:

  • OWASP ZAP
  • SonarQube
  • Snyk

7. Testes de Performance

Objetivo:
Avaliar o desempenho da API e do aplicativo sob diferentes cargas.

Ferramentas:

  • Backend: JMeter, k6, Gatling
  • App: Flipper, React Native Performance Monitor

8. Testes de Stress

Objetivo:
Simular alta carga e uso extremo para verificar estabilidade e limites do sistema.

Ferramentas:

  • JMeter, k6, Gatling

9. Testes de Interface (UI/UX)

Objetivo:
Verificar responsividade e comportamento da interface em diferentes dispositivos.

Ferramentas:

  • Detox
  • React Native Testing Library
  • Appium

10. Testes de Usabilidade

Objetivo:
Avaliar a experiência do usuário real, focando em facilidade de uso e fluxo intuitivo.

Ferramentas:

  • Sessões com usuários reais
  • Análise de uso via Flipper ou ferramentas específicas de UX (como Maze)

Cobertura de Testes

O objetivo foi alcançar um alto nível de confiabilidade e segurança no funcionamento do sistema, com foco em qualidade contínua ao longo do desenvolvimento.

  • Cobertura de código: buscamos atingir pelo menos 85% de cobertura com testes unitários, garantindo que a lógica essencial esteja devidamente validada e protegida contra regressões.

  • Cobertura funcional: a meta foi alcançar 100% de cobertura nos fluxos principais da aplicação, por meio de testes automatizados e manuais que validam os cenários mais críticos e recorrentes de uso.

Esse nível de cobertura assegura que alterações no sistema possam ser feitas com confiança, reduzindo riscos e aumentando a estabilidade do produto.