# Guia De Teste Completo Do Sistema

Este guia explica como um cliente ou time de homologacao deve testar o sistema de ponta a ponta, cobrindo:

- criacao de cliente e case
- ingestao de documentos
- consolidacao e revisao de facts
- questionario inteligente
- workflow portal
- preenchimento de formularios
- montagem de packet
- aprendizado do sistema no mesmo caso e em outros casos

## 1. Objetivo Do Teste

Validar que o sistema:

1. recebe dados do cliente e documentos corretamente
2. consolida `facts` rastreaveis com IA
3. permite correcao humana dos `facts`
4. aprende com erros e nao repete o mesmo padrao
5. gera apenas perguntas realmente necessarias
6. cria portal de workflow apenas com tarefas reais
7. preenche formularios com base em evidencia
8. monta o packet final sem perder rastreabilidade

## 2. Perfis Envolvidos

O teste ideal deve usar dois perfis:

- `Operador interno`: usuario do escritorio que acessa `/app`
- `Cliente final`: pessoa que recebe e responde o portal

Se nao houver dois usuarios reais, o mesmo testador pode executar os dois papeis em abas ou navegadores separados.

## 3. Preparacao Antes Do Teste

Antes de comecar, valide estes prerequisitos:

1. A credencial de IA do workspace esta configurada em `Integrations`.
2. Existe pelo menos um `workflow` disponivel para o tipo de caso do teste.
3. O workflow escolhido pode ser ativado no case.
4. O case tera pelo menos um formulario ligado ao workflow.
5. O banco ja recebeu a migration de feedback humano:
   - [`035_fact_review_feedback.sql`](/Users/mini1/Downloads/neurav2/database/mysql/035_fact_review_feedback.sql)
6. O ambiente esta rodando com:
   - `apps/api`
   - `apps/web`

## 4. Dados De Teste Recomendados

Use dois conjuntos de teste.

### Conjunto A: caso principal

Use um cliente com:

- dados basicos completos
- pelo menos 3 a 5 documentos
- um documento com informacao clara de nome
- um documento com data de nascimento
- um documento com nacionalidade, numero de passaporte ou identificador
- um documento com um ponto propositalmente ambiguo ou propenso a erro

### Conjunto B: caso de aprendizado

Use um segundo cliente com documentos parecidos ao caso A, de preferencia com a mesma estrutura documental que antes causou erro. Esse segundo caso sera usado para validar se o aprendizado global foi aplicado.

## 5. Roteiro Principal De Teste

### Etapa 1: entrar no sistema

1. Acesse o app.
2. Confirme que o workspace correto esta selecionado.
3. Confirme que a credencial de IA esta ativa em `Integrations`.

Resultado esperado:

- o usuario entra normalmente
- o app carrega sem erro
- a IA esta configurada

### Etapa 2: criar o cliente

1. Abra `Clients`.
2. Clique em `New client`.
3. Cadastre o cliente do conjunto A.
4. Salve.

Resultado esperado:

- o cliente aparece na lista
- o cadastro fica associado ao workspace correto

### Etapa 3: criar o case

1. Abra `Cases`.
2. Clique em `New case`.
3. Selecione o cliente criado.
4. Defina `title`, `case type`, `subtype`, `status` e `priority`.
5. Salve.

Resultado esperado:

- o case aparece como ativo
- o case fica vinculado ao cliente

### Etapa 4: ativar o workflow no case

1. Abra `Workflows`.
2. Escolha o workflow correto.
3. Clique em `Activate in case`.
4. Selecione o case criado.
5. Confirme.

Resultado esperado:

- o workflow passa a existir dentro do case
- as etapas do processo aparecem na timeline do case

### Etapa 5: garantir que o case possui forms

1. Ainda no contexto do workflow, confirme que o workflow possui `forms` ligados.
2. Volte ao case e confirme que o case possui `case_forms`.

Resultado esperado:

- o case nao fica bloqueado para `Fill forms`
- o `Generate gap questionnaire` fica disponivel quando os prerequisitos forem atendidos

### Etapa 6: subir documentos do cliente

1. Abra `Repository`.
2. Selecione o cliente correto.
3. Faça upload dos documentos do conjunto A.
4. Se necessario, use upload de pasta.
5. Aguarde o processamento.

Resultado esperado:

- documentos aparecem no repositorio
- textos extraidos ficam disponiveis
- nao ha erro silencioso de upload

### Etapa 7: consolidar facts

1. Volte para `Cases` ou `/app/intelligence`.
2. Selecione o case.
3. Clique em `Consolidate facts`.

Resultado esperado:

- a tela `Intelligence > Data consolidation` lista facts consolidados
- cada fact mostra valor, confianca, status e evidencia

### Etapa 8: revisar facts e ensinar o sistema

1. Em `/app/intelligence`, abra `Data consolidation`.
2. Revise cada fact.
3. Para cada item:
   - use `Confirm value` se estiver correto
   - use `Save correction` se o valor estiver errado e voce souber o certo
   - use `Reject value` se o valor estiver errado e nao deva mais ser reutilizado
   - use `Save guidance` se quiser ensinar onde procurar ou o que buscar

Use os campos abaixo quando relevante:

- `Correct value`
- `Source hint`
- `Search hint`
- `Reviewer note`

Resultado esperado:

- o fact errado pode ser corrigido ou rejeitado
- o fact correto pode ser confirmado
- a orientacao humana fica salva
- o sistema passa a ter aprendizado local e global

### Etapa 9: validar aprendizado no mesmo caso

