112 lines
4.9 KiB
Markdown
112 lines
4.9 KiB
Markdown
# 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.
|