====== Quality Assurance ====== Overview of QA processes and checks for WvdS FPC RAD Studio. These checklists apply to **all developers** - both for manual reviews and AI-assisted audits. ===== QA Workflow ===== Every change goes through these 5 verification steps: ^ Step ^ Check ^ Checklist ^ | 1 | **Production-Ready** | No TODOs, stubs, mocks | | 2 | **Security** | KRITIS/NIS2, OWASP | | 3 | **Code Quality** | Naming, DRY, error handling | | 4 | **SSOT** | Common libraries instead of local copies | | 5 | **Documentation** | PasDoc comments, API docs | ===== Profile Matrix ===== Which checklists to apply depending on project type: ^ Project Type ^ Required ^ Optional ^ | VSCode Extension | Core, Cross-Platform, VSCode Stack | Security, Logging | | Desktop App | Core, Build, Logging | i18n, Security | | TUI/CLI | Core, CLI Stack, Cross-Platform | Security, Performance | | Library | Core, Naming, Functions, Build | Security, Cross-Platform | | Web API | Core, Security, Logging | Performance, SQL | ===== Detailed Checklists ===== ^ Document ^ Content ^ When to Apply ^ | [[.:audit-core|Core Checklist]] | Production-ready, error handling, logging | **Always** | | [[.:audit-sicherheit|Security Checklist]] | KRITIS/NIS2, OWASP, crypto | For network, auth, crypto | | [[.:audit-codequalitaet|Code Quality Checklist]] | Naming, functions, DRY | For API changes | | [[.:kommentierung|Documentation Standards]] | PasDoc, XMLDoc, principles | For new units | | [[.:audit-vscode|VSCode Checklist]] | Extension-specific, pas2js | For extension work | ===== Zero-Tolerance Rules ===== These rules are **non-negotiable** - code with violations will be rejected. ==== Forbidden in Production Code ==== FORBIDDEN REQUIRED ───────────────────────────────────────────────── // TODO: ... → Complete implementation // FIXME: ... → Fixed code raise ENotImplemented → Working code Stub functions → Real implementations Mock implementations → Production code Placeholder values → Real values Hardcoded strings → Resource strings (i18n) Empty exception handlers → Specific error handling Magic numbers → Named constants ==== Security Basics ==== FORBIDDEN REQUIRED ───────────────────────────────────────────────── SQL string concatenation → Parameterized queries Secrets in logs → Zeroization after use Hardcoded credentials → Environment variables Error messages with paths → Sanitized messages ===== Review Process ===== ==== Step 1: Core Checklist ==== [ ] No TODO/FIXME comments [ ] No stub or mock functions [ ] All functions fully implemented [ ] No empty exception handlers [ ] Errors logged BEFORE handling [ ] Resources released deterministically [ ] No duplicated code (DRY) [ ] No magic numbers ==== Step 2: Security (if applicable) ==== [ ] Input validated at all boundaries [ ] SQL parameterized (no concatenation) [ ] No secrets in logs [ ] Error messages sanitized (no paths/versions) [ ] Secrets cleared after use (zeroization) [ ] Timeouts for external operations ==== Step 3: SSOT Check ==== [ ] NodeJS APIs via ~/sources/common/web/nodejs/ [ ] VSCode APIs via ~/sources/common/web/vscode/ [ ] Logging via WvdS.System.Logging [ ] No direct require() calls in extensions [ ] No duplicates of common units ==== Step 4: Documentation ==== [ ] Public API has PasDoc comments [ ] Comments explain WHY, not WHAT [ ] No outdated comments [ ] Comments in English ===== AI-Assisted Audits ===== The same checklists are used for automated AI audits: # Audit tasks (see docs/automated-test-tasks.txt) 1. IMPLEMENT ALL STUBS/MOCKS - Create inventory of all units - Identify stubs/mocks - Implement production-ready 2. EXECUTE QUALITY/SECURITY AUDIT - Identify security risks - Find SoC violations - Fix according to standards 3. ADD CODE COMMENTS - Identify missing comments - Write PasDoc comments 4. SSOT CHECK - Find local require() calls - Replace with common library calls 5. BUILD EXTENSIONS - Compile and test - Create VSIX ===== Logging ===== All audit steps are logged in stack trace format: [2026-01-13 10:30:22.001] Audit started at TWvdSAudit.Initialize(Audit.Service.pas:42) Scope: sources/extensions/** [2026-01-13 10:30:22.015] Found: TODO comment at extension_main.pas:156 Text: "// TODO: Implement error handling" Action: Implementation required [2026-01-13 10:30:22.042] Fixed: TODO comment removed at extension_main.pas:156 Change: Complete error handling implemented ===== See also ===== * [[.:audit-core|Core Checklist]] * [[.:audit-sicherheit|Security Checklist]] * [[.:audit-codequalitaet|Code Quality Checklist]] * [[.:kommentierung|Documentation Standards]] * [[.:audit-vscode|VSCode Extension Checklist]] * [[.:sicherheit|Security Guidelines]] * [[.:code-konventionen|Code Conventions]]