Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • W Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Gastrô
  • Wiki
  • Wiki
  • Testes automatizados

Last edited by Arthur Kunzler Jun 04, 2025
Page history
This is an old version of this page. You can view the most recent version or browse the history.

Testes automatizados

Home Escopo e Cronograma Processo Design/Mockups Configuração Arquitetura Infra Código BD

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:
    1. Abrir aplicativo na tela Home
    2. Clicar em "Cadastre-se" (link na tela inicial)
    3. Preencher campos obrigatórios:
      • Nome completo
      • Nickname
      • Email
      • Senha
      • Telefone
      • Gênero (dropdown)
      • Data de nascimento
    4. Clicar em "Próximo" (deve direcionar para tela de seleção de categorias)
    5. Selecionar preferências (categorias)
    6. 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:
    1. Na tela Home, clicar em "Cadastre seu restaurante aqui!"
    2. 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
    1. 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
    1. Clicar em avançar, deve voltar para o cadastro
    2. Ao clicar em "Próximo" deve direcionar para tela de seleção de categorias
    3. Selecionar preferências (categorias)
    4. 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:
    1. Na tela Home, clicar em "Entrar"
    2. Inserir email no campo específico
    3. Inserir senha no campo específico
    4. Clicar em botão "Entrar"
    5. 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:
    1. Fazer login e verificar aba Feed ativa (ícone home)
    2. Clicar na aba Search (ícone search) - índice 1
    3. Clicar na aba Roulette (ícone especial roleta) centralizada - índice 2
    4. Clicar na aba Community (ícone groups) - índice 3
    5. Clicar na aba Profile (ícone person) - índice 4
    6. 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:
    1. Login como USER → verificar redirecionamento para "/UserProfile"
    2. Login como INFLUENCER → verificar redirecionamento para "/InfluencerProfile"
    3. 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:
    1. Fazer login e aguardar carregamento
    2. Verificar permissão de localização (do dispositivo)
    3. Aguardar carregamento de latitude/longitude
    4. Verificar chamada da API getFeed com coordenadas
    5. Verificar exibição do Header com dados do usuário
    6. Verificar SearchInput (apenas clicável, não editável)
    7. Verificar banner da Roleta (imagem card-roulette.png)
    8. Verificar seção "Restaurantes perto de você"
    9. 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:
    1. Clicar no SearchInput → redirecionamento para "/Search"
    2. Clicar no banner da Roleta → redirecionamento para "/Roulette"
    3. Interagir com o carousel de restaurantes próximos: ao clicar em um item do carrossel, redireciona para tela de perfil do restaurante clicado
    4. 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:
    1. Testar com loading (LocationProvider) → ActivityIndicator visível
    2. Testar com erro de API → mensagem de erro vermelha centralizada
    3. 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:
    1. Acessar aba Search
    2. Verificar SearchInput com placeholder "Pesquisar"
    3. Digitar termo de busca
    4. Executar busca (hook useSearch)
    5. Verificar loading state (ActivityIndicator)
    6. 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:
    1. Na aba Search, digitar "@" seguido de nome
    2. Verificar detecção automática (isUserSearch = true)
    3. Verificar componente SearchUsers sendo exibido
    4. 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:
    1. Buscar por nome de restaurante (sem @)
    2. Verificar componente SearchRestaurants
    3. Verificar filtros disponíveis (se houver)
    4. 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:
    1. Acessar tela de filtros
    2. Aplicar filtros disponíveis
    3. Ver resultados filtrados (FilterResultScreen)
    4. 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:
    1. Acessar aba Roulette (ícone especial)
    2. Verificar gradiente de fundo (#FFB370 → #FF914B)
    3. Verificar imagem da roleta com animação
    4. Verificar botão de girar
    5. 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:
    1. Clicar no filtro "Vibe" → RouletteVibeModal
    2. Selecionar vibe (setSelectedVibe)
    3. Clicar no filtro "Budget" → RouletteBudgetModal
    4. Selecionar orçamento (setSelectedBudget)
    5. Usar filtro geral → RouletteFilterModal
    6. 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:
    1. Configurar filtros (vibe e budget)
    2. Clicar para girar a roleta (spinRoulette)
    3. Verificar estado isSpinning = true
    4. Aguardar animação (2000ms duration)
    5. Verificar confetti.gif durante 2.8s
    6. Verificar chamada getRandomRestaurant(vibe, budget)
    7. 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:
    1. Verificar modal com dados do restaurante sorteado
    2. Ver detalhes do restaurante
    3. Opções de ação (aceitar, rejeitar, ver mais)
    4. 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:
    1. Acessar tela CreateReview via navegação
    2. Aguardar carregamento dos dados do usuário (getUserById)
    3. Verificar campos disponíveis:
      • Campo description (CustomTextInput)
      • Sistema de nota/estrelas (setNota)
      • Altura dinâmica do input (setImputHeight)
    4. Preencher descrição da avaliação
    5. Selecionar nota (0-5 estrelas com FontAwesome)
    6. 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:
    1. Verificar ActivityIndicator durante loading
    2. Verificar tratamento de erro (mensagem de erro se houver)
    3. Verificar layout responsivo (SafeAreaView, ScrollView)
    4. Verificar ícones de avaliação (FontAwesome stars)
    5. 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:
    1. Tentar enviar sem descrição
    2. Tentar enviar sem nota
    3. Verificar campos obrigatórios
    4. 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:
    1. UserProfile: Acesso para role = 'USER'
      • Verificar redirecionamento automático
      • Verificar funcionalidades específicas de usuário comum
    2. InfluencerProfile: Acesso para role = 'INFLUENCER'
      • Verificar funcionalidades específicas de influenciador
    3. restaurantProfile: Acesso para role = 'RESTAURANT'
      • Verificar redirecionamento com restaurantId = user.id
      • Verificar dashboard de restaurante
  • 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:
    1. Acessar tela RestaurantProfilePatch
    2. Editar informações do estabelecimento
    3. Atualizar dados comerciais
    4. 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:
    1. Acessar tela AddMedia
    2. Selecionar imagens da galeria
    3. Adicionar descrições/legendas
    4. 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:
    1. Testar com conexão intermitente
    2. Testar com dados inválidos
    3. Testar upload de arquivo muito grande
    4. Testar caracteres especiais em texto
    5. Testar limites de caracteres

8.2 Performance e Usabilidade

  • Objetivo: Verificar experiência do usuário
  • Passos:
    1. Medir tempo de carregamento de telas
    2. Testar com lista grande de restaurantes
    3. Testar scroll em feeds extensos
    4. Verificar responsividade da interface
    5. Testar em diferentes tamanhos de tela

8.3 Segurança e Privacidade

  • Objetivo: Verificar proteção de dados
  • Passos:
    1. Testar acesso a dados sem permissão
    2. Verificar criptografia de senhas
    3. Testar bloqueio após tentativas incorretas
    4. Verificar expiração de sessão
    5. Testar exclusão de dados pessoais
Clone repository
  • Arquitetura
  • BD
  • BancoDeDados
  • Codigo
  • Design
    • Mockups
  • EAP
  • Escopo e Cronograma
  • Infraestrutura
  • Processo
  • Testes automatizados
  • banco de dados
  • configuracao
  • Home