====== Qualitätssicherung ======
Übersicht der QA-Prozesse und Prüfungen für WvdS FPC RAD Studio.
Diese Checklisten gelten für **alle Entwickler** - sowohl für manuelle Reviews als auch für KI-gestützte Audits.
===== QA-Workflow =====
Jede Änderung durchläuft diese 5 Prüfschritte:
^ Schritt ^ Prüfung ^ Checkliste ^
| 1 | **Production-Ready** | Keine TODOs, Stubs, Mocks |
| 2 | **Sicherheit** | KRITIS/NIS2, OWASP |
| 3 | **Code-Qualität** | Naming, DRY, Error Handling |
| 4 | **SSOT** | Common Libraries statt lokaler Kopien |
| 5 | **Dokumentation** | PasDoc-Kommentare, API-Docs |
===== Profil-Matrix =====
Welche Checklisten je nach Projekttyp anwenden:
^ Projekttyp ^ Pflicht ^ Optional ^
| VSCode Extension | Core, Cross-Platform, VSCode-Stack | Sicherheit, Logging |
| Desktop App | Core, Build, Logging | i18n, Sicherheit |
| TUI/CLI | Core, CLI-Stack, Cross-Platform | Sicherheit, Performance |
| Library | Core, Naming, Functions, Build | Sicherheit, Cross-Platform |
| Web API | Core, Sicherheit, Logging | Performance, SQL |
===== Checklisten im Detail =====
^ Dokument ^ Inhalt ^ Wann anwenden ^
| [[.:audit-core|Core-Checkliste]] | Production-Ready, Error Handling, Logging | **Immer** |
| [[.:audit-sicherheit|Sicherheits-Checkliste]] | KRITIS/NIS2, OWASP, Crypto | Bei Netzwerk, Auth, Crypto |
| [[.:audit-codequalitaet|Codequalität-Checkliste]] | Naming, Functions, DRY | Bei API-Änderungen |
| [[.:kommentierung|Kommentierungsstandards]] | PasDoc, XMLDoc, Principles | Bei neuen Units |
| [[.:audit-vscode|VSCode-Checkliste]] | Extension-spezifisch, pas2js | Bei Extension-Arbeit |
===== Zero-Tolerance-Regeln =====
Diese Regeln sind **nicht verhandelbar** - Code mit Verstößen wird abgelehnt.
==== Verboten in Produktionscode ====
VERBOTEN ERFORDERLICH
─────────────────────────────────────────────────
// TODO: ... → Vollständige Implementierung
// FIXME: ... → Behobener Code
raise ENotImplemented → Funktionierender Code
Stub-Funktionen → Echte Implementierungen
Mock-Implementierungen → Produktionscode
Placeholder-Werte → Echte Werte
Hardcodierte Strings → Resourcestrings (i18n)
Leere Exception-Handler → Spezifische Fehlerbehandlung
Magic Numbers → Benannte Konstanten
==== Sicherheits-Basics ====
VERBOTEN ERFORDERLICH
─────────────────────────────────────────────────
SQL-String-Konkatenation → Parametrisierte Queries
Secrets in Logs → Zeroization nach Verwendung
Hardcodierte Credentials → Environment Variables
Fehlermeldungen mit Pfaden → Sanitisierte Meldungen
===== Review-Ablauf =====
==== Schritt 1: Core-Checkliste ====
[ ] Keine TODO/FIXME-Kommentare
[ ] Keine Stub- oder Mock-Funktionen
[ ] Alle Funktionen vollständig implementiert
[ ] Keine leeren Exception-Handler
[ ] Fehler werden vor Behandlung geloggt
[ ] Ressourcen werden deterministisch freigegeben
[ ] Kein duplizierter Code (DRY)
[ ] Keine Magic Numbers
==== Schritt 2: Sicherheit (falls relevant) ====
[ ] Eingaben an allen Grenzen validiert
[ ] SQL parametrisiert (keine Konkatenation)
[ ] Keine Secrets in Logs
[ ] Fehlermeldungen sanitisiert (keine Pfade/Versionen)
[ ] Secrets nach Verwendung gelöscht (Zeroization)
[ ] Timeouts für externe Operationen
==== Schritt 3: SSOT-Prüfung ====
[ ] NodeJS-APIs via ~/sources/common/web/nodejs/
[ ] VSCode-APIs via ~/sources/common/web/vscode/
[ ] Logging via WvdS.System.Logging
[ ] Keine direkten require()-Aufrufe in Extensions
[ ] Keine Duplikate von Common-Units
==== Schritt 4: Dokumentation ====
[ ] Öffentliche API hat PasDoc-Kommentare
[ ] Kommentare erklären WARUM, nicht WAS
[ ] Keine veralteten Kommentare
[ ] Kommentare in Englisch
===== KI-gestützte Audits =====
Die gleichen Checklisten werden für automatisierte KI-Audits verwendet:
# Audit-Aufgaben (siehe docs/automated-test-tasks.txt)
1. IMPLEMENT ALL STUBS/MOCKS
- Inventar aller Units erstellen
- Stubs/Mocks identifizieren
- Produktionsreif implementieren
2. EXECUTE QUALITY/SECURITY AUDIT
- Sicherheitsrisiken identifizieren
- SoC-Verstöße finden
- Nach Standards beheben
3. ADD CODE COMMENTS
- Fehlende Kommentare identifizieren
- PasDoc-Kommentare schreiben
4. SSOT CHECK
- Lokale require()-Aufrufe finden
- Durch Common-Library-Aufrufe ersetzen
5. BUILD EXTENSIONS
- Kompilieren und testen
- VSIX erstellen
===== Protokollierung =====
Alle Audit-Schritte werden protokolliert nach dem Stack-Trace-Format:
[2026-01-13 10:30:22.001] Audit gestartet
at TWvdSAudit.Initialize(Audit.Service.pas:42)
Scope: sources/extensions/**
[2026-01-13 10:30:22.015] Gefunden: TODO-Kommentar
at extension_main.pas:156
Text: "// TODO: Implement error handling"
Aktion: Implementierung erforderlich
[2026-01-13 10:30:22.042] Behoben: TODO-Kommentar entfernt
at extension_main.pas:156
Änderung: Vollständige Fehlerbehandlung implementiert
===== Siehe auch =====
* [[.:audit-core|Core-Checkliste]]
* [[.:audit-sicherheit|Sicherheits-Checkliste]]
* [[.:audit-codequalitaet|Codequalität-Checkliste]]
* [[.:kommentierung|Kommentierungsstandards]]
* [[.:audit-vscode|VSCode Extension Checkliste]]
* [[.:sicherheit|Sicherheitsrichtlinien]]
* [[.:code-konventionen|Code-Konventionen]]