saveinmed/docs/QA_BACKLOG_150.md

11 KiB

🧪 Backlog de QA e Estabilização (150 Atividades)

Este documento detalha 150 tarefas de validação, testes e melhorias para garantir a robustez da plataforma SaveInMed.

🔐 Autenticação e Segurança (15 atividades)

  1. Validar bloqueio de força bruta no login.
  2. Testar expiração de token JWT após 24h.
  3. Verificar se usuários sem role de admin acessam /api/v1/admin.
  4. Validar reset de senha via e-mail (fluxo completo).
  5. Testar registro de empresa com CNPJ inválido.
  6. Validar se um usuário de uma empresa pode ver pedidos de outra empresa (Isolamento de Tenant).
  7. Testar sanitização de inputs contra SQL Injection em todos os filtros.
  8. Verificar proteção contra XSS no cadastro de descrição de produtos.
  9. Validar se o Password Pepper está sendo aplicado corretamente em novos cadastros.
  10. Testar login simultâneo em múltiplos dispositivos.
  11. Validar logout e invalidação imediata do token no client-side.
  12. Verificar se logs do sistema expõem senhas ou tokens (Segurança de Log).
  13. Testar upload de documentos de empresa com arquivos maliciosos (.exe, .js).
  14. Validar CORS apenas para domínios autorizados.
  15. Verificar headers de segurança (HSTS, CSP, X-Frame-Options).

📦 Catálogo e Busca (20 atividades)

  1. Validar filtro por validade (mínimo de dias) no backend.
  2. Testar busca por EAN com 13 dígitos.
  3. Testar busca por EAN com 14 dígitos.
  4. Verificar se produtos com estoque zero aparecem na busca pública.
  5. Validar mascaramento do seller_id no JSON da busca pública.
  6. Testar ordenação por menor preço.
  7. Testar ordenação por validade mais próxima.
  8. Validar paginação da busca (limite de 20, 50, 100 itens).
  9. Verificar se o filtro de categoria retorna produtos de subcategorias.
  10. Testar busca por termos com acentuação (ex: "Água").
  11. Validar exibição da distância (km) baseada no CEP do comprador.
  12. Testar comportamento da busca sem coordenadas de latitude/longitude.
  13. Verificar se a imagem do produto carrega corretamente via proxy de uploads.
  14. Testar importação massiva de produtos via CSV (1000+ itens).
  15. Validar erro ao importar CSV com colunas faltando.
  16. Verificar se o "nome social" do produto é exibido prioritariamente.
  17. Testar filtro de "Fabricante".
  18. Validar se a unidade de medida (caixa, frasco) está correta na listagem.
  19. Testar cache de resultados de busca frequentes.
  20. Verificar tempo de resposta da busca (< 500ms).

🛒 Carrinho e Checkout (25 atividades)

  1. Testar adição de itens de diferentes vendedores no mesmo carrinho (deve separar por pacote).
  2. Validar cálculo de subtotal por item (preço * quantidade).
  3. Verificar persistência do carrinho no localStorage.
  4. Testar remoção de itens do carrinho.
  5. Validar limite de estoque ao tentar adicionar mais itens do que o disponível.
  6. Testar fluxo de checkout sem estar logado (deve redirecionar para login).
  7. Validar cálculo de frete na Etapa 2 do Checkout.
  8. Testar seleção de frete grátis vs pago.
  9. Verificar se o valor do frete é somado corretamente ao total do pedido.
  10. Testar geração de Pix real via Mercado Pago no checkout.
  11. Testar geração de Pix real via Asaas no checkout.
  12. Validar exibição do QR Code Base64.
  13. Testar botão "Copia e Cola" do Pix no mobile.
  14. Verificar se o pedido é criado com status "Pendente" antes do pagamento.
  15. Validar limpeza do carrinho após finalização do pedido.
  16. Testar concorrência: dois usuários comprando o último item ao mesmo tempo.
  17. Verificar se cupons de desconto (se houver) aplicam corretamente.
  18. Testar checkout com endereço de entrega diferente do endereço da empresa.
  19. Validar se o botão "Finalizar Pedido" desabilita durante o processamento.
  20. Testar retorno de erro do gateway (cartão recusado).
  21. Verificar se o order_id gerado segue o padrão UUIDv7.
  22. Validar se o Split de 12% é calculado sobre o valor total (com frete?).
  23. Testar checkout com múltiplos itens de um mesmo lote.
  24. Verificar se a observação do pedido é salva corretamente.
  25. Validar tempo de expiração do Pix (30 min).

💳 Pagamentos e Webhooks (20 atividades)

  1. Validar recebimento de webhook do Mercado Pago para status "approved".
  2. Validar recebimento de webhook do Mercado Pago para status "rejected".
  3. Testar webhook do Asaas para status "PAYMENT_RECEIVED".
  4. Verificar se o status do pedido muda para "Pago" automaticamente via webhook.
  5. Testar idempotência dos webhooks (receber o mesmo ID 2x não deve duplicar log).
  6. Validar se a Fatura é marcada como paga automaticamente.
  7. Verificar logs de erro para webhooks com assinatura inválida.
  8. Testar consulta de status manual via endpoint /pay para casos de falha de webhook.
  9. Validar cálculo do SellerReceivable (Total - 12%).
  10. Verificar se o MarketplaceFee (12%) é registrado no Ledger.
  11. Testar estorno (Refund) via painel admin.
  12. Validar se o estorno atualiza o status do pedido para "Cancelado".
  13. Testar split de pagamento com vendedor que não tem conta configurada.
  14. Verificar logs de transação financeira no banco de dados.
  15. Validar se pagamentos com cartão de crédito pedem CPF/CNPJ corretamente.
  16. Testar fluxo de pagamento "Pendente" (ex: Boleto ou Pix não pago).
  17. Verificar se notificações push são enviadas ao vendedor após o pagamento.
  18. Validar se o comprador recebe e-mail de confirmação.
  19. Testar troca dinâmica de gateway via variável de ambiente.
  20. Verificar segurança da URL de notificação (não deve exigir auth mas deve ser validada).

