saveinmed/docs/QA_BACKLOG_150.md

171 lines
11 KiB
Markdown

# 🧪 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)
16. [ ] Validar filtro por validade (mínimo de dias) no backend.
17. [ ] Testar busca por EAN com 13 dígitos.
18. [ ] Testar busca por EAN com 14 dígitos.
19. [ ] Verificar se produtos com estoque zero aparecem na busca pública.
20. [ ] Validar mascaramento do `seller_id` no JSON da busca pública.
21. [ ] Testar ordenação por menor preço.
22. [ ] Testar ordenação por validade mais próxima.
23. [ ] Validar paginação da busca (limite de 20, 50, 100 itens).
24. [ ] Verificar se o filtro de categoria retorna produtos de subcategorias.
25. [ ] Testar busca por termos com acentuação (ex: "Água").
26. [ ] Validar exibição da distância (km) baseada no CEP do comprador.
27. [ ] Testar comportamento da busca sem coordenadas de latitude/longitude.
28. [ ] Verificar se a imagem do produto carrega corretamente via proxy de uploads.
29. [ ] Testar importação massiva de produtos via CSV (1000+ itens).
30. [ ] Validar erro ao importar CSV com colunas faltando.
31. [ ] Verificar se o "nome social" do produto é exibido prioritariamente.
32. [ ] Testar filtro de "Fabricante".
33. [ ] Validar se a unidade de medida (caixa, frasco) está correta na listagem.
34. [ ] Testar cache de resultados de busca frequentes.
35. [ ] Verificar tempo de resposta da busca (< 500ms).
## 🛒 Carrinho e Checkout (25 atividades)
36. [ ] Testar adição de itens de diferentes vendedores no mesmo carrinho (deve separar por pacote).
37. [ ] Validar cálculo de subtotal por item (preço * quantidade).
38. [ ] Verificar persistência do carrinho no `localStorage`.
39. [ ] Testar remoção de itens do carrinho.
40. [ ] Validar limite de estoque ao tentar adicionar mais itens do que o disponível.
41. [ ] Testar fluxo de checkout sem estar logado (deve redirecionar para login).
42. [ ] Validar cálculo de frete na Etapa 2 do Checkout.
43. [ ] Testar seleção de frete grátis vs pago.
44. [ ] Verificar se o valor do frete é somado corretamente ao total do pedido.
45. [ ] Testar geração de Pix real via Mercado Pago no checkout.
46. [ ] Testar geração de Pix real via Asaas no checkout.
47. [ ] Validar exibição do QR Code Base64.
48. [ ] Testar botão "Copia e Cola" do Pix no mobile.
49. [ ] Verificar se o pedido é criado com status "Pendente" antes do pagamento.
50. [ ] Validar limpeza do carrinho após finalização do pedido.
51. [ ] Testar concorrência: dois usuários comprando o último item ao mesmo tempo.
52. [ ] Verificar se cupons de desconto (se houver) aplicam corretamente.
53. [ ] Testar checkout com endereço de entrega diferente do endereço da empresa.
54. [ ] Validar se o botão "Finalizar Pedido" desabilita durante o processamento.
55. [ ] Testar retorno de erro do gateway (cartão recusado).
56. [ ] Verificar se o `order_id` gerado segue o padrão UUIDv7.
57. [ ] Validar se o Split de 12% é calculado sobre o valor total (com frete?).
58. [ ] Testar checkout com múltiplos itens de um mesmo lote.
59. [ ] Verificar se a observação do pedido é salva corretamente.
60. [ ] Validar tempo de expiração do Pix (30 min).
## 💳 Pagamentos e Webhooks (20 atividades)
61. [ ] Validar recebimento de webhook do Mercado Pago para status "approved".
62. [ ] Validar recebimento de webhook do Mercado Pago para status "rejected".
63. [ ] Testar webhook do Asaas para status "PAYMENT_RECEIVED".
64. [ ] Verificar se o status do pedido muda para "Pago" automaticamente via webhook.
65. [ ] Testar idempotência dos webhooks (receber o mesmo ID 2x não deve duplicar log).
66. [ ] Validar se a Fatura é marcada como paga automaticamente.
67. [ ] Verificar logs de erro para webhooks com assinatura inválida.
68. [ ] Testar consulta de status manual via endpoint `/pay` para casos de falha de webhook.
69. [ ] Validar cálculo do `SellerReceivable` (Total - 12%).
70. [ ] Verificar se o MarketplaceFee (12%) é registrado no Ledger.
71. [ ] Testar estorno (Refund) via painel admin.
72. [ ] Validar se o estorno atualiza o status do pedido para "Cancelado".
73. [ ] Testar split de pagamento com vendedor que não tem conta configurada.
74. [ ] Verificar logs de transação financeira no banco de dados.
75. [ ] Validar se pagamentos com cartão de crédito pedem CPF/CNPJ corretamente.
76. [ ] Testar fluxo de pagamento "Pendente" (ex: Boleto ou Pix não pago).
77. [ ] Verificar se notificações push são enviadas ao vendedor após o pagamento.
78. [ ] Validar se o comprador recebe e-mail de confirmação.
79. [ ] Testar troca dinâmica de gateway via variável de ambiente.
80. [ ] Verificar segurança da URL de notificação (não deve exigir auth mas deve ser validada).
## 📊 Dashboard do Vendedor (15 atividades)
81. [ ] Validar cálculo do "Total de Vendas" no dashboard.
82. [ ] Verificar se a lista de "Pedidos Recentes" mostra apenas os últimos 5.
83. [ ] Testar botão "Ver Tudo" na lista de pedidos do dashboard.
84. [ ] Validar alertas de estoque baixo (itens < 10 unidades).
85. [ ] Verificar se produtos de outras empresas aparecem no dashboard (deve ser proibido).
86. [ ] Testar atualização manual do status do pedido (Pendente -> Faturado).
87. [ ] Validar se o vendedor pode baixar a nota fiscal (se implementado).
88. [ ] Testar filtro por data no gráfico de vendas.
89. [ ] Verificar exibição dos "Top Produtos" mais vendidos.
90. [ ] Validar se o saldo disponível para saque está correto.
91. [ ] Testar solicitação de saque (Withdrawal).
92. [ ] Verificar histórico de extrato financeiro (Ledger).
93. [ ] Validar se o vendedor pode editar apenas seus próprios produtos.
94. [ ] Testar upload de logotipo da empresa.
95. [ ] Verificar tempo de carregamento dos KPIs do dashboard.
## 🏢 Gestão de Empresas e Usuários (15 atividades)
96. [ ] Validar cadastro de nova Farmácia Vendedora via Admin.
97. [ ] Testar edição de dados cadastrais (Telefone, E-mail).
98. [ ] Verificar se o CNPJ é validado via API externa (se integrado).
99. [ ] Testar ativação/desativação de conta de empresa.
100. [ ] Validar fluxo de "Completar Registro" para novos usuários.
101. [ ] Testar adição de múltiplos colaboradores em uma mesma empresa.
102. [ ] Verificar permissões de "Operador" vs "Proprietário".
103. [ ] Validar se um usuário desativado consegue fazer login.
104. [ ] Testar troca de senha dentro do perfil.
105. [ ] Verificar se a categoria da empresa (Farmácia Compradora/Vendedora) altera o menu.
106. [ ] Validar validação de CEP no cadastro de endereço.
107. [ ] Testar se o mapa de calor de vendas funciona no Admin.
108. [ ] Verificar se o histórico de acessos (Audit Log) está registrando logins.
109. [ ] Testar remoção de colaborador da empresa.
110. [ ] Validar se documentos da empresa (Alvará, CRF) são obrigatórios.
## 🚚 Logística e Frete (15 atividades)
111. [ ] Validar raio de entrega máximo configurado pelo vendedor.
112. [ ] Testar cálculo de frete por KM rodado.
113. [ ] Testar cálculo de frete por faixa de CEP.
114. [ ] Verificar comportamento quando o comprador está fora do raio de entrega.
115. [ ] Testar frete grátis para pedidos acima de determinado valor.
116. [ ] Validar geração de guia de transporte (Shipment).
117. [ ] Verificar se o código de rastreio é enviado ao comprador.
118. [ ] Testar atualização de status para "Em Trânsito".
119. [ ] Validar se o custo do frete é repassado integralmente ao vendedor (ou retido?).
120. [ ] Verificar integração com APIs de transportadoras (ex: Melhor Envio).
121. [ ] Testar frete fixo por estado.
122. [ ] Validar peso máximo por pedido para cálculo de frete.
123. [ ] Verificar se o tempo de entrega estimado é realista.
124. [ ] Testar cancelamento de entrega.
125. [ ] Validar prova de entrega (assinatura ou foto).
## 🖥️ UX/UI e Responsividade (15 atividades)
126. [ ] Testar menu lateral no mobile (deve ser colapsável).
127. [ ] Verificar contraste de cores para acessibilidade (WCAG).
128. [ ] Testar todos os botões no modo "Dark Mode" (se disponível).
129. [ ] Validar mensagens de erro amigáveis no frontend (não exibir stack trace).
130. [ ] Testar carregamento progressivo de imagens (Skeleton screen).
131. [ ] Verificar se o modal de confirmação aparece antes de deletar algo.
132. [ ] Testar usabilidade do filtro de validade no mobile (slider).
133. [ ] Validar se o campo de busca limpa corretamente ao clicar no "X".
134. [ ] Verificar consistência de fontes e tamanhos de texto.
135. [ ] Testar navegação por teclado (Tab index) em formulários.
136. [ ] Validar se estados de "Loading" aparecem em todas as chamadas de API.
137. [ ] Verificar favicon e títulos das páginas no navegador.
138. [ ] Testar comportamento de "Pull to Refresh" no mobile.
139. [ ] Validar se tooltips de ajuda aparecem em campos complexos.
140. [ ] Verificar se o layout quebra em resoluções 4K ou muito baixas (320px).
## ⚙️ DevOps e Infraestrutura (10 atividades)
141. [ ] Validar tempo de Build do Docker (deve ser < 5 min).
142. [ ] Verificar se o Hot Reload está funcionando no ambiente de dev.
143. [ ] Testar restauração de backup do banco de dados Postgres.
144. [ ] Validar limites de memória e CPU dos containers.
145. [ ] Verificar se logs de erro são enviados para Sentry/CloudWatch.
146. [ ] Testar escalabilidade: Simular 50 usuários simultâneos.
147. [ ] Validar limpeza automática de arquivos temporários de upload.
148. [ ] Verificar se a conexão com o banco usa SSL em produção.
149. [ ] Testar tempo de inatividade (Downtime) durante deploy.
150. [ ] Validar certificados SSL Let's Encrypt (auto-renovação).