Home | Escopo e Cronograma | Processo | Design/Mockups | Configuração | Arquitetura | Infra | Código | BD |
---|
Testes automatizados
Como parte dos processos de garantia de qualidade de software, incluímos etapas automatizadas de verificação e validação do software.
Testes de integração no backend
Testes de intergação no Frontend
1. FLUXOS DE AUTENTICAÇÃO E ONBOARDING
1.1 Cadastro de Usuário Regular
- Objetivo: Verificar processo de cadastro com formulário específico
- Pré-condições: App instalado, primeira execução
-
Passos:
- Abrir aplicativo na tela Home
- Clicar em "Cadastre-se" (link na tela inicial)
- Preencher campos obrigatórios:
- Nome completo
- Nickname
- Senha
- Telefone
- Gênero (dropdown)
- Data de nascimento
- Clicar em "Próximo" (deve direcionar para tela de seleção de categorias)
- Selecionar preferências (categorias)
- Clicar em botão de finalizar cadastro
- Resultado esperado: Usuário cadastrado e direcionado para o feed
1.2 Cadastro de Restaurante
- Objetivo: Verificar cadastro de estabelecimento
- Pré-condições: App instalado
-
Passos:
- Na tela Home, clicar em "Cadastre seu restaurante aqui!"
- Preencher formulário específico de restaurante:
- Nome
- Endereço
- Descrição
- Telefone
- Preço médio
- Clica em Adicionar Cardápio
- Adiciona horários de funcionamento
- Ao clicar em Adicionar Cardápio, deve abrir tela de adição de item no cardápio. Preencehr os campos:
- Imagem
- Descrição
- Preço
- Clicar em avançar, deve voltar para o cadastro
- Ao clicar em "Próximo" deve direcionar para tela de seleção de categorias
- Selecionar preferências (categorias)
- Clicar em botão de finalizar cadastro
- Resultado esperado: Restaurante cadastrado com todos os campos, incluindo cardápio e horários, e redirecionando para tela do seu perfil (ou para o Login)
1.3 Login de Usuário
- Objetivo: Verificar autenticação existente
- Pré-condições: Usuário previamente cadastrado
-
Passos:
- Na tela Home, clicar em "Entrar"
- Inserir email no campo específico
- Inserir senha no campo específico
- Clicar em botão "Entrar"
- Verificar validação de campos obrigatórios
- Resultado esperado: Login realizado com sucesso, e redirecionamento para tela do Feed em "/Feed"
2. NAVEGAÇÃO PRINCIPAL E INTERFACE
2.1 Bottom Navigation (Tabs)
- Objetivo: Verificar navegação entre as 5 abas principais
- Componentes: Feed, Search, Roulette (ícone especial), Community, Profile
-
Passos:
- Fazer login e verificar aba Feed ativa (ícone home)
- Clicar na aba Search (ícone search) - índice 1
- Clicar na aba Roulette (ícone especial roleta) centralizada - índice 2
- Clicar na aba Community (ícone groups) - índice 3
- Clicar na aba Profile (ícone person) - índice 4
- Retornar para Feed (ícone home) - índice 0
- Resultado esperado: Navegação fluida, estados visuais corretos, estilo da barra (altura 66px, borda laranja)
2.2 Redirecionamento de Perfil por Role
- Objetivo: Verificar redirecionamento automático baseado no tipo de usuário
-
Passos:
- Login como USER → verificar redirecionamento para "/UserProfile"
- Login como INFLUENCER → verificar redirecionamento para "/InfluencerProfile"
- Login como RESTAURANT → verificar redirecionamento para "/restaurantProfile" com ID
- Resultado esperado: Cada tipo de usuário acessa seu perfil específico
3. FUNCIONALIDADES DO FEED
3.1 Feed Principal - Carregamento e Exibição
- Objetivo: Verificar funcionamento do feed baseado em localização
- Componentes: Header com nome/nickname, SearchInput, Banner da Roleta, Carrossel de Restaurantes e de Postagens
-
Passos:
- Fazer login e aguardar carregamento
- Verificar permissão de localização (do dispositivo)
- Aguardar carregamento de latitude/longitude
- Verificar chamada da API getFeed com coordenadas
- Verificar exibição do Header com dados do usuário
- Verificar SearchInput (apenas clicável, não editável)
- Verificar banner da Roleta (imagem card-roulette.png)
- Verificar seção "Restaurantes perto de você"
- Verificar carrossel de Restaurantes e de Postagens
- Resultado esperado: Feed carregado com todos os componentes, dados de localização utilizados
3.2 Interação com Componentes do Feed
- Objetivo: Testar elementos interativos do feed
-
Passos:
- Clicar no SearchInput → redirecionamento para "/Search"
- Clicar no banner da Roleta → redirecionamento para "/Roulette"
- Interagir com o carousel de restaurantes próximos: ao clicar em um item do carrossel, redireciona para tela de perfil do restaurante clicado
- Scroll vertical na tela
- Resultado esperado: Navegação correta, interações responsivas
3.3 Estados de Erro e Loading
- Objetivo: Verificar tratamento de cenários especiais
-
Passos:
- Testar com loading (LocationProvider) → ActivityIndicator visível
- Testar com erro de API → mensagem de erro vermelha centralizada
- Testar sem permissão de localização
- Resultado esperado: Feedback visual adequado para cada estado
4. SISTEMA DE BUSCA
4.1 Busca Geral (Search Tab)
- Objetivo: Verificar funcionalidade de busca integrada
- Componentes: SearchInput, SearchRestaurants, SearchUsers
-
Passos:
- Acessar aba Search
- Verificar SearchInput com placeholder "Pesquisar"
- Digitar termo de busca
- Executar busca (hook useSearch)
- Verificar loading state (ActivityIndicator)
- Verificar resultados divididos em restaurantes e usuários
- Resultado esperado: Busca unificada funcionando, resultados categorizados
4.2 Busca de Usuários (Prefixo @)
- Objetivo: Verificar busca específica de usuários
-
Passos:
- Na aba Search, digitar "@" seguido de nome
- Verificar detecção automática (isUserSearch = true)
- Verificar componente SearchUsers sendo exibido
- Verificar resultados de usuários
- Resultado esperado: Busca focada em usuários com prefixo @
4.3 Busca de Restaurantes
- Objetivo: Verificar busca de estabelecimentos
-
Passos:
- Buscar por nome de restaurante (sem @)
- Verificar componente SearchRestaurants
- Verificar filtros disponíveis (se houver)
- Acessar detalhes de restaurante encontrado
- Resultado esperado: Resultados relevantes de restaurantes
4.4 Filtros de Busca (FilterScreen/FilterResultScreen)
- Objetivo: Verificar sistema de filtros avançados
-
Passos:
- Acessar tela de filtros
- Aplicar filtros disponíveis
- Ver resultados filtrados (FilterResultScreen)
- Verificar contexto FilterResultProvider
- Resultado esperado: Filtros funcionais com resultados precisos
5. FUNCIONALIDADE ROLETA
5.1 Interface da Roleta
- Objetivo: Verificar componentes visuais e interação
- Componentes: Animação de rotação, modais de filtro, confetti, resultado
-
Passos:
- Acessar aba Roulette (ícone especial)
- Verificar gradiente de fundo (#FFB370 → #FF914B)
- Verificar imagem da roleta com animação
- Verificar botão de girar
- Verificar botões de filtros (Vibe, Budget, Filter)
- Resultado esperado: Interface visual completa e responsiva
5.2 Sistema de Filtros da Roleta
- Objetivo: Verificar modais de configuração
-
Passos:
- Clicar no filtro "Vibe" → RouletteVibeModal
- Selecionar vibe (setSelectedVibe)
- Clicar no filtro "Budget" → RouletteBudgetModal
- Selecionar orçamento (setSelectedBudget)
- Usar filtro geral → RouletteFilterModal
- Verificar persistência das seleções
- Resultado esperado: Filtros aplicados e mantidos entre interações
5.3 Execução da Roleta
- Objetivo: Testar algoritmo de recomendação e animação
-
Passos:
- Configurar filtros (vibe e budget)
- Clicar para girar a roleta (spinRoulette)
- Verificar estado isSpinning = true
- Aguardar animação (2000ms duration)
- Verificar confetti.gif durante 2.8s
- Verificar chamada getRandomRestaurant(vibe, budget)
- Aguardar RouletteRestaurantModal com resultado
- Resultado esperado: Animação fluida, API chamada com filtros, resultado exibido
5.4 Resultado da Roleta
- Objetivo: Verificar exibição e ações pós-roleta
-
Passos:
- Verificar modal com dados do restaurante sorteado
- Ver detalhes do restaurante
- Opções de ação (aceitar, rejeitar, ver mais)
- Girar novamente para novo resultado
- Resultado esperado: Informações completas, ações funcionais
6. SISTEMA DE AVALIAÇÕES
6.1 Criação de Review (CreateReview)
- Objetivo: Verificar processo completo de avaliação
- Pré-condições: Usuário logado, restaurantId fornecido via parâmetros
-
Passos:
- Acessar tela CreateReview via navegação
- Aguardar carregamento dos dados do usuário (getUserById)
- Verificar campos disponíveis:
- Campo description (CustomTextInput)
- Sistema de nota/estrelas (setNota)
- Altura dinâmica do input (setImputHeight)
- Preencher descrição da avaliação
- Selecionar nota (0-5 estrelas com FontAwesome)
- Enviar avaliação (createReview hook)
- Resultado esperado: Review criada e salva no sistema
6.2 Interface de Avaliação
- Objetivo: Verificar componentes visuais da tela
-
Passos:
- Verificar ActivityIndicator durante loading
- Verificar tratamento de erro (mensagem de erro se houver)
- Verificar layout responsivo (SafeAreaView, ScrollView)
- Verificar ícones de avaliação (FontAwesome stars)
- Verificar componente MaterialIcons para ações
- Resultado esperado: Interface limpa e funcional
6.3 Validação de Dados de Avaliação
- Objetivo: Verificar validações antes do envio
-
Passos:
- Tentar enviar sem descrição
- Tentar enviar sem nota
- Verificar campos obrigatórios
- Verificar limites de caracteres
- Resultado esperado: Validações apropriadas aplicadas
7. GERENCIAMENTO DE PERFIL
7.1 Perfis por Tipo de Usuário
- Objetivo: Verificar acesso específico baseado no role
-
Passos:
-
UserProfile: Acesso para role = 'USER'
- Verificar redirecionamento automático
- Verificar funcionalidades específicas de usuário comum
-
InfluencerProfile: Acesso para role = 'INFLUENCER'
- Verificar funcionalidades específicas de influenciador
-
restaurantProfile: Acesso para role = 'RESTAURANT'
- Verificar redirecionamento com restaurantId = user.id
- Verificar dashboard de restaurante
-
UserProfile: Acesso para role = 'USER'
- Resultado esperado: Cada perfil carrega funcionalidades específicas do role
7.2 Edição de Perfil de Restaurante (RestaurantProfilePatch)
- Objetivo: Verificar funcionalidades de edição para restaurantes
-
Passos:
- Acessar tela RestaurantProfilePatch
- Editar informações do estabelecimento
- Atualizar dados comerciais
- Salvar alterações
- Resultado esperado: Dados de restaurante atualizados
7.3 Funcionalidades de Mídia (AddMedia)
- Objetivo: Verificar adição de conteúdo visual
-
Passos:
- Acessar tela AddMedia
- Selecionar imagens da galeria
- Adicionar descrições/legendas
- Publicar mídia
- Resultado esperado: Mídia adicionada ao perfil/feed
8. CASOS ESPECIAIS E EDGE CASES
8.1 Tratamento de Erros
- Objetivo: Verificar resiliência do sistema
-
Passos:
- Testar com conexão intermitente
- Testar com dados inválidos
- Testar upload de arquivo muito grande
- Testar caracteres especiais em texto
- Testar limites de caracteres
8.2 Performance e Usabilidade
- Objetivo: Verificar experiência do usuário
-
Passos:
- Medir tempo de carregamento de telas
- Testar com lista grande de restaurantes
- Testar scroll em feeds extensos
- Verificar responsividade da interface
- Testar em diferentes tamanhos de tela
8.3 Segurança e Privacidade
- Objetivo: Verificar proteção de dados
-
Passos:
- Testar acesso a dados sem permissão
- Verificar criptografia de senhas
- Testar bloqueio após tentativas incorretas
- Verificar expiração de sessão
- Testar exclusão de dados pessoais