====== Assicurazione qualità ======
Panoramica dei processi QA e delle verifiche per WvdS FPC RAD Studio.
Queste checklist valgono per **tutti gli sviluppatori** - sia per review manuali che per audit assistiti da IA.
===== Workflow QA =====
Ogni modifica passa attraverso questi 5 passi di verifica:
^ Passo ^ Verifica ^ Checklist ^
| 1 | **Production-ready** | Nessun TODO, stub, mock |
| 2 | **Sicurezza** | KRITIS/NIS2, OWASP |
| 3 | **Qualita codice** | Naming, DRY, gestione errori |
| 4 | **SSOT** | Librerie common invece di copie locali |
| 5 | **Documentazione** | Commenti PasDoc, doc API |
===== Matrice profili =====
Quali checklist applicare per tipo di progetto:
^ Tipo progetto ^ Obbligatorio ^ Opzionale ^
| Estensione VSCode | Core, cross-platform, stack VSCode | Sicurezza, logging |
| App desktop | Core, build, logging | i18n, sicurezza |
| TUI/CLI | Core, stack CLI, cross-platform | Sicurezza, performance |
| Libreria | Core, naming, funzioni, build | Sicurezza, cross-platform |
| API Web | Core, sicurezza, logging | Performance, SQL |
===== Checklist in dettaglio =====
^ Documento ^ Contenuto ^ Quando applicare ^
| [[.:audit-core|Checklist core]] | Production-ready, gestione errori, logging | **Sempre** |
| [[.:audit-sicherheit|Checklist sicurezza]] | KRITIS/NIS2, OWASP, crypto | Per rete, auth, crypto |
| [[.:audit-codequalitàet|Checklist qualità codice]] | Naming, funzioni, DRY | Per modifiche API |
| [[.:kommentierung|Standard di commento]] | PasDoc, XMLDoc, principi | Per nuove unit |
| [[.:audit-vscode|Checklist VSCode]] | Specifico estensioni, pas2js | Per lavoro su estensioni |
===== Regole zero-tolerance =====
Queste regole sono **non negoziabili** - il codice con violazioni viene rifiutato.
==== Vietato nel codice di produzione ====
VIETATO RICHIESTO
─────────────────────────────────────────────────
// TODO: ... → Implementazione completa
// FIXME: ... → Codice corretto
raise ENotImplemented → Codice funzionante
Funzioni stub → Implementazioni reali
Implementazioni mock → Codice di produzione
Valori placeholder → Valori reali
Stringhe hardcoded → Resourcestrings (i18n)
Handler eccezione vuoti → Gestione errori specifica
Magic number → Costanti con nome
==== Basi di sicurezza ====
VIETATO RICHIESTO
─────────────────────────────────────────────────
Concatenazione stringa SQL → Query parametrizzate
Secret nei log → Zeroization dopo uso
Credenziali hardcoded → Variabili ambiente
Messaggi errore con percorsi → Messaggi sanitizzati
===== Flusso review =====
==== Passo 1: Checklist core ====
[ ] Nessun commento TODO/FIXME
[ ] Nessuna funzione stub o mock
[ ] Tutte le funzioni completamente implementate
[ ] Nessun handler eccezione vuoto
[ ] Errori loggati prima della gestione
[ ] Risorse rilasciate deterministicamente
[ ] Nessun codice duplicato (DRY)
[ ] Nessun magic number
==== Passo 2: Sicurezza (se rilevante) ====
[ ] Input validati a tutti i confini
[ ] SQL parametrizzato (nessuna concatenazione)
[ ] Nessun secret nei log
[ ] Messaggi errore sanitizzati (nessun percorso/versione)
[ ] Secret cancellati dopo l'uso (zeroization)
[ ] Timeout per operazioni esterne
==== Passo 3: Verifica SSOT ====
[ ] API NodeJS via ~/sources/common/web/nodejs/
[ ] API VSCode via ~/sources/common/web/vscode/
[ ] Logging via WvdS.System.Logging
[ ] Nessuna chiamata require() diretta nelle estensioni
[ ] Nessun duplicato di unit common
==== Passo 4: Documentazione ====
[ ] API pubblica ha commenti PasDoc
[ ] I commenti spiegano PERCHE, non COSA
[ ] Nessun commento obsoleto
[ ] Commenti in inglese
===== Audit assistiti da IA =====
Le stesse checklist vengono usate per audit IA automatizzati:
# Task di audit (vedere docs/automated-test-tasks.txt)
1. IMPLEMENT ALL STUBS/MOCKS
- Creare inventario di tutte le unit
- Identificare stub/mock
- Implementare per produzione
2. EXECUTE QUALITY/SECURITY AUDIT
- Identificare rischi sicurezza
- Trovare violazioni SoC
- Correggere secondo gli standard
3. ADD CODE COMMENTS
- Identificare commenti mancanti
- Scrivere commenti PasDoc
4. SSOT CHECK
- Trovare chiamate require() locali
- Sostituire con chiamate libreria common
5. BUILD EXTENSIONS
- Compilare e testare
- Creare VSIX
===== Protocollazione =====
Tutti i passi di audit vengono protocollati nel formato stack-trace:
[2026-01-13 10:30:22.001] Audit avviato
at TWvdSAudit.Initialize(Audit.Service.pas:42)
Scope: sources/extensions/**
[2026-01-13 10:30:22.015] Trovato: commento TODO
at extension_main.pas:156
Testo: "// TODO: Implement error handling"
Azione: implementazione richiesta
[2026-01-13 10:30:22.042] Corretto: commento TODO rimosso
at extension_main.pas:156
Modifica: gestione errori completa implementata
===== Vedi anche =====
* [[.:audit-core|Checklist core]]
* [[.:audit-sicherheit|Checklist sicurezza]]
* [[.:audit-codequalitàet|Checklist qualità codice]]
* [[.:kommentierung|Standard di commento]]
* [[.:audit-vscode|Checklist estensioni VSCode]]
* [[.:sicherheit|Linee guida sulla sicurezza]]
* [[.:code-konventionen|Convenzioni del codice]]