Skip to content

UI/UX Transversal - Plano de testes

Escopo

Testes transversais de UI/UX que se aplicam a todos os modulos do Contrasync, incluindo alternancia dark mode/light mode, layout responsivo, internacionalizacao (pt-BR e en), estados de loading, erro e vazio, validacoes de formularios, navegacao e acessibilidade basica.

Pre-condicoes

  • Usuario autenticado com empresa selecionada
  • Acesso a todos os modulos da aplicacao
  • Navegadores de teste: Chrome, Firefox, Safari (ultimas 2 versoes)
  • Dispositivos de teste: Desktop (1920x1080), Tablet (768x1024), Mobile (375x812)
  • MSW configurado para simular estados de loading e erro

Cenarios de teste

Dark mode / Light mode

#CenarioPassosResultado esperadoPrioridade
1Alternar para dark mode1. Em qualquer pagina (light mode) 2. Clicar no botao de alternancia de temaToda a interface muda para tema escuro. Cores de fundo, texto e componentes adaptamAlta
2Alternar para light mode1. Em dark mode 2. Clicar no botao de alternanciaInterface retorna ao tema claroAlta
3Preferencia persistida1. Selecionar dark mode 2. Fechar navegador 3. Reabrir a aplicacaoTema dark mode permanece selecionadoAlta
4Formularios em dark mode1. Ativar dark mode 2. Acessar qualquer formularioCampos de input, selects, datepickers leggiveis com contraste adequadoAlta
5Tabelas em dark mode1. Ativar dark mode 2. Acessar pagina com tabelasTabelas legiveis. Linhas alterndas com contraste. Headers visiveisMedia
6Graficos em dark mode1. Ativar dark mode 2. Acessar pagina com graficos (ex: consolidado)Graficos adaptam cores. Labels e eixos legiveisMedia
7Modais e drawers em dark mode1. Ativar dark mode 2. Abrir modal ou drawerComponentes overlay respeitam o tema escuroMedia
8Badges e tags em dark mode1. Ativar dark mode 2. Verificar badges de status e tagsCores e contraste adequados para leituraMedia

Layout responsivo

#CenarioPassosResultado esperadoPrioridade
9Desktop (1920x1080)1. Acessar aplicacao em resolucao desktop 2. Navegar pelos modulosLayout completo com sidebar, conteudo principal e paineis lateraisAlta
10Tablet (768x1024)1. Redimensionar para resolucao de tablet 2. Navegar pelos modulosLayout adapta: sidebar recolhida ou menu hamburger, conteudo ocupa largura totalAlta
11Mobile (375x812)1. Redimensionar para resolucao mobile 2. Navegar pelos modulosLayout empilhado: menu mobile, conteudo em coluna unica, botoes em largura totalAlta
12Tabelas responsivas1. Acessar tabela em tela pequenaTabela com scroll horizontal ou layout alternativo (cards)Media
13Formularios responsivos1. Acessar formulario em tela mobileCampos em coluna unica. Botoes acessiveis. Teclado nao obstrui inputsMedia
14Sidebar em tablet1. Em resolucao tablet 2. Abrir e fechar sidebarSidebar funciona como overlay ou recolhivel. Conteudo acessivelMedia

Internacionalizacao (i18n)

#CenarioPassosResultado esperadoPrioridade
15Trocar idioma para ingles1. Acessar configuracoes de idioma 2. Selecionar "English"Toda a interface traduzida para ingles. Nenhum texto em portuguesAlta
16Trocar idioma para portugues1. Em ingles 2. Selecionar "Portugues (BR)"Toda a interface traduzida para portugues. Nenhum texto em inglesAlta
17Preferencia de idioma persistida1. Selecionar idioma 2. Recarregar paginaIdioma selecionado permaneceAlta
18Mensagens de validacao traduzidas1. Em ingles 2. Acionar validacao de formularioMensagens de erro em inglesMedia
19Datas formatadas por locale1. Verificar exibicao de datas em pt-BR e enpt-BR: "23/03/2026", en: "03/23/2026" ou formato localMedia
20Numeros formatados por locale1. Verificar valores monetarios em pt-BR e enpt-BR: "R$ 1.500,00", en: "$1,500.00" ou formato adequadoMedia
21Nenhuma chave de traducao visivel1. Em ambos os idiomas 2. Navegar por todas as paginasNenhum texto tipo "auth.login.title" visivel. Todas as chaves traduzidasAlta

Estados de loading

#CenarioPassosResultado esperadoPrioridade
22Loading em listagens1. Acessar pagina com listagem (prestadores, templates) 2. Observar carregamentoSkeleton, spinner ou indicador de loading exibido ate dados carregaremAlta
23Loading em formularios ao salvar1. Preencher formulario 2. Clicar em "Salvar"Botao exibe loading (spinner ou texto "Salvando..."). Botao desabilitadoAlta
24Loading em upload de arquivo1. Fazer upload de arquivo 2. Observar durante envioBarra de progresso ou spinner exibido ate upload completarMedia

Estados de erro

