Assessor_2.0/docs/TEST_BASELINE.md

112 lines
4.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ASSESSOR – Testbaseline
Stand: 2026-07-17
Zugehörige Planphase: Phase 1 – bestehenden Funktionsumfang und Testkorpus absichern
## Zweck
Diese Baseline hält fest, welche gegenwärtigen Funktionen automatisiert geprüft werden und welche Nachweise für den Abschluss von Phase 1 noch fehlen. Sie beschreibt den aktuellen Stand, nicht den vollständigen späteren Zielumfang.
## Verifikationsbefehle
- `npm test`: Modultests und Local-only-Sicherheitsprüfung
- `npm run build`: TypeScript-Prüfung und Vite-Produktionsbuild
Verifizierter Stand am 2026-07-17:
- 22 Testdateien erfolgreich
- 55 Tests erfolgreich
- Local-only-Sicherheitsprüfung erfolgreich
- Produktionsbuild erfolgreich
- bekannte Buildwarnung: JavaScript-Hauptchunk größer als 500 kB, hauptsächlich durch die gebündelte Excel-Verarbeitung
## Formatabdeckung
| Format | Positivfall | Negativ- oder Sicherheitsfall | Status |
|---|---|---|---|
| CSV | Trennzeichenerkennung, Quotes und mehrzeilige Zellen | leere Eingabe und Leerzeilen | automatisiert |
| JSON | verschachtelte Objekte und Objektarrays | syntaktisch ungültiges JSON | automatisiert |
| XML | Pfade, Attribute und direkte Textwerte | syntaktisch ungültiges XML | automatisiert |
| HTML | mehrere benannte Tabellen und Text-Fallback | aktive Inhalte werden vor der Extraktion entfernt | automatisiert |
| XLS/XLSX | Tabelleninhalt und versteckte Sheets | leere Arbeitsmappe und keine Offenlegung von Formeln | automatisiert |
Die HTML- und XML-Tests laufen mit `jsdom` als reiner Entwicklungsabhängigkeit. Die Produktionsanwendung verwendet weiterhin die DOM-APIs ihres lokalen WebViews.
## Automatisierte Funktionsabdeckung
### Import und Analyse
- CSV-, JSON-, XML-, HTML- und Excel-Grundimport
- Kopfzeilen- und Schemaanalyse
- Spaltenprofilierung
- stabile Datensatz- und Sheet-IDs
- englische und deutsche Titelhinweise
- Purple-Knight-Erkennung und Standardverhalten
- Ergebnisdateiverknüpfung
- Mehrdateiimport und Projektzusammenführung
- vollständiger Workflow von Suche über Review und Dashboard bis zum Snapshot-Roundtrip
- Importbaseline mit 5.000 CSV-Findings und beschädigtem XLSX-Container
- kanonisches Assessment- und Finding-Modell mit Pilotquellen-Abbildung
- Trennung von Finding-Definition, Scan-Vorkommen, Originalwerten, normalisierten Werten und Reviews
- Validierung fachlicher Referenzen und Modellinvarianten
### Darstellung und Interaktion
- Finding-Karten
- Finding-Reader
- Kachelansicht
- Filterlogik
- MITRE-Graph-Grundlogik
Diese Tests prüfen gegenwärtig überwiegend Logik und statisches Rendering. Der reproduzierbare Gesamtworkflow und die Entscheidung zu späteren Browser-End-to-End-Tests sind in `docs/USER_FLOW_CHECKS.md` dokumentiert.
### Reviews und Persistenz
- Review-Speicherung
- Review-State-Aktualisierung
- Snapshot-Speicherung
Die gegenwärtige Persistenz ist noch die lokale Einzelplatzlösung. Backend- und PostgreSQL-Persistenz gehören zu späteren Planphasen.
### Exporte
- HTML-Dashboard-Export
- Snapshot-bezogene Logik
Weitere Exportformate und vollständige Roundtrip-Prüfungen müssen im Verlauf von Phase 1 beziehungsweise den späteren Fachphasen ergänzt werden.
### Sicherheitsbaseline
Die automatische Local-only-Prüfung kontrolliert insbesondere:
- keine verbotenen Netzwerk-APIs im Anwendungscode
- keine externen Assets in `index.html`
- minimale Tauri-Capabilities
- keine zusätzlichen produktiven Laufzeitabhängigkeiten
- keine Formel- oder VBA-Extraktion bei Excel-Importen
## Vorhandene synthetische Fixtures
- Purple Knight: `fixtures/purple-knight/indicator-results.synthetic.json`
- generische Tabellenquelle: `fixtures/generic/findings.synthetic.csv`
- PingCastle: `fixtures/pingcastle/healthcheck.synthetic.html`
- CIS-CAT: `fixtures/cis-cat/assessment.synthetic.html`
- Maester: `fixtures/maester/test-results.synthetic.csv`
Die Herleitung aus offiziellen Dokumentationen beziehungsweise offiziellen Repositories und die Grenzen der synthetischen Dateien sind in `fixtures/README.md` festgehalten. Die drei neuen Fixtures werden über den vollständigen generischen Importweg automatisiert geprüft. Werkzeugspezifische semantische Profile bleiben ausdrücklich Phase 6.
## Abschlussnachweis für Phase 1
Die Abnahmekriterien von Phase 1 sind erfüllt:
1. alle unterstützten Formate besitzen positive und negative beziehungsweise sicherheitsrelevante Tests,
2. die wichtigsten aktuellen Benutzerabläufe sind automatisiert oder reproduzierbar dokumentiert,
3. der Pilotquellenkorpus ist synthetisch und ohne Unternehmensdaten vorhanden,
4. `npm test` und `npm run build` laufen reproduzierbar erfolgreich.
Reale Kundendaten oder vertrauliche Assessment-Berichte dürfen nicht ungeprüft als Fixtures in das Repository aufgenommen werden.
## Pflege
Nach materiellen Änderungen an Importern, Profilen, Vergleich, Persistenz oder Exporten ist diese Baseline zu prüfen. Testzahlen werden nur nach einem erfolgreichen vollständigen Lauf aktualisiert.