Governança de testes e validação

PayCal trata a validação automatizada como um contrato de liberação, não como uma verificação de qualidade opcional.

Metadados de verificação

  • Route: /transparency/testing/
  • Last verified:
  • Next review due:
  • Current suite inventory: 1.212 testes listados em 118 arquivos.

Pilha de validação de bloqueio de versão

For release hygiene sweeps (including /mis workflow), the following gates are run and treated as blockers:

  • ./vendor/bin/phpunit -c phpunit.xml (backend unit/integration/contract suite)
  • cd html && composer run phpstan:strict (PHPStan Level 9 strict)
  • cd .. && npm run test:js (JS lint + security sink checks)
  • cd .. && npm run test:a11y:all (PHPUnit a11y + Playwright + strict WCAG + contrast + Lightpanda)

Quando uma porta falha, o trabalho de liberação é pausado até que a falha seja corrigida e a porta afetada seja executada novamente.

Topologia de teste atual

Categoria Suíte Arquivos Foco de cobertura
Unidade 60 Comportamento de domínio e serviço, invariantes de segurança, lógica auxiliar
Integração 49 Fluxos de controlador/API, caminhos de autenticação, ciclo de vida criptografado, proteções de tempo de execução
Contrato 7 Contratos de limite e compatibilidade entre componentes críticos
Manuais 2 Simulações orientadas pelo operador e verificação do ambiente direcionado

Expansão recente dos testes de segurança

  • Ciclo de vida do token de capacidade e cobertura de negação de incompatibilidade.
  • Cobertura de endpoint de ingestão de relatório CSP para variantes de carga útil simples e aninhadas.
  • Cobertura do sanitizador Guardian ancorada na configuração do tempo de execução e nos controles do seletor bloqueado.
  • Regressões de negação de mutação de administrador para tokens de capacidade única ausentes/inválidos.

Política Pública de Rastreabilidade

Quando o conteúdo do lançamento muda o comportamento, publicamos atualizações em ambos:

  • docs/v1.changelog.md (technical release detail)
  • Transparency pages under /transparency/ (public explanation)

Isto mantém as evidências de implementação e os compromissos públicos sincronizados.

For npm lockfile policy and CI gate mapping details, see /transparency/dependency-ci/.