#CenarioPassosResultado esperadoPrioridade
25Erro de carregamento de pagina1. Simular erro 500 ao carregar paginaMensagem de erro amigavel exibida. Opcao de "Tentar novamente"Alta
26Erro de submissao de formulario1. Simular erro ao salvar formularioMensagem de erro exibida. Dados do formulario preservadosAlta
27Erro de rede (offline)1. Desabilitar conexao de rede 2. Tentar qualquer acaoMensagem informando problema de conexaoMedia
28Toast de erro1. Acionar qualquer erro de APIToast/notificacao de erro exibida com mensagem legivel (nao tecnica)Alta

Estados vazios

#CenarioPassosResultado esperadoPrioridade
29Lista vazia - templates1. Acessar modulo sem templates criadosMensagem "Nenhum template encontrado" com call-to-action para criarAlta
30Lista vazia - contratos1. Acessar modulo sem contratosEstado vazio com mensagem orientativaAlta
31Lista vazia apos filtro1. Aplicar filtro que nao retorna resultadosMensagem "Nenhum resultado encontrado" com sugestao de ajustar filtrosMedia

Validacoes de formularios

#CenarioPassosResultado esperadoPrioridade
32Campo obrigatorio vazio1. Deixar campo obrigatorio vazio 2. Submeter formularioCampo destacado com borda vermelha e mensagem de erro abaixoAlta
33Email com formato invalido1. Digitar "email-invalido" em campo de emailMensagem de formato invalido exibidaAlta
34Validacao em tempo real1. Preencher campo com valor invalido 2. Mover foco para proximo campoValidacao exibida ao perder foco (blur)Media
35Mascara de campos (CPF, CNPJ, telefone)1. Digitar numeros em campos com mascaraFormatacao aplicada automaticamente conforme digitacaoMedia
#CenarioPassosResultado esperadoPrioridade
36Menu lateral - item ativo1. Acessar modulo de templates 2. Verificar menu lateralItem "Templates" destacado como ativo no menuAlta
37Botao voltar do navegador1. Navegar: Dashboard > Templates > Detalhe 2. Clicar "Voltar" no navegadorRetorna para lista de templates (pagina anterior) sem errosAlta
38Navegacao por URL direta1. Digitar URL direta de um modulo na barra de enderecoPagina carrega corretamente (se autenticado) ou redireciona para loginMedia
39Breadcrumbs1. Navegar ate pagina interna (ex: detalhe de contrato) 2. Verificar breadcrumbsTrilha de navegacao exibida e clicavel (ex: Dashboard > Contratos > Contrato #123)Media

Acessibilidade basica

#CenarioPassosResultado esperadoPrioridade
40Navegacao por teclado (Tab)1. Em qualquer pagina 2. Navegar usando Tab/Shift+TabFoco visivel em elementos interativos. Ordem logicaMedia
41Contraste de texto1. Verificar texto em light e dark modeContraste minimo de 4.5:1 para texto normal (WCAG AA)Media
42Labels em campos de formulario1. Verificar formulariosTodos os campos possuem label associado (visivel ou aria-label)Media

Cenarios negativos

#CenarioPassosResultado esperado
1Mudar idioma durante preenchimentoTrocar idioma enquanto formulario esta preenchidoLabels traduzem. Dados preenchidos preservados
2Alternar tema durante modal abertoAbrir modal > trocar dark/light modeModal adapta ao novo tema sem fechar
3Redimensionar janela durante operacaoRedimensionar de desktop para mobile durante interacaoLayout adapta. Nenhum dado perdido
4Duplo clique em botoes de acaoClicar rapidamente duas vezes em qualquer botao de acaoApenas uma acao executada

Casos extremos

#CenarioResultado esperado
1Zoom do navegador em 200%Interface funcional e legivel
2Tela ultra-wide (3440x1440)Layout nao distorce. Conteudo centralizado ou adaptado
3Texto muito longo em campos de exibicaoTexto truncado com ellipsis ou quebra de linha adequada
450+ itens em dropdown/selectDropdown com scroll. Performance adequada
5Navegacao com JavaScript desabilitadoMensagem informando necessidade de JavaScript

Criterios de aceite

  • [ ] Dark mode e light mode funcionam em todas as paginas
  • [ ] Preferencia de tema persiste entre sessoes
  • [ ] Layout responsivo funciona em desktop, tablet e mobile
  • [ ] Tabelas e formularios adaptam em telas pequenas
  • [ ] Internacionalizacao completa em pt-BR e en
  • [ ] Nenhuma chave de traducao exposta na interface
  • [ ] Datas e numeros formatados conforme locale
  • [ ] Estados de loading exibidos durante carregamento e acoes
  • [ ] Botoes desabilitados durante processamento
  • [ ] Estados de erro amigaveis com opcao de retry
  • [ ] Estados vazios com mensagens orientativas
  • [ ] Validacoes de formulario claras e traduzidas
  • [ ] Navegacao por menu, URL direta e botao voltar funciona
  • [ ] Acessibilidade basica por teclado garantida