1. Depois de revisar os facts, clique novamente em `Consolidate facts`.
2. Reabra `Data consolidation`.
3. Compare o estado antes e depois.

Resultado esperado:

- o valor rejeitado nao deve voltar como valor operacional valido
- o valor corrigido deve aparecer como canônico
- a IA nao deve repetir o mesmo erro no mesmo caso

### Etapa 10: gerar o AI gap questionnaire

1. Ainda no case, clique em `Generate gap questionnaire`.
2. Revise o preview.
3. Verifique se as perguntas fazem sentido e se nao repetem dados ja confirmados.

Resultado esperado:

- o questionario nao pergunta o que ja esta confirmado
- se nao houver gaps reais, o sistema deve informar isso
- o portal nao deve parecer vazio de forma enganosa

### Etapa 11: responder o portal como cliente final

1. Abra o link do portal em outro navegador ou aba anonima.
2. Responda as perguntas pendentes.
3. Envie os documentos solicitados.

Resultado esperado:

- o cliente consegue responder sem login
- o portal mostra estado honesto:
  - perguntas pendentes
  - documentos pendentes
  - portal sem tarefas
  - portal concluido

### Etapa 12: reconsolidar facts apos resposta do cliente

1. Volte ao backoffice.
2. Clique em `Consolidate facts` novamente.
3. Revise os novos facts gerados a partir das respostas do portal.

Resultado esperado:

- respostas do portal viram `facts`
- o sistema incorpora os novos dados sem perder rastreabilidade

### Etapa 13: testar workflow portal

1. No case, clique em `Workflow portal`.
2. Selecione cliente, case e workflows.
3. Revise o preview real antes de gerar o link.
4. Gere o link apenas se houver tarefas.

Resultado esperado:

- o preview mostra quantidade real de perguntas e documentos
- workflows sem tarefa nao entram silenciosamente
- o sistema nao gera portal vazio por engano

### Etapa 14: preencher formularios

1. No case, clique em `Fill forms`.
2. Aguarde a geracao.
3. Revise o resultado.

Resultado esperado:

- formularios usam facts consolidados, repositorio e dados estruturados
- campos sem evidencia continuam vazios
- conflitos nao ficam escondidos

### Etapa 15: montar o packet

1. No case, clique em `Assemble packet`.
2. Abra o PDF gerado.
3. Revise a ordem dos itens e o conteudo montado.

Resultado esperado:

- packet e gerado sem erro
- formularios e documentos entram na ordem esperada

## 6. Teste Especifico De Aprendizado Global

Esta etapa e obrigatoria para validar que o sistema nao repete o mesmo erro com outras pessoas.

### Parte A: preparar o erro conhecido

1. No caso A, identifique um erro real de extracao.
2. Corrija esse erro em `Data consolidation`.
3. Salve `Source hint`, `Search hint` e `Reviewer note`.
4. Rejeite explicitamente o valor errado ou salve a correcao.

### Parte B: criar o segundo cliente

1. Crie o cliente do conjunto B.
2. Crie um novo case.
3. Ative o mesmo workflow ou um workflow equivalente.
4. Suba documentos parecidos com o caso A.

### Parte C: reconsolidar no segundo caso

1. Rode `Consolidate facts` no novo case.
2. Abra `Data consolidation`.
3. Verifique os campos equivalentes ao erro anterior.

Resultado esperado:

- a IA deve usar a orientacao global salva anteriormente
- o padrao de erro anterior deve diminuir ou desaparecer
- o sistema nao deve copiar dados pessoais do cliente A para o cliente B
- o aprendizado deve ser de heuristica e busca, nao de reutilizacao indevida de valores pessoais

## 7. Checklist De Aprovacao

O teste e considerado aprovado quando:

1. o cliente e o case sao criados sem erro
2. o workflow e ativado no case
3. os documentos sao ingeridos corretamente
4. os facts sao consolidados com evidencia
5. a tela `Data consolidation` permite revisar e ensinar o sistema
6. o erro corrigido nao reaparece no mesmo caso
7. o aprendizado melhora a extracao em outro caso semelhante
8. o `Generate gap questionnaire` gera apenas perguntas necessarias
9. o `Workflow portal` mostra preview real e nao cria portal vazio
10. `Fill forms` usa os facts corretos
11. `Assemble packet` conclui sem quebra operacional

## 8. Checklist De Defeitos

Registre como defeito sempre que ocorrer qualquer um destes casos:

1. fact sem evidencia clara
2. dado correto sobrescrito por valor errado
3. pergunta repetida mesmo apos confirmacao do dado
4. portal vazio com mensagem enganosa
5. valor rejeitado voltando a ser usado
6. correcao humana nao refletida na proxima consolidacao
7. aprendizado global vazando dado pessoal de outro cliente
8. formulario preenchido com dado inventado

## 9. Modelo De Registro Do Teste

Para cada execucao, registre:

- nome do testador
- data e hora
- cliente usado
- case usado
- workflow usado
- documentos usados
- facts corrigidos
- facts rejeitados
- guidance adicionada
- resultado do gap questionnaire
- resultado do workflow portal
- resultado do fill forms
- resultado do packet
- bugs encontrados

## 10. Observacao Importante

O teste correto nao e apenas verificar se a IA "preenche algo". O teste correto e verificar se:

- a IA usa evidencia real
- a IA aceita revisao humana
- a IA aprende com o erro
- a IA melhora o proximo ciclo
- a IA nao inventa dado
- a IA nao replica dado pessoal de um cliente em outro