📊 Dashboard do Vendedor (15 atividades)

  1. Validar cálculo do "Total de Vendas" no dashboard.
  2. Verificar se a lista de "Pedidos Recentes" mostra apenas os últimos 5.
  3. Testar botão "Ver Tudo" na lista de pedidos do dashboard.
  4. Validar alertas de estoque baixo (itens < 10 unidades).
  5. Verificar se produtos de outras empresas aparecem no dashboard (deve ser proibido).
  6. Testar atualização manual do status do pedido (Pendente -> Faturado).
  7. Validar se o vendedor pode baixar a nota fiscal (se implementado).
  8. Testar filtro por data no gráfico de vendas.
  9. Verificar exibição dos "Top Produtos" mais vendidos.
  10. Validar se o saldo disponível para saque está correto.
  11. Testar solicitação de saque (Withdrawal).
  12. Verificar histórico de extrato financeiro (Ledger).
  13. Validar se o vendedor pode editar apenas seus próprios produtos.
  14. Testar upload de logotipo da empresa.
  15. Verificar tempo de carregamento dos KPIs do dashboard.

🏢 Gestão de Empresas e Usuários (15 atividades)

  1. Validar cadastro de nova Farmácia Vendedora via Admin.
  2. Testar edição de dados cadastrais (Telefone, E-mail).
  3. Verificar se o CNPJ é validado via API externa (se integrado).
  4. Testar ativação/desativação de conta de empresa.
  5. Validar fluxo de "Completar Registro" para novos usuários.
  6. Testar adição de múltiplos colaboradores em uma mesma empresa.
  7. Verificar permissões de "Operador" vs "Proprietário".
  8. Validar se um usuário desativado consegue fazer login.
  9. Testar troca de senha dentro do perfil.
  10. Verificar se a categoria da empresa (Farmácia Compradora/Vendedora) altera o menu.
  11. Validar validação de CEP no cadastro de endereço.
  12. Testar se o mapa de calor de vendas funciona no Admin.
  13. Verificar se o histórico de acessos (Audit Log) está registrando logins.
  14. Testar remoção de colaborador da empresa.
  15. Validar se documentos da empresa (Alvará, CRF) são obrigatórios.

🚚 Logística e Frete (15 atividades)

  1. Validar raio de entrega máximo configurado pelo vendedor.
  2. Testar cálculo de frete por KM rodado.
  3. Testar cálculo de frete por faixa de CEP.
  4. Verificar comportamento quando o comprador está fora do raio de entrega.
  5. Testar frete grátis para pedidos acima de determinado valor.
  6. Validar geração de guia de transporte (Shipment).
  7. Verificar se o código de rastreio é enviado ao comprador.
  8. Testar atualização de status para "Em Trânsito".
  9. Validar se o custo do frete é repassado integralmente ao vendedor (ou retido?).
  10. Verificar integração com APIs de transportadoras (ex: Melhor Envio).
  11. Testar frete fixo por estado.
  12. Validar peso máximo por pedido para cálculo de frete.
  13. Verificar se o tempo de entrega estimado é realista.
  14. Testar cancelamento de entrega.
  15. Validar prova de entrega (assinatura ou foto).

🖥️ UX/UI e Responsividade (15 atividades)

  1. Testar menu lateral no mobile (deve ser colapsável).
  2. Verificar contraste de cores para acessibilidade (WCAG).
  3. Testar todos os botões no modo "Dark Mode" (se disponível).
  4. Validar mensagens de erro amigáveis no frontend (não exibir stack trace).
  5. Testar carregamento progressivo de imagens (Skeleton screen).
  6. Verificar se o modal de confirmação aparece antes de deletar algo.
  7. Testar usabilidade do filtro de validade no mobile (slider).
  8. Validar se o campo de busca limpa corretamente ao clicar no "X".
  9. Verificar consistência de fontes e tamanhos de texto.
  10. Testar navegação por teclado (Tab index) em formulários.
  11. Validar se estados de "Loading" aparecem em todas as chamadas de API.
  12. Verificar favicon e títulos das páginas no navegador.
  13. Testar comportamento de "Pull to Refresh" no mobile.
  14. Validar se tooltips de ajuda aparecem em campos complexos.
  15. Verificar se o layout quebra em resoluções 4K ou muito baixas (320px).

⚙️ DevOps e Infraestrutura (10 atividades)

  1. Validar tempo de Build do Docker (deve ser < 5 min).
  2. Verificar se o Hot Reload está funcionando no ambiente de dev.
  3. Testar restauração de backup do banco de dados Postgres.
  4. Validar limites de memória e CPU dos containers.
  5. Verificar se logs de erro são enviados para Sentry/CloudWatch.
  6. Testar escalabilidade: Simular 50 usuários simultâneos.
  7. Validar limpeza automática de arquivos temporários de upload.
  8. Verificar se a conexão com o banco usa SSL em produção.
  9. Testar tempo de inatividade (Downtime) durante deploy.
  10. Validar certificados SSL Let's Encrypt (auto-renovação).