Estrategia de Testes - ifpebj-ti/controle-acesso-veiculos GitHub Wiki
Estratégia de Testes
Projeto: Controle de Acesso de Veículos
Instituição: Instituto Federal de Pernambuco — Campus Belo Jardim
Disciplina: Projeto Integrador — Práticas Reais de Software e Segurança
Equipe: José Ernandes Gonçalves Costa; Raíssa Beatriz Marinho dos Santos
Cliente inicial: Eurico Lopes — Setor de Transporte
Versão: 0.35
Status: Suítes automatizadas de backend e frontend implementadas; carga, testes ponta a ponta e homologação pendentes
Data de referência: 13 de outubro de 2026
Documentos relacionados: MVP e Fluxo Digital v0.1; Requisitos e Backlog v0.3; Regras de Negócio v0.1; Modelo de Dados v0.3; Arquitetura de Software — arc42 v0.2; Segurança e Privacidade v0.1; Decisão de Stack Tecnológica v0.2; Guia de Execução, Configuração, Deploy e Operação v0.2
Issue relacionada: #12 — Criar estratégia de testes
Baseline de testes — 13 de outubro de 2026
Esta atualização complementa o planejamento detalhado abaixo e deve prevalecer quando houver divergência de status. O conteúdo acadêmico e a estratégia completa foram preservados para revisão da equipe.
Estado atual:
- 262 testes de backend estão integrados à
main, incluindo integração com PostgreSQL real; - 495 testes frontend em 48 arquivos estão integrados à
main, cobrindo fluxos críticos, estados de consulta, navegação por perfil e regressões de acessibilidade, contrato dos tokens semânticos, contraste e comportamento do login em telas com pouca altura sem escala global, além das superfícies modernizadas e das alternativas textuais dos agregados operacionais; - a CI do frontend executa ESLint, Vitest com Testing Library e auditoria automatizada com axe-core antes do build;
- os testes de integração utilizam PostgreSQL 16 real e descartável por Testcontainers, sem provider InMemory;
- todas as migrations são aplicadas no setup dos testes;
- schema, constraints, autenticação, autorização, provisionamento de contas,
/health, os fluxos geral e institucional, os catálogos de frota, motoristas e autorizações de eventos, sua manutenção controlada, associação de entradas, validade, placa, cota e concorrência, as consultas históricas, o resumo operacional diário, suas auditorias transacionais e os controles transversais das requisições são validados; - o resumo diário possui testes de limites no fuso institucional, registros atravessando dias, autorização dos quatro perfis, rejeição de acesso indevido e ausência de dados pessoais na resposta;
- a CI publica resultados TRX e cobertura Cobertura como artefato;
- o workflow
CI - Demo dataaplica migrations, provisiona uma conta administrativa e executa duas vezes os cenários fictícios do MVP em API e PostgreSQL descartáveis, exigindo resultado observável idêntico; - os 60 testes de aplicação e os 136 testes de integração propagam o token de
cancelamento do xUnit v3; não permanecem diagnósticos nem supressões
xUnit1051nos projetos de teste do backend; - dados e credenciais de testes são exclusivamente fictícios.
Ferramentas confirmadas: .NET 10, xUnit v3, Microsoft Testing Platform,
WebApplicationFactory, EF Core 10, PostgreSQL 16,
Testcontainers.PostgreSql 4.14 e as extensões oficiais de TRX e cobertura.
Metas de cobertura, testes dos futuros casos de uso, testes end-to-end, carga, segurança e homologação continuam como evolução. O percentual de cobertura não deve ser usado isoladamente como medida de qualidade.
Rastreabilidade: Issues #23, #24, #29, #47, #49, #51, #53, #55, #57, #59, #61, #63, #65, #69, #71, #86, #112, #347, #353 e #357–#360; PRs #27, #28, #45, #46, #48, #50, #52, #54, #56, #58, #60, #62, #64, #66, #70, #72, #87, #113 e #361–#364.
1. Objetivo
Este documento define a estratégia preliminar de testes para o sistema de Controle de Acesso de Veículos do IFPE Campus Belo Jardim.
O objetivo é orientar como o projeto deverá verificar a qualidade do sistema antes, durante e após a implementação do MVP, considerando os fluxos de entrada e saída de veículos, os veículos institucionais, as consultas, as permissões, a auditoria, a segurança, a privacidade e a contingência.
A estratégia distingue o que já existe — 262 testes de backend, 495 de frontend e barreiras de CI na baseline de 13/10/2026 — do planejamento ainda não implementado, como homologação institucional, carga e testes dos futuros casos de uso.
A baseline acadêmica foi preservada, mas as tabelas de estado desta versão prevalecem quando houver divergência com o planejamento original.
2. Escopo
2.1. Incluído no escopo de testes
A estratégia considera os fluxos e componentes previstos para o MVP:
- Autenticação básica.
- Perfis e permissões.
- Cadastro de pessoas relacionadas a veículos.
- Cadastro de veículos.
- Associação entre pessoa e veículo.
- Registro de entrada.
- Registro de saída.
- Consulta por placa.
- Consulta por veículo.
- Consulta por condutor.
- Consulta por motorista institucional.
- Consulta por data e período.
- Consulta de veículos sem saída registrada.
- Registro de veículo institucional.
- Registro de motorista institucional.
- Registro de quilometragem de saída e entrada.
- Registro de itinerário.
- Consulta de veículo institucional sem retorno.
- Correções controladas.
- Auditoria.
- Conferência pelo Setor de Transporte.
- Validação de dados.
- Tratamento de erros.
- Segurança e privacidade.
- Contingência.
2.2. Itens condicionais
Os fluxos abaixo devem possuir testes somente se forem aprovados para o MVP ou para um incremento posterior:
- Registro de recusa de acesso.
- Veículo que permanece no campus.
- Mototáxi.
- Evento com veículo.
- Veículo de discente residente.
- Ocorrência associada a acesso.
- Exportação autorizada.
- Relatórios básicos.
2.3. Fora do escopo inicial
Não fazem parte dos testes obrigatórios do primeiro incremento:
- Controle geral de pedestres.
- Visitantes sem veículo.
- Caminhadas sem veículo.
- Controle geral de servidores sem relação com veículos.
- Controle geral de terceirizados sem relação com veículos.
- Reconhecimento facial.
- Reconhecimento automático de placas.
- Integração com câmeras.
- Integração com sensores.
- Integração com catraca ou cancela.
- Liberação automática.
- Controle de vagas.
- Integração com sistemas institucionais.
- Testes de integração com equipamentos físicos.
- Testes de carga em ambiente implantado antes da existência da infraestrutura.
3. Classificação das informações
| Classificação | Significado |
|---|---|
| Confirmado em documento | Informação identificada diretamente nos formulários ou documentos do projeto |
| Confirmado em reunião | Informação validada verbalmente por responsável pelo processo |
| Informado | Informação relatada por participante, ainda sujeita a confirmação |
| Preliminar | Entendimento inicial usado para orientar o planejamento |
| Proposta | Prática ou solução sugerida para futura implementação |
| Futuro | Atividade prevista para evolução posterior ao MVP |
| Pendente | Informação que precisa ser confirmada antes da implementação definitiva |
| Fora do escopo | Item não pertencente ao núcleo inicial do projeto |
4. Decisões técnicas consideradas
4.1. Stack de aplicação
| Categoria | Decisão | Situação |
|---|---|---|
| Frontend | React + TypeScript | Confirmada pela equipe |
| Backend | ASP.NET Core Web API + C# | Confirmada pela equipe |
| Versão do backend | .NET 10 com target net10.0 |
Implementada |
| Banco de dados | PostgreSQL 16 | Configurado para desenvolvimento e integração |
| ORM e migrations | Entity Framework Core 10, Npgsql e Migrations | Implementados |
4.2. Arquitetura
| Decisão | Situação |
|---|---|
| Clean Architecture adaptada ao MVP | Confirmada como direcionamento arquitetural |
| Monólito modular | Confirmada como direcionamento arquitetural |
| Separação entre Domain, Application, Infrastructure e API | Confirmada como direcionamento arquitetural |
4.3. Infraestrutura e entrega
| Decisão | Situação |
|---|---|
| Docker e Docker Compose | Confirmados como direcionamento técnico |
| GitHub Actions | Confirmado como direcionamento de CI/CD |
| VM Linux na OCI | Confirmada como direcionamento de implantação |
| Proxy reverso | Pendente |
| HTTPS | Pendente |
| Logs, métricas e traces | Pendentes |
| Backup e recuperação | Dump, manifesto SHA-256, rejeição de adulteração e restauração isolada verificados na CI; produção pendente |
4.4. Ferramentas de teste
| Área | Direcionamento | Situação |
|---|---|---|
| Testes backend | xUnit v3 e Microsoft Testing Platform | Implementado |
| Testes de integração | xUnit v3, Testcontainers.PostgreSql e PostgreSQL 16 | Implementado |
| Testes de API | WebApplicationFactory |
Implementado |
| Testes frontend | Vitest, Testing Library e axe-core | Implementado para os fluxos críticos atuais |
| Testes de interface ponta a ponta | Ferramenta a definir | Pendente |
| Cobertura backend | coverlet.collector e artefato Cobertura | Implementado |
| Testes de carga | Ferramenta a definir | Futuro |
| Lint backend | Ferramenta a definir | Pendente |
| Lint frontend | ESLint | Implementado no workflow inicial |
5. Objetivos de qualidade
A estratégia de testes deve contribuir para os objetivos de qualidade definidos na arquitetura.
| Objetivo | Como será verificado | Classificação |
|---|---|---|
| Usabilidade | Testes manuais dos fluxos de entrada, saída e consulta com foco em clareza e quantidade de passos | Preliminar |
| Integridade | Testes de validação, regras de consistência, PostgreSQL e auditoria | Proposta |
| Rastreabilidade | Testes de usuário responsável, correções e histórico de alterações | Proposta |
| Segurança | Testes de autenticação, autorização e proteção de dados | Proposta |
| Privacidade | Testes para evitar coleta ou exposição indevida de dados pessoais | Proposta |
| Disponibilidade operacional | Testes de contingência quando o procedimento for definido | Pendente |
| Desempenho | Testes de busca e carga após levantamento de volume e disponibilidade de ambiente | Pendente |
| Manutenibilidade | Testes automatizados, revisão por Pull Request e pipeline | Proposta |
6. Princípios de teste
ET-01 — Testar antes de concluir
Nenhuma funcionalidade deve ser considerada concluída apenas porque foi desenvolvida. Ela deve ser testada conforme seus critérios de aceite.
Classificação: Proposta.
ET-02 — Priorizar fluxos críticos
Os primeiros testes devem cobrir os fluxos com maior impacto operacional:
- Entrada de veículo.
- Saída de veículo.
- Veículo institucional.
- Quilometragem.
- Itinerário.
- Consulta de acessos abertos.
- Autenticação e autorização.
- Auditoria de correções.
Classificação: Preliminar.
ET-03 — Testar regras aprovadas
Regras institucionais pendentes não devem ser implementadas ou testadas como comportamento definitivo.
Exemplos de regras pendentes:
- Obrigatoriedade de RG ou CPF.
- Obrigatoriedade de placa por categoria.
- Regras oficiais de mototáxi.
- Regras para veículos sem placa.
- Regras para motociclistas sem capacete.
- Procedimento para veículos que permanecem no campus.
- Permissões finais dos perfis.
Classificação: Pendente.
ET-04 — Testar comportamento esperado e inválido
Cada fluxo deve possuir testes positivos e negativos.
Exemplos:
- Registrar entrada com dados válidos.
- Tentar registrar entrada sem campo obrigatório.
- Registrar saída de acesso aberto.
- Tentar registrar saída duplicada.
- Registrar quilometragem válida.
- Tentar registrar quilometragem de entrada inferior à de saída.
Classificação: Proposta.
ET-05 — Rastrear testes
Os testes devem ser relacionados a requisitos, regras de negócio, issues, Pull Requests e demonstrações quando a implementação for iniciada.
Classificação: Proposta.
ET-06 — Automatizar gradualmente
Os testes críticos devem ser automatizados quando a solução backend e o frontend forem criados.
Testes exploratórios, de usabilidade e validação com stakeholders continuarão exigindo execução manual.
Classificação: Proposta.
ET-07 — Isolar regras de negócio
As regras de domínio devem ser testáveis sem depender de controllers, banco de dados, HTTP ou infraestrutura externa.
Esse princípio está alinhado à Clean Architecture adaptada adotada para o backend.
Classificação: Proposta.
7. Níveis de teste
7.1. Testes unitários
Os testes unitários devem verificar componentes isolados, principalmente entidades, regras de negócio, validações, casos de uso e serviços da camada de aplicação.
No backend, a ferramenta preliminar é:
xUnit
Ferramentas complementares ainda podem ser definidas.
Exemplos:
- Validar quilometragem de retorno.
- Impedir saída duplicada.
- Verificar se usuário possui permissão.
- Validar campos obrigatórios.
- Validar transição de status de acesso.
- Validar relação entre pessoa e veículo.
- Validar correção com motivo obrigatório.
- Validar criação de auditoria.
Classificação: Proposta.
7.2. Testes de integração
Os testes de integração devem verificar a comunicação entre aplicação, persistência, Entity Framework Core e PostgreSQL.
Exemplos:
- Criar veículo e relacionar pessoa.
- Registrar entrada e persistir RegistroAcesso.
- Registrar saída e atualizar registro aberto.
- Registrar saída institucional e persistir viagem.
- Registrar retorno e atualizar quilometragem.
- Criar auditoria após correção.
- Consultar por placa e retornar registros permitidos.
- Validar bloqueio de operação sem permissão.
- Executar migrations em banco de teste.
- Validar integridade referencial e relacionamentos.
Classificação: Proposta.
7.3. Testes de API ou camada de aplicação
Quando a API ASP.NET Core for criada, devem ser testados:
- Códigos de resposta.
- Validação de requisições.
- Autenticação.
- Autorização.
- Retorno de erros operacionais.
- Persistência correta.
- Auditoria após operação.
- Proteção contra alteração de campos não autorizados.
- Exposição adequada de dados conforme perfil.
Classificação: Proposta.
7.4. Testes de interface
Os testes de interface devem verificar se as telas React permitem executar os fluxos de forma clara e sem expor informações desnecessárias.
Exemplos:
- Login.
- Registro de entrada.
- Registro de saída.
- Saída institucional.
- Retorno institucional.
- Consulta por placa.
- Correção autorizada.
- Mensagens de validação.
- Exibição de registros abertos.
- Ocultação de funções não permitidas ao perfil.
A suíte atual utiliza Vitest, Testing Library e axe-core para verificar comportamento, semântica e violações automatizáveis sérias ou críticas. Contraste real, zoom, responsividade e uso com tecnologias assistivas continuam exigindo avaliação em navegador e homologação humana.
Classificação: Proposta.
7.5. Testes de aceitação
Os testes de aceitação devem verificar se os critérios definidos para cada requisito foram atendidos.
Eles devem ser revisados pela equipe e, quando possível, demonstrados ao cliente ou responsável pelo processo.
Classificação: Proposta.
7.6. Testes exploratórios
Testes exploratórios devem ser realizados para identificar situações não previstas nos casos automatizados.
Exemplos:
- Fluxo de atendimento em horário de pico.
- Pesquisa rápida por placa.
- Troca de turno.
- Registro com dados incompletos.
- Tentativa de saída sem entrada localizada.
- Tentativa de correção por perfil não autorizado.
- Uso simultâneo por mais de um usuário, quando existir ambiente disponível.
Classificação: Proposta.
7.7. Testes de segurança
Os testes de segurança devem verificar:
- Autenticação.
- Autorização.
- Controle de sessão ou token, quando definido.
- Proteção de senha.
- Restrição de dados pessoais.
- Auditoria de operações.
- Exposição indevida de dados em erros.
- Proteção de rotas ou operações administrativas.
- Dependências vulneráveis.
- Segredos expostos em código ou configurações.
- Configuração segura de variáveis de ambiente.
- Proteção de endpoints da API.
Classificação: Proposta.
7.8. Testes de carga e desempenho
Testes de carga devem ser planejados para a etapa em que existir ambiente funcional e o volume de acessos for conhecido.
Os cenários iniciais podem incluir:
- Consulta simultânea por placa.
- Registro de entradas em sequência.
- Registro de saídas em sequência.
- Consulta por período histórico.
- Acesso simultâneo por usuários autorizados.
As ferramentas e metas de execução ainda não foram definidas.
Classificação: Futuro e pendente de infraestrutura.
8. Pirâmide de testes
A estratégia recomendada é priorizar testes unitários e de integração, mantendo uma quantidade menor de testes de interface completos.
Testes manuais, exploratórios e aceitação
▲
│
Testes de interface
▲
│
Testes de integração e API
▲
│
Testes unitários
| Nível | Prioridade | Objetivo |
|---|---|---|
| Testes unitários | Alta | Verificar regras e validações isoladas |
| Testes de integração | Alta | Verificar comunicação entre aplicação, EF Core e PostgreSQL |
| Testes de API ou aplicação | Alta | Verificar operações protegidas e respostas |
| Testes de interface | Média | Verificar fluxos críticos e usabilidade |
| Testes de aceitação | Alta | Verificar critérios de aceite aprovados |
| Testes exploratórios | Média | Descobrir falhas não previstas |
| Testes de segurança | Alta | Verificar autenticação, autorização e proteção de dados |
| Testes de carga | Futuro | Verificar comportamento sob volume conhecido |
9. Fluxos críticos do MVP
9.1. Registro de entrada
Origem: Formulário nº 02; MVP e Fluxo Digital; Requisitos e Backlog.
Objetivo do teste: garantir que um usuário autorizado consiga registrar a entrada de um veículo com dados válidos e que o sistema preserve a rastreabilidade da operação.
| Código | Cenário | Resultado esperado | Tipo |
|---|---|---|---|
| CT-ENT-01 | Registrar entrada com dados válidos | Registro criado com status aberto ou equivalente | Unitário, integração e aceitação |
| CT-ENT-02 | Registrar entrada sem veículo | Sistema informa erro conforme regra aprovada | Unitário e interface |
| CT-ENT-03 | Registrar entrada sem condutor | Sistema aplica regra de obrigatoriedade aprovada | Unitário e interface |
| CT-ENT-04 | Registrar entrada sem objetivo | Sistema aplica regra de obrigatoriedade aprovada | Unitário e interface |
| CT-ENT-05 | Registrar entrada por usuário não autenticado | Operação bloqueada | Segurança |
| CT-ENT-06 | Registrar entrada por perfil sem permissão | Operação bloqueada | Segurança |
| CT-ENT-07 | Registrar entrada com placa válida | Veículo é localizado ou cadastrado conforme fluxo aprovado | Integração |
| CT-ENT-08 | Registrar entrada duplicada para veículo já presente | Sistema sinaliza ou aplica regra aprovada | Unitário e integração |
| CT-ENT-09 | Registrar entrada e verificar auditoria | Usuário, data e horário ficam registrados | Implementado na #51 |
9.2. Registro de saída
Origem: Formulário nº 02; Processo Atual da Portaria; MVP e Fluxo Digital.
Objetivo do teste: garantir que um acesso aberto seja localizado e encerrado de forma rastreável.
| Código | Cenário | Resultado esperado | Tipo |
|---|---|---|---|
| CT-SAI-01 | Registrar saída para acesso aberto | Registro recebe data e horário de saída | Integração e aceitação |
| CT-SAI-02 | Localizar acesso aberto por placa | Sistema retorna o registro correspondente | Integração |
| CT-SAI-03 | Localizar acesso aberto por veículo | Sistema retorna o registro correspondente | Integração |
| CT-SAI-04 | Tentar registrar saída duplicada | Sistema bloqueia ou sinaliza duplicidade | Unitário e integração |
| CT-SAI-05 | Tentar registrar saída sem entrada localizada | Sistema segue procedimento aprovado ou sinaliza pendência | Pendente |
| CT-SAI-06 | Registrar saída por perfil sem permissão | Operação bloqueada | Segurança |
| CT-SAI-07 | Registrar saída e verificar auditoria | Usuário, data e horário ficam registrados | Implementado na #51 |
9.3. Consulta de veículos presentes
Origem: Processo Atual da Portaria; Requisitos e Backlog; Regras de Negócio.
Objetivo do teste: verificar se o sistema permite identificar veículos com entrada registrada e sem saída.
| Código | Cenário | Resultado esperado | Tipo |
|---|---|---|---|
| CT-PRE-01 | Consultar registros abertos | Sistema lista veículos sem saída registrada | Integração e aceitação |
| CT-PRE-02 | Registrar saída e consultar novamente | Veículo não aparece mais como presente | Integração |
| CT-PRE-03 | Consultar por perfil autorizado | Dados são apresentados conforme permissão | Segurança |
| CT-PRE-04 | Consultar por perfil sem permissão | Dados são ocultados ou acesso é bloqueado | Segurança |
9.4. Veículo institucional
Origem: Formulário nº 01; Regras de Negócio; Modelo de Dados.
Objetivo do teste: garantir que a saída e o retorno institucional mantenham veículo, motorista, quilometragem, horários e itinerário.
| Código | Cenário | Resultado esperado | Tipo |
|---|---|---|---|
| CT-INS-01 | Registrar saída institucional válida | Viagem institucional é criada com status em uso | Integração e aceitação |
| CT-INS-02 | Registrar saída sem motorista | Sistema bloqueia conforme regra aprovada | Unitário e interface |
| CT-INS-03 | Registrar saída sem quilometragem | Sistema bloqueia conforme regra aprovada | Unitário e interface |
| CT-INS-04 | Registrar saída sem itinerário | Sistema bloqueia conforme regra aprovada | Unitário e interface |
| CT-INS-05 | Registrar retorno válido | Viagem é encerrada como concluída | Integração e aceitação |
| CT-INS-06 | Registrar quilometragem de entrada maior que a saída | Sistema aceita o retorno | Unitário e integração |
| CT-INS-07 | Registrar quilometragem de entrada igual à saída | Sistema aplica regra aprovada | Unitário |
| CT-INS-08 | Registrar quilometragem de entrada menor que a saída | Sistema sinaliza inconsistência ou bloqueia | Unitário e integração |
| CT-INS-09 | Registrar segunda viagem aberta para mesmo veículo | Sistema bloqueia ou sinaliza conforme regra aprovada | Pendente |
| CT-INS-10 | Consultar veículo institucional sem retorno | Sistema lista viagens abertas | Integração e aceitação |
| CT-INS-11 | Consultar motorista por período | Sistema retorna viagens relacionadas | Integração |
| CT-INS-12 | Registrar saída ou retorno por usuário sem permissão | Operação bloqueada | Segurança |
9.5. Consulta histórica
Origem: Caso da multa; Setor de Transporte; Requisitos e Backlog.
Objetivo do teste: garantir que usuários autorizados consigam localizar registros antigos.
| Código | Cenário | Resultado esperado | Tipo |
|---|---|---|---|
| CT-CON-01 | Consultar por placa | Sistema retorna registros associados à placa | Integração e aceitação |
| CT-CON-02 | Consultar por veículo | Sistema retorna registros associados ao veículo | Integração |
| CT-CON-03 | Consultar por condutor | Sistema retorna registros relacionados | Integração |
| CT-CON-04 | Consultar por motorista | Sistema retorna viagens institucionais relacionadas | Integração |
| CT-CON-05 | Consultar por período | Sistema retorna registros no intervalo solicitado | Integração |
| CT-CON-06 | Consultar por combinação de filtros | Sistema respeita os filtros aplicados | Integração |
| CT-CON-07 | Consultar dados pessoais sem permissão | Sistema limita a visualização | Segurança e privacidade |
9.6. Correção controlada e auditoria
Origem: Impossibilidade de rasura em formulários físicos; Regras de Negócio; Segurança e Privacidade.
Objetivo do teste: garantir que correções preservem rastreabilidade.
| Código | Cenário | Resultado esperado | Tipo |
|---|---|---|---|
| CT-AUD-01 | Corrigir campo por usuário autorizado | Registro é atualizado e auditoria é criada | Integração e aceitação |
| CT-AUD-02 | Corrigir campo sem motivo | Sistema bloqueia a correção | Unitário e interface |
| CT-AUD-03 | Corrigir campo por usuário sem permissão | Sistema bloqueia a operação | Segurança |
| CT-AUD-04 | Consultar histórico da correção | Valor anterior, novo valor, motivo e usuário são exibidos conforme permissão | Integração |
| CT-AUD-05 | Tentar apagar registro histórico | Sistema bloqueia exclusão física ou aplica exclusão lógica aprovada | Unitário e integração |
| CT-AUD-06 | Verificar auditoria de criação | Usuário, data e hora ficam registrados | Integração |
| CT-AUD-07 | Verificar auditoria de encerramento | Usuário, data e hora ficam registrados | Integração |
10. Testes de autenticação e autorização
10.1. Autenticação
| Código | Cenário | Resultado esperado | Tipo |
|---|---|---|---|
| CT-AUT-01 | Login com credenciais válidas | Usuário autenticado recebe acesso permitido | Integração |
| CT-AUT-02 | Login com senha inválida | Sistema nega acesso sem expor dados internos | Segurança |
| CT-AUT-03 | Login com usuário inativo | Sistema nega acesso | Segurança |
| CT-AUT-04 | Acesso a rota protegida sem autenticação | Sistema bloqueia acesso | Segurança |
| CT-AUT-05 | Senha persistida | Banco contém somente hash, nunca texto puro | Segurança |
| CT-AUT-06 | Cinco tentativas consecutivas de login inválido | Conta é bloqueada por 15 minutos | Domínio e integração |
| CT-AUT-07 | Login bem-sucedido | Auditoria mínima é persistida sem senha, token ou e-mail | Integração |
| CT-AUT-08 | Conta atinge o limite de tentativas | Bloqueio e auditoria são persistidos atomicamente | Integração |
| CT-AUT-09 | Persistência da auditoria falha | Estado da conta sofre rollback e nenhum token é emitido | Integração |
| CT-AUT-10 | Login para e-mail inexistente | Resposta permanece genérica e nenhuma auditoria identificável é criada | Segurança e integração |
| CT-AUT-11 | Administrador pesquisa contas | Resultado é paginado e não expõe hash | Integração |
| CT-AUT-12 | Conta é desativada com JWT emitido | Token deixa de autorizar na requisição seguinte | Integração |
| CT-AUT-13 | Administrador tenta desativar a própria conta | Operação é rejeitada | Aplicação e integração |
| CT-AUT-14 | Dois administradores tentam se desativar concorrentemente | Pelo menos um Administrador permanece ativo | Integração com PostgreSQL |
| CT-AUT-15 | Auditoria da desativação falha | Estado da conta sofre rollback | Integração |
| CT-AUT-16 | Access token expira com sessão renovável válida | Cliente renova de forma controlada e repete cada requisição no máximo uma vez | Frontend e integração |
| CT-AUT-17 | Refresh token é reutilizado após rotação | Servidor revoga a família e nega nova renovação | Segurança e integração |
| CT-AUT-18 | Refresh ou logout é enviado sem proteção CSRF válida | Servidor rejeita a operação | Segurança e integração |
| CT-AUT-19 | Página é recarregada com sessão válida | Cliente restaura a sessão sem persistir tokens no armazenamento do navegador | Frontend e integração |
| CT-AUT-20 | Requisições simultâneas encontram token expirado | Renovações são coordenadas e não criam ciclo de repetição | Frontend |
| CT-AUT-21 | Logout não recebe confirmação do servidor | Estado local é encerrado e a incerteza é anunciada | Frontend |
| CT-AUT-22 | Sessão é encerrada em uma de duas abas | Outra aba encerra o estado local sem receber token | Frontend |
| CT-AUT-23 | Sessão muda em desktop, mobile, teclado e reflow de 200% | Foco, mensagens e conteúdo permanecem acessíveis | Frontend e validação humana |
10.2. Autorização
| Código | Cenário | Resultado esperado | Tipo |
|---|---|---|---|
| CT-PER-01 | Porteiro registra entrada | Operação permitida conforme perfil aprovado | Integração |
| CT-PER-02 | Porteiro tenta alterar perfil de usuário | Operação bloqueada | Segurança |
| CT-PER-03 | Setor de Transporte consulta histórico geral | Leitura permitida sem conceder entrada, saída ou encerramento excepcional | Implementado na #80 e preservado na #341 |
| CT-PER-04 | Usuário sem permissão tenta corrigir registro | Operação bloqueada | Segurança |
| CT-PER-05 | Usuário sem permissão tenta exportar dados | Operação bloqueada | Segurança |
| CT-PER-06 | Administrador consulta auditoria | Filtros, paginação, ator humano/sistema e não exposição validados | Implementado na #78 |
| CT-PER-07 | Usuário tenta acessar dados pessoais restritos | Sistema limita visualização conforme política | Pendente |
| CT-PER-08 | Setor de Transporte corrige descrição com justificativa | Somente os campos descritivos mudam; fatos, autoria original e auditoria são preservados | Backend implementado na #341; interface pendente na #274 |
11. Testes de segurança e privacidade
11.1. Dados pessoais
| Código | Cenário | Resultado esperado | Classificação |
|---|---|---|---|
| CT-PRI-01 | Cadastro de pessoa sem RG/CPF aprovado | Sistema não exige documento enquanto pendente | Proposta |
| CT-PRI-02 | Usuário não autorizado consulta documento | Sistema bloqueia ou oculta o dado | Pendente |
| CT-PRI-03 | Consulta geral de registros | Sistema não exibe RG/CPF sem necessidade aprovada | Proposta |
| CT-PRI-04 | Exportação de registros | Sistema respeita perfil e minimização de dados | Pendente |
| CT-PRI-05 | Erro de validação | Sistema não expõe dado pessoal ou informação técnica sensível | Proposta |
11.2. Integridade
| Código | Cenário | Resultado esperado | Classificação |
|---|---|---|---|
| CT-INT-01 | Alterar registro diretamente sem permissão | Sistema bloqueia operação | Proposta |
| CT-INT-02 | Corrigir registro autorizado | Sistema cria auditoria | Proposta |
| CT-INT-03 | Tentar remover pessoa com registros associados | Sistema aplica inativação ou bloqueio conforme regra aprovada | Proposta |
| CT-INT-04 | Tentar remover veículo com registros associados | Sistema aplica inativação ou bloqueio conforme regra aprovada | Proposta |
| CT-INT-05 | Tentar encerrar acesso já encerrado | Sistema bloqueia duplicidade | Proposta |
11.3. Segredos e dependências
| Código | Cenário | Resultado esperado | Classificação |
|---|---|---|---|
| CT-SEG-01 | Verificar código e configurações | Senhas, tokens e strings de conexão não estão expostos | Proposta |
| CT-SEG-02 | Executar varredura de segredos | Nenhum segredo conhecido é identificado | Futuro |
| CT-SEG-03 | Verificar dependências | Vulnerabilidades conhecidas são identificadas e avaliadas antes da implantação | Proposta |
| CT-SEG-04 | Verificar imagens de container | Imagem é analisada quando a conteinerização existir | Futuro |
| CT-SEG-05 | Verificar configurações da API | Segredos não são gravados em appsettings versionado ou em código |
Proposta |
| CT-SEG-06 | Verificar variáveis da pipeline | Segredos são fornecidos por mecanismo protegido quando a pipeline existir | Futuro |
12. Testes de interface e usabilidade
12.1. Objetivo
Os testes de interface devem verificar se o sistema reduz a complexidade do processo atual, especialmente para porteiros e vigilantes em horários de pico.
12.2. Cenários iniciais
| Código | Cenário | Resultado esperado |
|---|---|---|
| CT-UI-01 | Usuário inicia registro de entrada | Fluxo apresenta campos necessários de forma clara |
| CT-UI-02 | Usuário pesquisa veículo pela placa | Busca é fácil de localizar e retorna resultado compreensível |
| CT-UI-03 | Usuário registra saída | Registro aberto é localizado sem exigir consulta manual em papel |
| CT-UI-04 | Usuário registra retorno institucional | Campos de quilometragem e itinerário são apresentados no fluxo correto |
| CT-UI-05 | Usuário preenche campo inválido | Mensagem explica o problema e como corrigir |
| CT-UI-06 | Usuário sem permissão acessa função restrita | Interface não permite ou informa acesso negado |
| CT-UI-07 | Vigilante assume turno | Registros em aberto podem ser identificados conforme perfil |
| CT-UI-08 | Setor de Transporte realiza consulta histórica | Filtros necessários estão disponíveis e compreensíveis |
12.3. Validação com usuários
Antes da implantação, os fluxos principais devem ser demonstrados para representantes da portaria e do Setor de Transporte, quando possível.
O objetivo é validar:
- Clareza dos campos.
- Quantidade de passos.
- Termos utilizados.
- Facilidade de consulta.
- Adequação aos horários de pico.
- Utilidade das mensagens de validação.
- Necessidade real de cada campo.
Classificação: Proposta.
13. Testes de contingência
13.1. Indisponibilidade de rede
O procedimento definitivo ainda é pendente, mas os testes futuros devem verificar o fluxo aprovado.
Exemplo de cenário preliminar:
1. Rede fica indisponível.
2. Usuário identifica a indisponibilidade.
3. Usuário segue procedimento temporário aprovado.
4. Dados são registrados no meio definido pela instituição.
5. Sistema retorna.
6. Usuário autorizado registra os dados posteriormente.
7. Sistema registra justificativa e auditoria do lançamento posterior.
Classificação: Pendente.
13.2. Indisponibilidade do sistema
Os testes futuros devem verificar:
- Registro da indisponibilidade.
- Procedimento alternativo aprovado.
- Recuperação da operação.
- Registro posterior sem duplicidade.
- Auditoria dos lançamentos posteriores.
Classificação: Pendente.
13.3. Falha de backup e recuperação
Quando a infraestrutura existir, devem ser realizados testes de:
- Execução de backup do PostgreSQL.
- Restauração de dados.
- Validação da integridade após restauração.
- Tempo necessário para recuperação.
- Proteção de acesso ao backup.
Classificação: Futuro.
14. Testes de desempenho e carga
14.1. Objetivo
Verificar se o sistema mantém comportamento adequado durante períodos com maior movimentação de veículos e consultas.
14.2. Dependências
Antes de definir metas de desempenho, é necessário confirmar:
- Volume aproximado de acessos por dia.
- Horários de pico.
- Número de usuários simultâneos.
- Infraestrutura disponível.
- Ambiente de homologação ou implantação.
- Configuração do PostgreSQL.
- Configuração do backend ASP.NET Core.
- Stack e ferramentas do frontend.
Classificação: Pendente.
14.3. Cenários futuros
| Cenário | Objetivo | Ferramenta ou abordagem |
|---|---|---|
| Registros de entrada em sequência | Verificar capacidade de atendimento em pico | A definir |
| Consultas simultâneas por placa | Verificar resposta de busca | A definir |
| Consultas por período histórico | Verificar desempenho de filtros | A definir |
| Acessos simultâneos | Verificar estabilidade da aplicação | A definir |
| Teste básico de carga | Verificar comportamento sob carga no ambiente disponível | Ferramenta a definir |
As metas de desempenho, a ferramenta de carga e o momento de execução ainda não foram definidos.
Classificação: Futuro.
15. Ambientes de teste
15.1. Ambiente local
O ambiente local será utilizado inicialmente para:
- Desenvolvimento do frontend React.
- Desenvolvimento do backend ASP.NET Core.
- Execução de testes unitários.
- Execução de testes de integração.
- Verificação manual dos fluxos.
- Execução do PostgreSQL local ou containerizado.
- Demonstração inicial para a equipe.
Classificação: Proposta.
15.2. Ambiente de homologação
Antes da implantação para uso real, recomenda-se um ambiente de homologação para:
- Validar funcionalidades integradas.
- Executar testes manuais.
- Demonstrar o incremento.
- Validar com professores e stakeholders.
- Executar testes de segurança básicos.
- Executar testes de carga quando viável.
A existência desse ambiente depende da infraestrutura e da implantação futura.
Classificação: Futuro e pendente de confirmação.
15.3. Ambiente de produção
O ambiente de produção somente deverá existir após:
- Validação dos requisitos.
- Validação formal da versão do .NET.
- Definição das ferramentas pendentes.
- Definição de infraestrutura.
- Configuração de autenticação e autorização.
- Configuração de backup.
- Configuração de conexão protegida.
- Execução de testes necessários.
- Aprovação da equipe e dos responsáveis.
Classificação: Futuro.
16. Dados de teste
16.1. Princípios
Dados de teste não devem utilizar informações pessoais reais sem autorização e necessidade.
A equipe deve utilizar dados fictícios ou anonimizados para desenvolvimento, testes e demonstrações.
Classificação: Proposta.
16.2. Exemplos de dados fictícios
| Tipo | Exemplo |
|---|---|
| Condutor | Ana Souza |
| Motorista institucional | João Silva |
| Veículo | Veículo institucional 01 |
| Placa fictícia | ABC1D23 |
| Objetivo | Entrega de material |
| Itinerário | Belo Jardim — Recife |
| Usuário porteiro | porteiro.teste |
| Usuário transporte | transporte.teste |
Os exemplos devem ser ajustados conforme os formatos escolhidos, sem utilizar dados reais de servidores, alunos, visitantes ou motoristas.
16.3. Dados pessoais
RG ou CPF não devem ser incluídos em massa de testes enquanto sua necessidade estiver pendente.
Caso a coleta seja aprovada futuramente, dados de teste devem continuar sendo fictícios ou anonimizados.
Classificação: Proposta.
17. Critérios de entrada e saída dos testes
17.1. Critérios de entrada
Uma funcionalidade poderá iniciar testes quando:
- Possuir issue vinculada.
- Possuir descrição clara.
- Possuir objetivo compreensível.
- Possuir requisito ou user story relacionado.
- Possuir critérios de aceite.
- Possuir regras de negócio identificadas.
- Possuir dependências conhecidas.
- Possuir dados de teste definidos.
- Possuir ambiente disponível para o tipo de teste.
- Não possuir dúvidas críticas não registradas.
Esses critérios estão alinhados à Definition of Ready do projeto.
17.2. Critérios de saída
Uma funcionalidade poderá ser considerada testada quando:
- Os cenários críticos previstos forem executados.
- Os critérios de aceite forem verificados.
- Os testes unitários e de integração aplicáveis forem executados.
- Não houver falhas críticas conhecidas sem registro.
- Falhas encontradas estiverem corrigidas, aceitas ou registradas como pendência.
- A revisão por Pull Request for realizada, quando aplicável.
- A pipeline estiver aprovada, quando existir.
- A documentação estiver atualizada.
- O incremento puder ser demonstrado localmente ou no ambiente disponível.
- A issue estiver atualizada com evidências necessárias.
Esses critérios estão alinhados à Definition of Done do projeto.
18. Cobertura de testes
18.1. Meta preliminar
A equipe adotará uma meta preliminar de cobertura de 70% para componentes e fluxos críticos, sujeita à validação dos professores e às possibilidades das ferramentas escolhidas.
A meta deve ser aplicada principalmente a:
- Autenticação.
- Autorização.
- Registro de entrada.
- Registro de saída.
- Veículo institucional.
- Quilometragem.
- Consulta de registros abertos.
- Correção controlada.
- Auditoria.
- Validações de integridade.
Classificação: Proposta.
18.2. Limitações atuais
Ainda não existe:
- Ferramenta de cobertura escolhida.
- Código implementado.
- Pipeline configurada.
- Métrica real de cobertura.
- Ambiente de homologação confirmado.
- Testes automatizados implementados.
Portanto, este documento não afirma que 70% de cobertura já foi atingida.
Classificação: Confirmado.
19. Integração com GitHub e qualidade
19.1. Issues
Cada funcionalidade implementada deve estar relacionada a uma issue com:
- Objetivo.
- Critérios de aceite.
- Requisitos associados.
- Regras de negócio relacionadas.
- Cenários de teste principais.
- Responsável.
- Dependências.
- Evidências de conclusão.
Classificação: Proposta alinhada ao processo do projeto.
19.2. Pull Requests
Pull Requests devem incluir:
- Referência à issue.
- Descrição da alteração.
- Testes adicionados ou executados.
- Resultado da pipeline, quando existir.
- Evidências de execução local ou em homologação.
- Riscos ou pendências conhecidas.
- Atualização de documentação, quando necessária.
Classificação: Proposta.
19.3. Pipeline
A pipeline existente executa restore, build e testes do backend, publica TRX/cobertura, executa lint, testes e build do frontend, constrói e analisa imagens e comprova manifesto, rejeição de adulteração e backup/restauração do PostgreSQL em banco isolado. A evolução deve considerar progressivamente:
Configuração do .NET e frontend
↓
Restauração de dependências
↓
lint
↓
build
↓
testes
↓
cobertura
↓
análise de qualidade
↓
análise de dependências
↓
build de imagem, quando aplicável
↓
análise de imagem, quando aplicável
↓
publicação de imagem ou deploy, quando definido
Build de imagens, análise de imagens e deploy continuam pendentes e estão relacionados à Issue #25.
Classificação: Parcialmente implementado.
19.4. Evidências
As evidências esperadas durante a implementação incluem:
- Link da issue.
- Pull Request.
- Resultado da pipeline, quando existir.
- Testes executados.
- Relatório de cobertura, quando disponível.
- Demonstração na review ou weekly.
- Capturas ou registros de homologação, quando aplicável.
- Atualização da documentação.
Classificação: Proposta.
20. Rastreabilidade entre requisitos e testes
| Área ou requisito | Fluxos de teste relacionados |
|---|---|
| Registro de entrada | CT-ENT-01 a CT-ENT-09 |
| Registro de saída | CT-SAI-01 a CT-SAI-07 |
| Veículos sem saída | CT-PRE-01 a CT-PRE-04 |
| Veículos institucionais | CT-INS-01 a CT-INS-12 |
| Consultas históricas | CT-CON-01 a CT-CON-07 |
| Correções e auditoria | CT-AUD-01 a CT-AUD-07 |
| Autenticação | CT-AUT-01 a CT-AUT-23 |
| Perfis e permissões | CT-PER-01 a CT-PER-07 |
| Privacidade | CT-PRI-01 a CT-PRI-05 |
| Integridade | CT-INT-01 a CT-INT-05 |
| Segredos e dependências | CT-SEG-01 a CT-SEG-06 |
| Interface e usabilidade | CT-UI-01 a CT-UI-08 |
| Contingência | Cenários descritos na seção 13 |
| Desempenho e carga | Cenários descritos na seção 14 |
21. Riscos e limitações
| Risco ou limitação | Impacto | Tratamento preliminar | Classificação |
|---|---|---|---|
| Casos de uso ainda não implementados | A cobertura atual não verifica fluxos funcionais completos | Adicionar testes junto de cada caso de uso | Pendente |
| Fluxos futuros ainda sem interface integrada | A cobertura atual não verifica módulos ainda não conectados à API | Adicionar testes junto de cada integração e planejar testes ponta a ponta | Pendente |
| Infraestrutura não confirmada | Testes de implantação e carga ficam adiados | Validar ambiente antes da implantação | Pendente |
| Regras institucionais pendentes | Casos de teste podem mudar | Manter cenários condicionais e não implementar como regra definitiva | Pendente |
| Volume de acessos não medido | Metas de desempenho não podem ser definidas | Levantar horários de pico e volume | Pendente |
| RG/CPF pendente | Testes de privacidade podem precisar de ajuste | Não exigir documento até aprovação | Pendente |
| MVP pode crescer excessivamente | Aumento de cenários e atraso | Manter fluxos condicionais fora do núcleo | Preliminar |
| Catraca quebrada | Não permite testes de integração física | Não depender de automação no MVP | Informado |
| Não há ambiente de homologação confirmado | Limita testes integrados e demonstrações | Planejar ambiente após definir infraestrutura | Pendente |
| Limites do ambiente JSDOM | Contraste real, zoom, breakpoints e anúncio por leitor de tela não são comprovados automaticamente | Manter revisão manual em navegador e homologação com usuários | Pendente |
| Cobertura sem meta aprovada | O número isolado pode induzir conclusão inadequada | Medir por risco e não bloquear apenas por percentual | Pendente |
22. Pendências para validação
22.1. Backend e dados
- Definir autenticação.
- Definir autorização.
- Definir formato de erros da API.
- Definir documentação OpenAPI.
- Definir logging.
- Definir tratamento de exceções.
- Definir padrão de DTOs.
- Definir padrão de respostas.
- Confirmar o Modelo de Dados v0.3.
- Ampliar os testes de PostgreSQL e API junto de cada novo fluxo.
- Definir critérios de cobertura por risco.
- Definir ferramenta de análise de qualidade backend.
22.2. Frontend
- Definir biblioteca de componentes.
- Definir gerenciamento de estado.
- Validar a arquitetura existente do cliente HTTP e dos formulários quando houver endpoints.
- Definir estratégia de autenticação.
- Ampliar os testes de interface junto de cada novo fluxo integrado.
- Definir testes ponta a ponta e critérios de cobertura por risco.
22.3. Qualidade e automação
- Definir lint/format do backend e estratégia de testes ponta a ponta do frontend.
- Manter a publicação de cobertura e interpretar o resultado por risco.
- Definir scanner de dependências.
- Definir scanner de imagem Docker.
- Endurecer e ampliar os workflows na Issue #25.
- Definir ambiente de homologação.
- Definir teste de carga.
- Definir observabilidade.
22.4. Infraestrutura e operação
- Onde será realizado o deploy?
- Haverá VM institucional, VM na OCI ou outro ambiente?
- Haverá ambiente de homologação?
- Haverá domínio e HTTPS?
- Como será configurado o proxy reverso?
- Quais recursos de CPU, memória e armazenamento estarão disponíveis?
- Como será configurada a VCN e as regras de rede na OCI?
- Quem será responsável pelo suporte técnico?
- Como será o acesso SSH à VM?
- Como serão armazenados os segredos de produção?
- Qual será a política de backup e recuperação?
- Como funcionará a contingência?
- Como serão tratados incidentes?
- Quais logs deverão ser mantidos?
- Quais métricas serão monitoradas?
23. Status, validação e próximas etapas
Documento: Estratégia de Testes
Versão: 0.35
Status: Suítes backend e frontend e barreiras descartáveis de banco, containers e demonstração implementadas; carga, ponta a ponta e homologação pendentes
Núcleo considerado: Formulários nº 01 e nº 02
MVP: Preliminar
Issue relacionada: #12 — Criar estratégia de testes
Stack e arquitetura consideradas
- Frontend: React + TypeScript.
- Backend: ASP.NET Core Web API + C#.
- Versão do .NET: .NET 10 com target
net10.0. - Banco de dados: PostgreSQL.
- ORM: Entity Framework Core.
- Migrações: Entity Framework Core Migrations.
- Arquitetura: Clean Architecture adaptada ao MVP.
- Estilo arquitetural: Monólito modular.
- Infraestrutura planejada: Docker, Docker Compose, GitHub Actions e VM Linux na OCI.
Estado atual
- Ferramentas de teste backend: xUnit v3, Microsoft Testing Platform, Testcontainers e
WebApplicationFactoryimplementados. - Testes na
main: 262 testes de backend, incluindo integração com PostgreSQL real, além de 495 testes de frontend. - Testes frontend na
main: 495 testes em 48 arquivos com Vitest, Testing Library e axe-core. - Pipeline: Workflows de backend, frontend, containers, recuperação com manifesto SHA-256 e dados de demonstração implementados.
- Cobertura: coletada como Cobertura pela CI, sem meta percentual aprovada.
- Ambiente de homologação: Ainda não existe ou não foi confirmado.
- Testes de carga: Futuros.
- Código: Backend do MVP com fluxos geral, institucional, eventos e resumo diário implementado.
- Banco: PostgreSQL/EF Core e integração automatizada implementados.
- Containers: Build, hardening, scans, smoke test e publicação verificável implementados.
- Deploy: Ainda não realizado.
Principais alterações da versão 0.3
- Atualizada a referência da Arquitetura de Software para a versão 0.2.
- Incluídos Guia de Execução v0.2 e Decisão de Stack Tecnológica v0.2 como documentos relacionados.
- Registrados React e TypeScript como tecnologias do frontend.
- Registrados ASP.NET Core Web API, C# e a proposta histórica de .NET 8 como direcionamento da versão 0.3; a versão 0.4 registra o .NET 10 implementado.
- Registrados PostgreSQL, Entity Framework Core e Migrations como direcionamentos de persistência.
- Registradas Clean Architecture adaptada e monólito modular como decisões arquiteturais.
- Registrados Docker, Docker Compose, GitHub Actions e OCI como direcionamentos de infraestrutura.
- Incluído xUnit como ferramenta preliminar para testes unitários backend.
- Atualizados testes de integração para considerar Entity Framework Core e PostgreSQL.
- Incluídos cenários de segurança para
appsettings, variáveis de ambiente e segredos de pipeline. - Preservada a baseline de planejamento que antecedeu a implementação.
Principais alterações da versão 0.4
- Registrados os 40 testes integrados à
mainnaquele marco. - Documentados os testes arquiteturais, de API e PostgreSQL já implementados.
- Registrados Testcontainers,
WebApplicationFactory, coverlet e artefatos da CI. - Separadas as lacunas reais de frontend, segurança, carga e homologação.
Principais alterações da versão 0.6
- Atualizada a baseline para 47 testes integrados à
main. - Registrada a cobertura de correlation ID, limite de payload, erros seguros e logs mínimos.
- Mantidos auditoria de negócio, carga, frontend e homologação como evoluções específicas.
Principais alterações da versão 0.7
- Atualizada a baseline para 50 testes integrados à
main. - Registrados testes de autoria, minimização, rollback e concorrência da auditoria de entrada e saída.
- Mantidas auditoria dos demais fluxos, carga, frontend e homologação como evoluções específicas.
Principais alterações da versão 0.8
- Atualizada a baseline para 60 testes integrados à
main. - Registradas validações de saída, retorno, concorrência, auditoria e rollback do fluxo institucional.
- Mantidos catálogos, pesquisa histórica, frontend, carga e homologação como evoluções específicas.
Principais alterações da versão 0.9
- Atualizada a baseline para 84 testes integrados à
main. - Registradas validações de autorização, normalização, concorrência, auditoria e rollback dos catálogos iniciais de frota e motoristas.
- Mantidos manutenção da frota, pesquisa histórica, frontend, carga e homologação como evoluções específicas.
Principais alterações da versão 0.12
- Atualizada a baseline para 94 testes integrados à
main. - Registrados testes de domínio, autorização, normalização, idempotência, concorrência, auditoria e rollback da manutenção controlada da frota.
- Mantidos histórico do fluxo geral, frontend, carga e homologação como evoluções específicas.
Principais alterações da versão 0.13
- Atualizada a baseline para 99 testes integrados à
main. - Registrados testes de validação, autorização, filtros, ordenação e paginação da consulta histórica geral.
- Mantidos correções rastreáveis, frontend, carga e homologação como evoluções específicas.
Principais alterações da versão 0.14
- Atualizada a baseline para 108 testes integrados à
main. - Registradas validações de domínio, permissões, imutabilidade, minimização da auditoria e rollback da correção descritiva.
- Mantidos backup/restauração, frontend, carga e homologação como evoluções específicas.
Principais alterações da versão 0.15
- Registrado o workflow
CI - Database recoveryda Issue #67. - Confirmada a criação do dump, a restauração completa e a limpeza do banco temporário em Linux.
- Mantidos como pendentes o backup protegido de produção e os testes de contingência institucional.
Principais alterações da versão 0.16
- Registrados quatro testes específicos de rate limiting da Issue #69.
- Cobertos HTTP 429 correlacionado,
Retry-After, partições independentes, health checks isentos e falha de configuração no startup. - Elevada a baseline para 112 testes na
main.
Principais alterações da versão 0.17
- Registrada a auditoria transacional de login bem-sucedido e bloqueio temporário da Issue #71.
- Cobertos minimização dos detalhes, ausência de auditoria identificável para conta inexistente e rollback quando a auditoria falha.
- Elevada a baseline para 113 testes na
main.
Principais alterações da versão 0.18
- Registrado o ciclo administrativo seguro de contas da Issue #73.
- Cobertos paginação sem hash, desativação imediata, reativação, concorrência entre administradores e rollback da auditoria.
- Elevada a baseline para 124 testes na
main.
Principais alterações da versão 0.19
- Registrada a auditoria atômica de criação administrativa e bootstrap da Issue #76.
- Cobertos ator de sistema nulo, minimização, rollback e upgrade/downgrade seguro da migration.
- Elevada a baseline para 129 testes na
main.
Principais alterações da versão 0.20
- Registrada a consulta administrativa da trilha de auditoria da Issue #78.
- Cobertos autorização, período, filtros, paginação, JSON estruturado e não exposição.
- Elevada a baseline para 136 testes na
main.
Principais alterações da versão 0.21
- Registrada a matriz operacional confirmada na Issue #75 e aplicada na Issue #80.
- Coberta a leitura do histórico geral por Transporte sem ampliar operação ou correção.
- Elevada a baseline para 150 testes na
main, incluindo catálogo, permissões e rollback transacional de autorizações de eventos.
Principais alterações da versão 0.23
- Registrada a associação operacional de entradas às autorizações de eventos da Issue #82.
- Cobertos validade, cancelamento, precedência de placa, cota por tipo, concorrência PostgreSQL e preservação no histórico.
- Elevada a baseline para 155 testes na
main.
Principais alterações da versão 0.25
- Atualizada a baseline para 175 testes, sendo 93 de integração com PostgreSQL.
- Registrado o workflow descartável
CI - Demo datada Issue #112 e PR #113. - Separada a repetibilidade técnica automatizada da homologação ainda pendente com usuários.
Principais alterações da versão 0.27
- Atualizada a baseline para 118 testes frontend em 20 arquivos após a integração da administração de contas pela Issue #158 e pelo PR #159.
- Mantidas separadas a cobertura automatizada, a futura consulta da auditoria e a homologação manual com os quatro perfis.
Principais alterações da versão 0.28
- Atualizada a baseline para 129 testes frontend em 21 arquivos após a integração da consulta administrativa da auditoria pela Issue #161 e pelo PR #164.
- Registrados testes de contrato, restrição por perfil, filtros locais e da API, paginação, falha, nova tentativa, conteúdo JSON seguro, acessibilidade e preservação das contas ao alternar áreas.
- Mantida separada a cobertura automatizada da homologação manual com os quatro perfis na Issue #162.
Principais alterações da versão 0.29
- Atualizada a baseline para 130 testes frontend em 21 arquivos após a correção do estado global do MVP pela Issue #169 e pelo PR #170.
- Registrada a proteção automatizada do texto que separa integração técnica, homologação institucional e liberação para produção.
- Confirmada pelo build a remoção de estilos, página e imagens sem referências do scaffold inicial.
Principais alterações da versão 0.30
- Atualizada a baseline para 134 testes frontend em 21 arquivos após a integração do fluxo consecutivo de entradas gerais pela Issue #167 e pelo PR #168.
- Registrada a cobertura de sucesso consecutivo, navegação para acessos em aberto, preservação dos valores após falha, bloqueio de submissões duplicadas, anúncio acessível e retorno do foco à placa.
- Mantida separada a validação técnica da homologação institucional dos quatro perfis na Issue #162.
Principais alterações da versão 0.31
- Atualizada a baseline para 254 testes de backend e 432 testes frontend em 44 arquivos.
- Registrados o manifesto SHA-256, sua validação antes da restauração e o teste negativo de adulteração da Issue #308 e do PR #309.
- Mantidos como pendentes autenticidade, criptografia, armazenamento externo e exercício institucional da Issue #30.
Principais alterações da versão 0.34
- Atualizada a baseline para 440 testes frontend em 45 arquivos após o PR #411.
- Registrada a proteção automatizada da estrutura semântica, da ordem de foco e da ausência de escala global no login.
- Mantida a aprovação institucional da modernização visual como etapa separada.
Principais alterações da versão 0.35
- Atualizada a baseline para 495 testes frontend em 48 arquivos após os PRs #419, #420 e #426.
- Registrada a cobertura das superfícies modernizadas de autenticação, navegação, operação, supervisão e administração.
- Registrados estados vazios e alternativas textuais acessíveis dos agregados reais incorporados ao resumo administrativo pelo PR #425.
- Mantidos tema escuro, validação física e homologação institucional como etapas separadas da integração técnica.
Principais alterações da versão 0.33
- Atualizada a baseline para 437 testes frontend em 45 arquivos após os PRs #408 e #399.
- Registrada a verificação automatizada do contrato de tokens e das combinações mínimas de contraste.
- Mantidas a validação humana das telas, a ativação de temas e a homologação institucional como etapas separadas.
Próximas etapas
- Validar o documento com os professores.
- Ampliar os testes frontend a cada nova tela operacional integrada.
- Adicionar testes a cada caso de uso e endpoint novo.
- Planejar testes ponta a ponta e homologação do frontend com usuários representativos.
- Endurecer os workflows na Issue #25.
- Homologar a consulta da auditoria e os demais fluxos integrados com os quatro perfis na Issue #162.
- Planejar homologação, carga e contingência quando houver ambiente e volume conhecidos.