Panoramica dei processi QA e delle verifiche per WvdS FPC RAD Studio.
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 |
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 |
| Documento | Contenuto | Quando applicare |
|---|---|---|
| Checklist core | Production-ready, gestione errori, logging | Sempre |
| Checklist sicurezza | KRITIS/NIS2, OWASP, crypto | Per rete, auth, crypto |
| Checklist qualità codice | Naming, funzioni, DRY | Per modifiche API |
| Standard di commento | PasDoc, XMLDoc, principi | Per nuove unit |
| Checklist VSCode | Specifico estensioni, pas2js | Per lavoro su estensioni |
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
VIETATO RICHIESTO ───────────────────────────────────────────────── Concatenazione stringa SQL → Query parametrizzate Secret nei log → Zeroization dopo uso Credenziali hardcoded → Variabili ambiente Messaggi errore con percorsi → Messaggi sanitizzati
[ ] 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
[ ] 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
[ ] 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
[ ] API pubblica ha commenti PasDoc [ ] I commenti spiegano PERCHE, non COSA [ ] Nessun commento obsoleto [ ] Commenti in inglese
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
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