feat: item 10 do roadmap -- Quality Intelligence #60

Merged
jhony75 merged 1 commit from feature/quality-intelligence into develop 2026-09-10 20:21:32 -03:00
Owner

Implementa o item 10 do roadmap: Quality Intelligence -- agregacoes read-only sobre execucao real de testes, sem tabela nova.

Escopo completo (decisao do usuario), com 3 definicoes confirmadas via AskUserQuestion antes de implementar:

  • Recorrencia = falha persistente entre execucoes consecutivas do mesmo cenario (nao achado reaberto -- sem log de auditoria ainda, isso fica pro item 14).
  • Area (cobertura e qualidade por area) = Tag.
  • Regressao = cenario que passou no build anterior e falhou no atual; saude geral = numeros lado a lado (taxa de aprovacao + regressoes + flaky + falhas persistentes), sem compor um score unico.

Novos endpoints em modules/quality_intelligence/ (sem tabela propria, tudo via services/quality_intelligence.py sobre TestRun/TestRunScenario/TestRunStep existentes): pass-rate-trend, duration-trend, scenario-health (base compartilhada de flaky/persistente/hotspot), failure-classification, coverage-by-tag, regressions, health.

Frontend: nova pagina /qualidade, reaproveitando recharts/Tabs/StatCard/CoverageStatus ja existentes -- 13 testes de backend, 7 de frontend, tsc/lint/build/build-storybook OK.

Achado durante a implementacao (corrigido, nao bloqueia o PR): jsdom nao tem ResizeObserver, usado pelo ResponsiveContainer do recharts -- nenhum componente com grafico tinha teste ate agora (nem Metrics.tsx, que ja existia). Adicionado um stub minimo em src/test/setup.ts, beneficia qualquer teste futuro de grafico.

Verificacao manual completa contra o banco de dev real (dados de demo existentes): scorecard, os 4 graficos/tabelas, troca de build na comparacao de regressoes, e as 3 abas de saude por cenario (flaky/persistente/hotspots) -- tudo com dados reais e refetch correto.

Implementa o item 10 do roadmap: Quality Intelligence -- agregacoes read-only sobre execucao real de testes, sem tabela nova. Escopo completo (decisao do usuario), com 3 definicoes confirmadas via AskUserQuestion antes de implementar: - **Recorrencia** = falha persistente entre execucoes consecutivas do mesmo cenario (nao achado reaberto -- sem log de auditoria ainda, isso fica pro item 14). - **Area** (cobertura e qualidade por area) = Tag. - **Regressao** = cenario que passou no build anterior e falhou no atual; **saude geral** = numeros lado a lado (taxa de aprovacao + regressoes + flaky + falhas persistentes), sem compor um score unico. Novos endpoints em `modules/quality_intelligence/` (sem tabela propria, tudo via `services/quality_intelligence.py` sobre TestRun/TestRunScenario/TestRunStep existentes): pass-rate-trend, duration-trend, scenario-health (base compartilhada de flaky/persistente/hotspot), failure-classification, coverage-by-tag, regressions, health. Frontend: nova pagina `/qualidade`, reaproveitando recharts/Tabs/StatCard/CoverageStatus ja existentes -- 13 testes de backend, 7 de frontend, tsc/lint/build/build-storybook OK. Achado durante a implementacao (corrigido, nao bloqueia o PR): jsdom nao tem `ResizeObserver`, usado pelo `ResponsiveContainer` do recharts -- nenhum componente com grafico tinha teste ate agora (nem `Metrics.tsx`, que ja existia). Adicionado um stub minimo em `src/test/setup.ts`, beneficia qualquer teste futuro de grafico. Verificacao manual completa contra o banco de dev real (dados de demo existentes): scorecard, os 4 graficos/tabelas, troca de build na comparacao de regressoes, e as 3 abas de saude por cenario (flaky/persistente/hotspots) -- tudo com dados reais e refetch correto.
feat: item 10 do roadmap -- Quality Intelligence
All checks were successful
EEG QA CI / Backend (pull_request) Successful in 1m18s
EEG QA CI / Detectar o que mudou (pull_request) Successful in 22s
EEG QA CI / Frontend (pull_request) Successful in 2m2s
EEG QA CI / Build e publicação de imagens (pull_request) Successful in 1m21s
EEG QA CI / Deploy production (pull_request) Has been skipped
EEG QA CI / Deploy development (pull_request) Has been skipped
0e26aa39ad
Agregacoes read-only sobre execucao real de testes (TestRun/
TestRunScenario/TestRunStep), sem tabela nova. Cada endpoint responde
uma pergunta concreta, decisoes de escopo confirmadas com o usuario:

- Taxa de aprovacao por build, ao longo do tempo.
- Cenarios instaveis (flaky), falha persistente (recorrencia = 2+
  falhas seguidas do mesmo cenario, nao achado reaberto -- isso fica
  pro item 14 quando tiver log de auditoria) e hotspots, todos
  derivados de uma unica lista de saude por cenario.
- Falhas por classificacao (produto/automacao/ambiente/etc).
- Cobertura e taxa de aprovacao por tag (area = tag, decisao
  confirmada).
- Regressoes (passou no build anterior, falhou no atual) e um resumo
  de saude geral (taxa de aprovacao + regressoes + flaky + falhas
  persistentes lado a lado, sem compor um score unico).
- Duracao media por build, so quando ha amostra de automacao.

Nova pagina /qualidade (Quality Intelligence) no frontend, reaproveita
recharts/Tabs/StatCard/CoverageStatus ja existentes. Corrige lacuna de
teste pre-existente: jsdom nao tem ResizeObserver, usado pelo
ResponsiveContainer do recharts -- adiciona um stub minimo no setup
global de teste (nenhum componente com grafico tinha teste antes).
jhony75 merged commit b844830397 into develop 2026-09-10 20:21:32 -03:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jhony75/eeg-qa!60
No description provided.