Files
VacatureRadar/docs/quality/BENCHMARKS.md
T
Jens b8091e59bd
deploy / deploy (push) Canceled after 0s
Initial deploy setup
2026-07-21 14:00:00 +02:00

2.0 KiB

Benchmarks en kwaliteitsrapportage (VR-116)

Doel

VR-116 levert een reproduceerbaar benchmarkpakket voor:

  • parservelddekking;
  • deduplicatie-kwaliteit (precision/recall, false merges/missed merges);
  • rankingstabiliteit (top-N churn, onbekende-data ratio);
  • performance (p50/p95, querycount en memory peak).

De CLI werkt zonder live netwerk met de synthetische fixtures uit fixtures/benchmark/.

Datasets

fixtures/benchmark/quality_benchmark.json

  • bevat parsercases met verwachte parserkey/version en verwachte minima;
  • bevat dedupe seeds en querycases met verwachte matchlabels;
  • bevat geen echte broninhoud of persoonlijke gegevens.

CLI

uv run python scripts/benchmark.py --quick
uv run python scripts/benchmark.py --jobs 25000 --top-n 25
uv run python scripts/benchmark.py --jobs 25000 --json --top-n 25
uv run python scripts/benchmark.py --skip-performance --quick

Rapportformat

De JSON-rapportage bevat minimaal:

  • parser: dekking en onbekend-aandeel;
  • dedupe: precision, recall, false merges, missed merges;
  • ranking: top-N churn en unknown-data ratio;
  • performance: p50, p95, querycount, peak memory, totale duur;
  • nfr_007: gegraveerde metingstatus/passing van p95 < 1000 ms.

Drempels en interpretatie

  • Parser: standaard doel coverage_ratio >= 0.90.
  • Dedupe: standaard doel precision >= 0.90 en recall >= 0.90.
  • Ranking: standaard doel churn <= 0.35.
  • NFR-007: enkel als nfr_007.measured == true wordt de p95-check als afgewerkt beoordeeld.

Uitvoeringsmodus

  • --quick: voert parser/dedupe/ranking uit met 250 ingestaste jobs.
  • standaardmodus: voert ook een performancepass uit op 25.000 jobs (mits runtime toelaatbaar).
  • --skip-performance: nuttig voor CI/quickvalidatie zonder de lange performance-run.

Afwijkingen

Wanneer p95 of dedupe niet voldoet, rapporteert het script een status failed met detaildata per case. Die output is bedoeld als regressiebasis voor foutanalyse en threshold-sturing.