Plano de Teste Extensivo (Web) - Canta Igreja
Data: 2026-05-14 Alvo: https://meu.canta.app Base de apoio: docs/reversa (arquitetura, dominio, state-machines, permissoes)
1) Analise exploratoria consolidada
1.1 Funcionalidades identificadas no deploy
-
Navegacao principal
-
Tabs: Inicio, Busca, Repertorios
-
Atalhos na home: Buscar musica, Meus repertorios, Liturgia diaria, Ver todas as sugestoes
-
Sugestoes de repertorio
-
Lista de sugestoes por data liturgica
- Detalhe da sugestao com musicas recomendadas
-
Conversao de sugestao em repertorio do usuario
-
Repertorios
-
Criar repertorio
- Renomear repertorio
- Duplicar repertorio
- Definir data
- Excluir repertorio
-
Itens de repertorio (musica catalogada ou termo livre)
-
Busca de musicas
-
Campo de busca por trecho
- Filtros: Momento, Tempo liturgico e Outro
-
Fluxo de incluir termo livre em repertorio (na tela de inclusao para repertorio)
-
Tela de musica
-
Visualizacao de letra
- Favoritar/desfavoritar
- Navegar para musica anterior/posterior (quando em contexto de repertorio)
- Modal de livros da musica
- Compartilhar
- Relatar erro
-
Configuracoes de leitura (fonte, refrão, estilo)
-
Configuracoes
-
Tema
- Login Google
- Letras de musicas baixadas (selecoes de biblioteca)
- Atualizar biblioteca
-
Aparencia da letra
-
Repertorios padrao
-
Musicas favoritas
- Musicas vistas recentemente
1.2 Cobertura por dominio funcional (visao macro)
- Home e navegacao: coberto na exploracao
- Busca e filtros: coberto na exploracao
- Sugestoes e conversao: coberto na exploracao
- Repertorios CRUD: coberto na exploracao
- Musica e acoes contextuais: coberto na exploracao
- Configuracoes e biblioteca: coberto na exploracao
- Autenticacao Google: coberto (erro identificado)
2) Achados iniciais (erros observados na exploracao)
-
Erro de autenticacao Google
-
Sintoma: TypeError reading authorize
- Fluxos onde apareceu: Compartilhar repertorio e Entrar com conta Google
-
Evidencia de stack: bundle principal (index-*.js), camada de auth
-
Erro ao salvar Momento/Tonalidade
-
Sintoma: TypeError: Cannot assign to read only property 'valor' of object
- Fluxos onde apareceu: Modal de Momento e modal de Tonalidade na tela de musica
-
Evidencia de stack: MomentoModalScreen e YoutubeBarPlayerView no bundle
-
Erro de estado ao voltar de fluxo de musica/repertorio
-
Sintoma: TypeError reading ids
- Fluxo: retorno para repertorio apos navegacao em musica
-
Evidencia de stack: MusicasRepertorioPadraoScreen
-
Erro de infraestrutura de layout
-
Sintoma: No safe area value available (SafeAreaProvider)
-
Fluxo: apos navegacoes especificas de volta
-
Comportamento inconsistente na busca e em atalhos
-
Liturgia diaria na home nem sempre navega
- Busca na tela /busca pode nao renderizar lista de resultado mesmo com termo
- Campo de busca em SugestoesRepertorioLista nao persistiu valor durante testes
3) Estrategia de teste extensivo
Onda 1 - Smoke (P0)
Objetivo: validar caminhos criticos e disponibilidade do produto.
Casos:
- Home abre com tabs principais
- Navegacao entre tabs funciona
- Abertura de sugestao funciona
- Conversao de sugestao em repertorio funciona
- Configuracoes abrem e atualizacao de biblioteca responde
Onda 2 - Regressao funcional (P1)
Objetivo: validar regras de negocio principais por modulo.
Casos:
- Repertorios: criar, renomear, duplicar, excluir
- Repertorio: incluir termo livre
- Busca: filtros Momento/Tempo/Outro
- Musica: favoritar, livros, compartilhar, relatar erro
- Repertorios padrao: favoritas e recentes
Onda 3 - Regressao tecnica (P1/P2)
Objetivo: capturar erros de runtime e regressao de console.
Casos:
- Guardrails de console na autenticacao
- Guardrails de console ao salvar Momento
- Guardrails de console ao salvar Tonalidade
- Guardrails de console em retorno de navegacao
Onda 4 - Exaustivo (P2)
Objetivo: profundidade por estado e combinacoes.
Casos:
- Matriz de filtros (termo x momento x tempo x outro)
- Repertorios com volumes altos de itens
- Fluxo de data liturgica e associacao de sugestoes
- Cross-browser e viewport (desktop/mobile)
4) Arquivos Playwright gerados para execucao futura
Local:
- app/e2e/playwright
Arquivos:
- playwright.config.ts
- helpers/app.ts
- helpers/consoleWatch.ts
- tests/00-smoke-navigation.spec.ts
- tests/10-home-sugestoes.spec.ts
- tests/20-repertorios-crud.spec.ts
- tests/30-busca-filtros.spec.ts
- tests/40-musica-detalhes.spec.ts
- tests/50-configuracoes.spec.ts
- tests/60-console-regression.spec.ts
- README.md
5) Mapeamento de cobertura (suite x modulo)
- 00-smoke-navigation: navegacao macro, home, tabs
- 10-home-sugestoes: home + sugestoes + criar repertorio a partir de sugestao
- 20-repertorios-crud: ciclo de vida de repertorio
- 30-busca-filtros: busca e filtros liturgicos
- 40-musica-detalhes: acoes da tela de musica
- 50-configuracoes: preferencias, biblioteca e login
- 60-console-regression: deteccao de erros de runtime
6) Monitoramento de console (padrao do plano)
Cada teste anexa:
- browser-issues.json (todos os eventos)
- browser-critical-issues.json (erros criticos)
Regras:
- Warnings operacionais conhecidos podem ficar em allowlist
- Erros de runtime devem falhar nas suites guardrails
- pageerror sempre exige investigacao
- requestfailed precisa ser triado por criticidade de impacto
7) Preparacao de dados para execucao
- Limpar estado local antes do ciclo (quando necessario)
- Criar dados de teste com nomes unicos por timestamp
- Evitar dependencia de conta real para casos anonimos
- Se houver conta de QA, separar suite autenticada da anonima
8) Criterio de saida por onda
- Onda 1: 100% dos casos P0 executados
- Onda 2: >= 95% dos casos P1 aprovados
- Onda 3: 0 erro critico em guardrails
- Onda 4: cobertura de combinacoes prioritarias definida no backlog
9) Proximo passo recomendado
Executar a suite 60-console-regression.spec.ts primeiro para materializar rapidamente os erros de runtime ja observados na exploracao, depois rodar as suites funcionais para amplitude de cobertura.