Files
Cloudsy/docs/13_testing.md
2026-04-29 16:58:09 +01:00

2.6 KiB

Testing — Cloudsy 🧪

🎯 Objetivo

Garantir que todas as funcionalidades da aplicação:

  • funcionam corretamente
  • são estáveis
  • oferecem boa experiência ao utilizador

🧠 Tipos de Testes

1. Testes Funcionais

Verificar se cada funcionalidade funciona como esperado.

2. Testes de UI/UX

Garantir que:

  • interface é intuitiva
  • estados visuais funcionam (loading, error, empty)

3. Testes de Integração

Verificar comunicação entre:

  • Flutter ↔ Firebase
  • App ↔ APIs (IA, lyrics)

🔐 AUTHENTICATION

Testes

  • Registo com email válido
  • Registo com password fraca → erro
  • Login com credenciais corretas
  • Login com credenciais erradas → erro
  • Logout funciona

🎵 MÚSICA

Upload

  • Upload de ficheiro válido
  • Upload falha → erro visível
  • Música aparece na lista após upload

Player

  • Play funciona
  • Pause funciona
  • Barra de progresso atualiza
  • Música troca corretamente

📂 PLAYLISTS

  • Criar playlist
  • Adicionar música
  • Remover música
  • Lista atualiza corretamente

🤖 IA (Clou)

Tagging

  • Música recebe género
  • Música recebe mood

Chat

  • Responde a perguntas
  • Sugere músicas
  • Não crasha com inputs inválidos

💬 DMs

  • Enviar mensagem de texto
  • Receber mensagem
  • Enviar música
  • Música aparece corretamente no chat

🌍 LOCALIZAÇÃO

  • App inicia em português
  • Mudança para inglês funciona
  • UI atualiza sem restart
  • Nenhum texto hardcoded

🎨 UI / UX

Tema

  • Segue tema do telemóvel (system)
  • Dark mode funciona
  • Light mode funciona

Botões

  • Todos são clicáveis
  • Feedback visual funciona
  • Bordas arredondadas consistentes

ESTADOS DA APP

Loading

  • Indicadores visuais presentes

Empty

  • Mensagens amigáveis

Error

  • Mensagens claras

🔥 TESTES CRÍTICOS (DEMO)

Antes da apresentação:

  • Login
  • Upload música
  • Player
  • IA tagging
  • Chat IA
  • Enviar música por DM

🧠 DEBUGGING GUIDELINES

Problemas comuns

Firebase não responde

  • Verificar config
  • Verificar regras

Upload falha

  • Verificar Storage rules

IA não responde

  • Verificar API key

🚀 NOTA FINAL

Testes não precisam ser automatizados para este projeto.

Mas:

  • Devem ser executados manualmente
  • Devem ser demonstráveis

📌 CONCLUSÃO

Um sistema testado:

  • reduz bugs
  • melhora UX
  • aumenta a qualidade percebida