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 (comoMaze
)
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.