Appearance
Assinatura Digital (Externa) - Plano de testes
Escopo
Testes do modulo de assinatura digital externa, um fluxo acessado via token (sem login regular), incluindo validacao de token, visualizacao do PDF do contrato, posicionamento de campos de assinatura, desenho de assinatura (canvas), colocacao de rubricas, assinatura de todos os campos obrigatorios, rejeicao com motivo e acompanhamento de progresso.
Pre-condicoes
- Token de assinatura valido gerado para o signatario
- Contrato com PDF gerado e campos de assinatura posicionados
- Multiplos signatarios configurados (para testar progresso)
- MSW configurado com handlers de assinatura
- Navegador limpo (sem sessao autenticada)
Cenarios de teste
Validacao de token
| # | Cenario | Passos | Resultado esperado | Prioridade |
|---|---|---|---|---|
| 1 | Token valido - acesso a assinatura | 1. Acessar URL de assinatura com token valido 2. Aguardar carregamento | Pagina de assinatura carrega com PDF do contrato e campos para assinar | Alta |
| 2 | Token expirado | 1. Acessar URL com token expirado | Mensagem informando que o link de assinatura expirou | Alta |
| 3 | Token invalido | 1. Acessar URL com token aleatorio/invalido | Mensagem de erro informando link invalido | Alta |
| 4 | Token de contrato ja assinado | 1. Acessar URL apos ja ter assinado o contrato | Mensagem informando que o contrato ja foi assinado. Opcao de visualizar | Media |
Visualizacao do PDF
| # | Cenario | Passos | Resultado esperado | Prioridade |
|---|---|---|---|---|
| 5 | Exibir PDF do contrato | 1. Acessar assinatura com token valido 2. Verificar area do PDF | PDF do contrato exibido com boa legibilidade | Alta |
| 6 | Navegar entre paginas do PDF | 1. Contrato com multiplas paginas 2. Navegar para proxima/anterior pagina | Navegacao entre paginas funciona. Numero da pagina exibido | Alta |
| 7 | Zoom no PDF | 1. No visualizador de PDF 2. Usar controles de zoom (ampliar/reduzir) | PDF redimensiona mantendo legibilidade | Media |
| 8 | Visualizar documentos anexos | 1. Na pagina de assinatura 2. Verificar secao de documentos | Lista de documentos do contrato disponivel para consulta | Media |
| 9 | Visualizar status dos signatarios | 1. Na pagina de assinatura 2. Verificar lista de signatarios | Lista exibe signatarios com status (pendente, assinado, rejeitado) | Alta |
Campos de assinatura posicionados
| # | Cenario | Passos | Resultado esperado | Prioridade |
|---|---|---|---|---|
| 10 | Identificar campos de assinatura | 1. No PDF 2. Verificar campos posicionados | Campos de assinatura do signatario atual destacados visualmente no PDF (borda, cor) | Alta |
| 11 | Campo em pagina especifica | 1. Navegar para pagina com campo de assinatura | Campo de assinatura visivel na posicao correta da pagina | Alta |
| 12 | Multiplos campos em paginas diferentes | 1. Contrato com campos em paginas 1, 3 e 5 2. Navegar entre paginas | Todos os campos identificados em suas respectivas paginas | Alta |
Desenho de assinatura (Canvas)
| # | Cenario | Passos | Resultado esperado | Prioridade |
|---|---|---|---|---|
| 13 | Desenhar assinatura | 1. Clicar em campo de assinatura 2. Canvas de desenho abre 3. Desenhar assinatura com mouse/dedo 4. Confirmar | Assinatura desenhada e colocada no campo. Preview visivel | Alta |
| 14 | Limpar e redesenhar | 1. No canvas de assinatura 2. Desenhar assinatura 3. Clicar em "Limpar" 4. Redesenhar | Canvas limpo. Nova assinatura pode ser desenhada | Alta |
| 15 | Desenho com toque (mobile) | 1. Acessar em dispositivo movel/tablet 2. Desenhar assinatura com dedo na tela touch | Assinatura registrada corretamente via toque | Alta |
| 16 | Canvas vazio - tentar confirmar | 1. Abrir canvas de assinatura 2. Nao desenhar nada 3. Clicar em "Confirmar" | Confirmacao bloqueada. Mensagem indicando que e necessario desenhar | Media |
Colocacao de rubricas
| # | Cenario | Passos | Resultado esperado | Prioridade |
|---|---|---|---|---|
| 17 | Colocar rubrica no campo | 1. Navegar ate campo de rubrica 2. Clicar no campo 3. Desenhar rubrica 4. Confirmar | Rubrica colocada no campo designado | Alta |
| 18 | Rubrica em multiplas paginas | 1. Contrato com campos de rubrica em varias paginas 2. Preencher todos | Todas as rubricas colocadas nas paginas corretas | Alta |
Assinatura completa
| # | Cenario | Passos | Resultado esperado | Prioridade |
|---|---|---|---|---|
| 19 | Assinar todos os campos obrigatorios | 1. Preencher todos os campos de assinatura e rubrica 2. Clicar em "Finalizar assinatura" | Assinatura concluida. Mensagem de confirmacao exibida. Status atualizado para "Assinado" | Alta |
| 20 | Tentar finalizar com campos pendentes | 1. Preencher apenas alguns campos 2. Clicar em "Finalizar assinatura" | Finalizacao bloqueada. Campos pendentes destacados com indicacao | Alta |
| 21 | Progresso de assinatura | 1. Durante preenchimento dos campos 2. Verificar indicador de progresso | Barra ou indicador exibe quantos campos faltam (ex: "3 de 5 campos preenchidos") | Media |
Rejeicao
| # | Cenario | Passos | Resultado esperado | Prioridade |
|---|---|---|---|---|
| 22 | Rejeitar assinatura com motivo | 1. Na pagina de assinatura 2. Clicar em "Rejeitar" 3. Preencher campo de motivo 4. Confirmar rejeicao | Rejeicao registrada com motivo. Administrador do contrato notificado | Alta |
| 23 | Rejeitar sem motivo | 1. Clicar em "Rejeitar" 2. Deixar campo de motivo vazio 3. Tentar confirmar | Validacao exibida. Motivo e obrigatorio para rejeicao | Alta |
Acompanhamento de progresso
| # | Cenario | Passos | Resultado esperado | Prioridade |
|---|---|---|---|---|
| 24 | Verificar progresso geral | 1. Na pagina de assinatura 2. Verificar status de todos os signatarios | Lista exibe cada signatario com status atualizado (pendente/assinado/rejeitado) | Alta |
| 25 | Contrato totalmente assinado | 1. Todos os signatarios assinaram | Status geral do contrato muda para "Concluido". Mensagem de finalizacao exibida | Alta |
Cenarios negativos
| # | Cenario | Passos | Resultado esperado |
|---|---|---|---|
| 1 | Link expirado durante assinatura | Token expira enquanto signatario preenche campos | Ao finalizar, mensagem de link expirado. Assinatura nao concluida |
| 2 | Perda de conexao ao finalizar | Conexao cai ao clicar em "Finalizar assinatura" | Mensagem de erro. Opcao de tentar novamente. Dados de assinatura preservados localmente |
| 3 | PDF nao carrega | API nao retorna PDF do contrato | Mensagem de erro com opcao de recarregar |
| 4 | Contrato cancelado durante assinatura | Contrato cancelado pelo administrador enquanto signatario esta na pagina | Mensagem informando cancelamento. Assinatura nao permitida |
| 5 | Duplo clique em "Finalizar" | Clicar duas vezes rapidamente | Apenas uma submissao processada |
Casos extremos
| # | Cenario | Resultado esperado |
|---|---|---|
| 1 | PDF com 100+ paginas | Visualizador carrega e navega sem problemas de performance |
| 2 | 20+ campos de assinatura no contrato | Todos os campos identificados e funcionais |
| 3 | Assinatura desenhada muito simples (um traco) | Sistema aceita ou tem validacao minima |
| 4 | Canvas de assinatura em tela 4K | Canvas renderiza proporcionalmente na resolucao |
| 5 | Motivo de rejeicao com 2000+ caracteres | Texto aceito e salvo integralmente |
| 6 | Signatario acessa de navegador muito antigo | Fallback adequado ou mensagem de navegador nao suportado |
| 7 | Multiplos signatarios assinando simultaneamente | Sem conflitos. Status de cada um atualizado independentemente |
Criterios de aceite
- [ ] Token valido permite acesso a pagina de assinatura
- [ ] Tokens expirados e invalidos sao rejeitados com mensagem
- [ ] PDF do contrato exibido com boa qualidade
- [ ] Navegacao entre paginas do PDF funciona
- [ ] Campos de assinatura posicionados corretamente
- [ ] Canvas de desenho funciona com mouse e toque
- [ ] Assinatura e rubrica podem ser desenhadas e confirmadas
- [ ] Opcao de limpar e redesenhar funciona
- [ ] Finalizacao valida todos os campos obrigatorios
- [ ] Indicador de progresso exibe campos pendentes
- [ ] Rejeicao com motivo obrigatorio funciona
- [ ] Status de todos os signatarios visivel
- [ ] Funciona em dispositivos moveis (toque)
- [ ] Interface funciona sem autenticacao regular (somente token)