2.6 KiB
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