feat: otimização de performance e ajustes finais
This commit is contained in:
@@ -0,0 +1,352 @@
|
||||
# 🚀 Guia Rápido de Testes - SIGEFP
|
||||
|
||||
**Para testadores e desenvolvedores**
|
||||
**Versão:** 1.0
|
||||
|
||||
---
|
||||
|
||||
## 📋 Checklist de Testes por Módulo
|
||||
|
||||
Use este guia para verificar rapidamente se cada funcionalidade está funcionando corretamente.
|
||||
|
||||
---
|
||||
|
||||
## ✅ Módulo Administração
|
||||
|
||||
### Utilizadores
|
||||
- [ ] Criar utilizador com dados válidos
|
||||
- [ ] Tentar criar com username duplicado (deve dar erro)
|
||||
- [ ] Tentar criar com email inválido (deve dar erro)
|
||||
- [ ] Editar utilizador existente
|
||||
- [ ] Atribuir perfis a utilizador
|
||||
- [ ] Desativar utilizador
|
||||
|
||||
### Perfis
|
||||
- [ ] Criar perfil com código único
|
||||
- [ ] Tentar criar com código duplicado (deve dar erro)
|
||||
- [ ] Atribuir permissões ao perfil
|
||||
- [ ] Editar perfil existente
|
||||
|
||||
### Auditoria
|
||||
- [ ] Consultar todos os logs
|
||||
- [ ] Filtrar por utilizador
|
||||
- [ ] Filtrar por módulo
|
||||
- [ ] Filtrar por período
|
||||
- [ ] Exportar logs
|
||||
|
||||
---
|
||||
|
||||
## ✅ Módulo Organização
|
||||
|
||||
### Ministérios
|
||||
- [ ] Criar ministério
|
||||
- [ ] Tentar criar com código duplicado (deve dar erro)
|
||||
- [ ] Editar ministério
|
||||
- [ ] Buscar ministério
|
||||
|
||||
### Unidades Orgânicas
|
||||
- [ ] Criar unidade de nível 1 (sem pai)
|
||||
- [ ] Criar unidade de nível 2 (com pai)
|
||||
- [ ] Verificar hierarquia
|
||||
- [ ] Filtrar por ministério
|
||||
|
||||
### Cargos
|
||||
- [ ] Criar cargo
|
||||
- [ ] Tentar criar com código duplicado (deve dar erro)
|
||||
- [ ] Editar cargo
|
||||
- [ ] Buscar cargo
|
||||
|
||||
---
|
||||
|
||||
## ✅ Módulo RH & Folha
|
||||
|
||||
### Agentes
|
||||
- [ ] Criar agente completo
|
||||
- [ ] Tentar criar com matrícula duplicada (deve dar erro)
|
||||
- [ ] Editar agente
|
||||
- [ ] Visualizar detalhes completos
|
||||
- [ ] Filtrar por status
|
||||
- [ ] Filtrar por ministério
|
||||
- [ ] Exportar lista (PDF/Excel)
|
||||
|
||||
### Contratos
|
||||
- [ ] Criar contrato permanente
|
||||
- [ ] Criar contrato temporário
|
||||
- [ ] Tentar criar dois contratos ativos (deve dar erro)
|
||||
- [ ] Editar contrato
|
||||
- [ ] Filtrar por agente
|
||||
|
||||
### Contas Bancárias
|
||||
- [ ] Criar conta bancária
|
||||
- [ ] Marcar como primária
|
||||
- [ ] Tentar criar segunda primária (deve desmarcar anterior)
|
||||
- [ ] Editar conta
|
||||
|
||||
### Grelha Salarial
|
||||
- [ ] Visualizar estrutura completa
|
||||
- [ ] Criar categoria
|
||||
- [ ] Criar grau
|
||||
- [ ] Criar escalão
|
||||
- [ ] Definir valor para escalão
|
||||
|
||||
### Períodos de Folha
|
||||
- [ ] Criar período
|
||||
- [ ] Abrir período (DRAFT → OPEN)
|
||||
- [ ] Tentar abrir dois períodos (deve dar erro)
|
||||
- [ ] Fechar período (OPEN → CLOSED)
|
||||
|
||||
### Processamento
|
||||
- [ ] Criar processamento
|
||||
- [ ] Processar folha (calcular itens)
|
||||
- [ ] Verificar cálculos:
|
||||
- [ ] Vencimento base
|
||||
- [ ] Proventos (abono)
|
||||
- [ ] Descontos (INPS, IRPS, Selo)
|
||||
- [ ] Gerar ordens de pagamento
|
||||
- [ ] Exportar folha
|
||||
|
||||
### Regras de Imposto
|
||||
- [ ] Visualizar regras ativas
|
||||
- [ ] Criar regra de INPS
|
||||
- [ ] Criar regra de Selo
|
||||
- [ ] Desativar regra antiga
|
||||
|
||||
### Escalões IRPS
|
||||
- [ ] Visualizar escalões
|
||||
- [ ] Criar novo escalão
|
||||
- [ ] Verificar que não há sobreposição
|
||||
- [ ] Editar escalão
|
||||
|
||||
### Avaliações
|
||||
- [ ] Visualizar avaliações
|
||||
- [ ] Finalizar avaliação DRAFT
|
||||
- [ ] Verificar cálculo de menção
|
||||
- [ ] Filtrar por agente
|
||||
- [ ] Filtrar por ano
|
||||
|
||||
---
|
||||
|
||||
## ✅ Módulo Orçamento
|
||||
|
||||
### Exercícios Fiscais
|
||||
- [ ] Criar exercício
|
||||
- [ ] Abrir exercício (DRAFT → OPEN)
|
||||
- [ ] Tentar abrir dois exercícios (deve dar erro)
|
||||
- [ ] Fechar exercício (OPEN → CLOSED)
|
||||
|
||||
### Linhas Orçamentais
|
||||
- [ ] Criar linha
|
||||
- [ ] Verificar saldos iniciais
|
||||
- [ ] Após processar folha, verificar comprometimento
|
||||
- [ ] Após liquidação, verificar saldo liquidado
|
||||
- [ ] Após pagamento, verificar saldo pago
|
||||
|
||||
### Execução
|
||||
- [ ] Visualizar todos os movimentos
|
||||
- [ ] Filtrar por linha
|
||||
- [ ] Filtrar por período
|
||||
- [ ] Filtrar por tipo (COMMITMENT, LIQUIDATION, PAYMENT)
|
||||
- [ ] Verificar sequência correta
|
||||
|
||||
---
|
||||
|
||||
## ✅ Módulo Tesouraria
|
||||
|
||||
### Lotes de Pagamento
|
||||
- [ ] Criar lote
|
||||
- [ ] Atualizar status (CREATED → SENT_TO_BANK)
|
||||
- [ ] Atualizar status (SENT_TO_BANK → CONFIRMED)
|
||||
- [ ] Filtrar por período
|
||||
- [ ] Filtrar por ministério
|
||||
|
||||
### Ordens de Pagamento
|
||||
- [ ] Visualizar ordens geradas
|
||||
- [ ] Verificar valores (bruto vs líquido)
|
||||
- [ ] Filtrar por lote
|
||||
- [ ] Filtrar por status
|
||||
- [ ] Visualizar detalhes
|
||||
|
||||
### Confirmações
|
||||
- [ ] Registrar confirmação
|
||||
- [ ] Marcar como PAID
|
||||
- [ ] Verificar criação de PAYMENT no orçamento
|
||||
- [ ] Verificar atualização de saldo
|
||||
- [ ] Filtrar por status
|
||||
|
||||
---
|
||||
|
||||
## ✅ Módulo Dados Comuns
|
||||
|
||||
### Bancos
|
||||
- [ ] Criar banco
|
||||
- [ ] Tentar criar com código duplicado (deve dar erro)
|
||||
- [ ] Editar banco
|
||||
- [ ] Verificar uso em contas bancárias
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Fluxo Integrado Completo
|
||||
|
||||
### Teste End-to-End
|
||||
|
||||
**Pré-requisitos:**
|
||||
- [ ] Banco criado
|
||||
- [ ] Ministério criado
|
||||
- [ ] Unidade orgânica criada
|
||||
- [ ] Cargo criado
|
||||
|
||||
**Passos:**
|
||||
1. [ ] Criar exercício fiscal 2025 e abrir
|
||||
2. [ ] Criar linha orçamentária (valor: 10.000.000 XOF)
|
||||
3. [ ] Criar período de folha Janeiro 2025 e abrir
|
||||
4. [ ] Criar agente completo
|
||||
5. [ ] Criar contrato (salário: 600.000 XOF)
|
||||
6. [ ] Criar conta bancária primária
|
||||
7. [ ] Criar processamento de folha
|
||||
8. [ ] Processar folha
|
||||
9. [ ] Verificar:
|
||||
- [ ] Itens calculados corretamente
|
||||
- [ ] COMMITMENT criado
|
||||
- [ ] Saldo disponível atualizado
|
||||
10. [ ] Gerar ordens de pagamento
|
||||
11. [ ] Criar lote de pagamento
|
||||
12. [ ] Enviar lote ao banco
|
||||
13. [ ] Registrar confirmação (PAID)
|
||||
14. [ ] Verificar:
|
||||
- [ ] PAYMENT criado
|
||||
- [ ] Saldo disponível atualizado
|
||||
|
||||
**Resultado Esperado:**
|
||||
- ✅ Todos os passos executados sem erros
|
||||
- ✅ Valores calculados corretamente
|
||||
- ✅ Integração funcionando
|
||||
- ✅ Saldos corretos
|
||||
|
||||
---
|
||||
|
||||
## 🧮 Teste de Cálculos
|
||||
|
||||
### Cenário: Agente com Salário 600.000 XOF
|
||||
|
||||
**Dados:**
|
||||
- Salário base: 600.000 XOF
|
||||
- 2 dependentes (abono: 2.000 XOF cada)
|
||||
- INPS: 7%
|
||||
- Selo: 0.3%
|
||||
- IRPS: conforme escalões
|
||||
|
||||
**Cálculos Esperados:**
|
||||
- Vencimento Base: **600.000 XOF**
|
||||
- Abono de Família: **4.000 XOF** (2 × 2.000)
|
||||
- Total Bruto: **604.000 XOF**
|
||||
- INPS (7%): **42.280 XOF**
|
||||
- Selo (0.3%): **1.812 XOF**
|
||||
- Base IRPS: **561.720 XOF** (604.000 - 42.280)
|
||||
- IRPS: **~46.172 XOF** (conforme escalão)
|
||||
- Total Descontos: **~90.264 XOF**
|
||||
- Valor Líquido: **~513.736 XOF**
|
||||
|
||||
**Verificações:**
|
||||
- [ ] Vencimento base correto
|
||||
- [ ] Abono calculado corretamente
|
||||
- [ ] INPS calculado corretamente
|
||||
- [ ] Selo calculado corretamente
|
||||
- [ ] IRPS calculado corretamente
|
||||
- [ ] Valor líquido correto
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ Teste de Validações
|
||||
|
||||
### Cenários de Erro Esperados
|
||||
|
||||
- [ ] Criar agente com matrícula duplicada → **ERRO**
|
||||
- [ ] Criar contrato sem agente → **ERRO**
|
||||
- [ ] Processar folha com período fechado → **ERRO**
|
||||
- [ ] Criar linha com exercício fechado → **ERRO**
|
||||
- [ ] Gerar ordens sem folha processada → **ERRO**
|
||||
- [ ] Registrar pagamento sem ordem → **ERRO**
|
||||
- [ ] Abrir dois períodos para mesmo mês → **ERRO**
|
||||
- [ ] Abrir dois exercícios → **ERRO**
|
||||
- [ ] Criar dois contratos ativos para mesmo agente → **ERRO**
|
||||
- [ ] Criar duas contas primárias para mesmo agente → **ERRO**
|
||||
|
||||
**Verificações:**
|
||||
- [ ] Mensagem de erro apropriada exibida
|
||||
- [ ] Dados não foram salvos
|
||||
- [ ] Sistema permanece em estado consistente
|
||||
|
||||
---
|
||||
|
||||
## 📊 Teste de Integração Orçamentária
|
||||
|
||||
### Cenário: Folha de 800.000 XOF em linha com 1.000.000 XOF
|
||||
|
||||
**Passos:**
|
||||
1. [ ] Criar linha com saldo: 1.000.000 XOF
|
||||
2. [ ] Processar folha bruto: 800.000 XOF
|
||||
3. [ ] Verificar COMMITMENT: 800.000 XOF
|
||||
4. [ ] Verificar saldo disponível: 200.000 XOF
|
||||
5. [ ] Processar liquidação
|
||||
6. [ ] Verificar LIQUIDATION: 800.000 XOF
|
||||
7. [ ] Confirmar pagamento líquido: 700.000 XOF
|
||||
8. [ ] Verificar PAYMENT: 700.000 XOF
|
||||
9. [ ] Verificar saldo disponível: 200.000 XOF (mantido)
|
||||
|
||||
**Verificações:**
|
||||
- [ ] COMMITMENT criado corretamente
|
||||
- [ ] LIQUIDATION criado corretamente
|
||||
- [ ] PAYMENT criado corretamente
|
||||
- [ ] Saldos atualizados corretamente
|
||||
- [ ] Sequência respeitada
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Checklist de Coerência e Lógica
|
||||
|
||||
### Validações de Negócio
|
||||
|
||||
- [ ] Período deve estar aberto para processar folha
|
||||
- [ ] Exercício deve estar aberto para criar linhas
|
||||
- [ ] Agente deve ter contrato ativo
|
||||
- [ ] Agente deve ter conta bancária primária
|
||||
- [ ] Linha deve ter saldo disponível
|
||||
- [ ] Folha deve estar COMPLETED para gerar ordens
|
||||
- [ ] Ordem deve estar em lote para enviar
|
||||
- [ ] Status só pode avançar (não retroceder)
|
||||
|
||||
### Integridade de Dados
|
||||
|
||||
- [ ] IDs referenciados existem
|
||||
- [ ] Relacionamentos são válidos
|
||||
- [ ] Valores não são negativos
|
||||
- [ ] Datas são válidas (não futuras onde aplicável)
|
||||
- [ ] Códigos são únicos
|
||||
- [ ] Status são consistentes
|
||||
|
||||
### Cálculos
|
||||
|
||||
- [ ] Vencimento = valor do escalão
|
||||
- [ ] Proventos somados corretamente
|
||||
- [ ] Descontos calculados corretamente
|
||||
- [ ] Valor líquido = bruto - descontos
|
||||
- [ ] Saldo disponível = alocado - comprometido
|
||||
- [ ] Percentuais aplicados corretamente
|
||||
|
||||
---
|
||||
|
||||
## 📝 Notas para Testes
|
||||
|
||||
1. **Use dados de teste** do banco (`insert_all_test_data.sql` e `insert_functional_test_data.sql`)
|
||||
2. **Teste em ordem** recomendada (Dados Comuns → Organização → Orçamento → RH → Folha → Tesouraria)
|
||||
3. **Verifique logs** do backend para erros
|
||||
4. **Compare valores** com cálculos manuais
|
||||
5. **Teste casos extremos** (valores zero, valores muito altos, datas inválidas)
|
||||
6. **Teste validações** tentando ações inválidas
|
||||
7. **Verifique integração** entre módulos
|
||||
|
||||
---
|
||||
|
||||
**Guia gerado em:** 2025-01-XX
|
||||
**Versão:** 1.0
|
||||
|
||||
Reference in New Issue
Block a user